About
See my Youtube channel https://youtube.com/c/TheDeliberateEngineer
30+ years…
Articles by John
-
Is 25 years of experience worth more than 10?
Is 25 years of experience worth more than 10?
By John Miller
-
Blog Post: Internet Advertising is Good for Everyone
Blog Post: Internet Advertising is Good for Everyone
By John Miller
-
First Impressions of HTC Vive Virtual Reality Headset
First Impressions of HTC Vive Virtual Reality Headset
By John Miller
Activity
-
Engineers dramatically over-share information in the interview process. What level you were, disagreements with your old manager, or how many other…
Engineers dramatically over-share information in the interview process. What level you were, disagreements with your old manager, or how many other…
Liked by John Miller
-
One of the best parts of software engineering is that you can create your own experience: just build stuff on your own. But does this *actually*…
One of the best parts of software engineering is that you can create your own experience: just build stuff on your own. But does this *actually*…
Liked by John Miller
-
After running 100s of events for engineers, I've discovered that the simplest format is often the most successful: Ask Me Anything (AMA). No slides…
After running 100s of events for engineers, I've discovered that the simplest format is often the most successful: Ask Me Anything (AMA). No slides…
Liked by John Miller
Experience
Education
-
University of Cambridge
-
Specializing in distributed systems and distributed systems security, especially distributed virtual environments. Degree obtained while working full-time at Microsoft Research Cambridge. Officially conferred Nov 2013.
-
-
Thesis advisor Caroline Hayes.
Attended 1990-1991, left before completing. Finished up degree remotely while working at Microsoft and later at Carnegie Mellon University. -
-
Publications
-
How To Stay Motivated At Work When You'd Rather Be Doing Anything Else
Forbes.com
Republished quora answer - tips for trying to stay productive when you're unmotivated.
-
4 Empowering Ways to Stay Motivated Even When You Want To Quit
Inc.com
Ways to cope with being unmotivated at work.
-
Should You Tell Your Boss Which Company You're Leaving To Join?
Lifehacker.com
Advice on minimizing the irrelevant info you share with your boss when leaving, and potential consequences.
-
You Don't Need Thousands Of Hours Of Programming Experience To Work At Google
Forbes.com
Republished quora answer which talks about the difference between experience and skill in programmer.
-
Software Engineers Who Earn $500k Are Doing These Jobs
Forbes.com
Quora answer about the sort of work software engineers who earn $500k or more are expected to do.
-
How to Earn Respect and Recognition at Work (Even When Your Company Is Dysfunctional)
Huffington Post
Republished Quora answer describing how to get respect at work.
-
If SETI's Signal Is A Sign Of Intelligent Life, We Can Probably Expect These Changes On Earth
Forbes.com Science
Republished quora answer about what would happen to the average person if we discovered life on another world.
-
Education Is Important, But Nothing Beats Experience In A Software Engineer
Forbes.com
Republished quora answer to why experience matters for software engineers.
-
What's the Best Way to Earn Respect at Work?
Slate.com
Republished Quora answer explaining how to get respect even if you think the work environment is toxic.
-
4 simple habits that earn you instant respect at work
Inc.com
Republished quora answer explaining how to cope with not being respected at a 'toxic company'
-
Great Software Architects Share These 5 Traits In Common
Forbes.com
Republished answer about how to become a software architect
-
Are you a hunter or a gatherer on the job?
Forbes.com
republished quora answer outlining the different benefits between workers and leaders.
-
3 Ridiculous Arguments Every Programmer Has Had On The Job
Forbes.com
reprint of a quick answer I gave to a quora question saying that arguing about docs is a bigger problem than arguing about coding standards.
-
Four Key Factors For Being A Good Fit In Your Company's Culture
Forbes.com
Republished Quora answer describing what people mean by a 'culture fit' for a company, specifically large software companies.
-
How To Make The Most Of Your Programming Career
Forbes.com
Republished Quora answer describing the things someone who is a few years into their programming career should be doing.
-
5 Ways to Improve Your Programming Interview Skills
Forbes.com
Republished Quora answer with a description of core expectations for a university student to be able to pass an internship interview.
-
What Projects Can I Build As A Beginner That Would Impress Tech Giants?
Forbes.com
Republished answer about attributes of good projects to tell employers about.
-
Is It Possible To Delete Your Entire Company With One Line of Bad Code?
Forbes.com
Republished quora answer examining a fellow who recursively deleted all the data on his business's computers. Second of two answers posted in the article.
-
5 Ways to Make Work Bearable When You're About to Burn Out
Inc.com
Republished quora answer about dealing with burnout when you can't leave your job.
-
A Google, Amazon, and Microsoft alum explains how to fight burnout when you can't change jobs
Business Insider
Republished quora answer about dealing with burnout when you can't leave your job.
-
The Strategic Way to Complete a Self-Evaluation at Work
Inc.com
Republished quora answer about working with your manager throughout the year rather than waiting until review time.
-
Is Software Testing Easier Than Software Development?
Forbes.com
Reposted Quora answer compare software development and software testing, in terms of difficulty.
-
This is What It's Like To Quit Your High-Paying Job To Pursue Your Real Passion
thoughtcatalog.com
Republished Quora answer describing leaving a high-paying job in industry to work in academia.
-
How Would You Mold a Perfect Developer?
Forbes.com
Republished answer to a quora question: ideal attributes for a software developer.
-
I admit it: I really miss these three things from my life before kids.
Fatherly.com
Republished quora answer: brief description of three hard things about becoming a dad.
-
Nailing an interview isn't about being the best hire for the job
Quartz qz.com
republished answer from Quora about how interviews are to screen out potentially bad hires, as much as to hire the best qualified candidate.
-
What it's like to quit your high paying job for a less stressful one
Independent.co.uk
Republished Quora answer about choosing a lower-paying job.
-
What it was like to leave Microsoft for a less stressful, lower paying job
DailyNewsX.com
republished quora answer (under 'Daniel McDonald' byline?) about my leaving Microsoft for CMU.
-
What was it like to leave Microsoft for a less stressful, lower paying job
Business Insider
Republished Quora answer about leaving Microsoft for CMU.
-
What I learned When I Quit Microsoft and Took a Job That Paid a Lot Less
Inc.com
Republished Quora answer about leaving Microsoft for CMU.
-
The Smart Way to Prepare for Your Next Job Interview
Inc.com
Republished Quora answer explaining how interviews work, and what to do to interview better.
-
The Best Advice for People Who Fail Terribly At Interviews
thoughtcatalog.com
Republished answer from Quora, explaining how interviews work from the company's side, and suggesting ways to do better moving forward.
-
Why people don't give up on unfulfilling, dead-end jobs
Quartz qz.com
Republished answer from Quora describing reasons some people don't switch jobs when they're unhappy.
-
For Every Student Struggling To Balance School And Work, This Is How You Do It
thoughtcatalog.com
Republished Quora answer suggesting ways to work full-time while pursuing a degree.
-
What Skills Should Software Engineers Have for the Next Decade
Slate.com
Republished answer from Quora, mine is the second one of the two on this page.
-
The Daunting Task that Google Hires Thousands of Engineers to Handle
Forbes.com
Retitled version of a Quora answer I wrote for the question "Why do companies like Facebook and Google need so many engineers?"
-
How to get (and pass) an interview at Facebook or Google
Forbes.com
Republished answer to "How can I get a job at Facebook or Google in 6 months?" from Quora.
-
4 Ways to Effectively Handle Employee Burnout
Time.com
Republished quora answer about ways to help fix burnout in an employee
-
How to Succeed at a Leading Tech Company
Quartz qz.com
Quora answer adapted by Quora and posted on Quartz's online Quora section.
"This question originally appeared on Quora: I got a job at a leading tech company but I’m nervous about how hard it will be. What are some tips to be confident and do well? Answer by John L. Miller, Consulting Member of Technical Staff at Oracle." -
What Are The Growth Stages Of A Programmer
Forbes.com
My edited answer to 'What are the growth stages of a programmer?', reposted by Quora to Forbes.com
-
Distributed virtual environment scalability and security (PhD thesis)
University of Cambridge, Computer Laboratory
Distributed virtual environments (DVEs) have been an active area of research and engineering for more than 20 years. The most widely deployed DVEs are network games such as Quake, Halo, and World of Warcraft (WoW), with millions of users and billions of dollars in annual revenue. Deployed DVEs remain expensive centralized implementations despite significant research outlining ways to distribute DVE workloads. This dissertation shows previous DVE research evaluations are inconsistent with…
Distributed virtual environments (DVEs) have been an active area of research and engineering for more than 20 years. The most widely deployed DVEs are network games such as Quake, Halo, and World of Warcraft (WoW), with millions of users and billions of dollars in annual revenue. Deployed DVEs remain expensive centralized implementations despite significant research outlining ways to distribute DVE workloads. This dissertation shows previous DVE research evaluations are inconsistent with deployed DVE needs. Assumptions about avatar movement and proximity - fundamental scale factors - do not match WoW’s workload, and likely the workload of other deployed DVEs. Alternate workload models are explored and preliminary conclusions presented. Using realistic workloads it is shown that a fully decentralized DVE cannot be deployed to today’s consumers, regardless of its overhead. Residential broadband speeds are improving, and this limitation will eventually disappear. When it does, appropriate security mechanisms will be a fundamental requirement for technology adoption. A trusted auditing system (“Carbon”) is presented which has good security, scalability, and resource characteristics for decentralized DVEs. When performing exhaustive auditing, Carbon adds 27% network overhead to a decentralized DVE with a WoW-like workload. This resource consumption can be reduced significantly, depending upon the DVE’s risk tolerance. Finally, the Pairwise Random Protocol (PRP) is described. PRP enables adversaries to fairly resolve probabilistic activities, an ability missing from most decentralized DVE security proposals. Thus, this dissertations contribution is to address two of the obstacles for deploying research on decentralized DVE architectures. First, lack of evidence that research results apply to existing DVEs. Second, the lack of security systems combining appropriate security guarantees with acceptable overhead.
-
The Near-Term Feasibility of P2P MMOG's
Proc. NetGames 2010
Broadly deployed distributed virtual environments (DVE’s) are based upon client-server architectures. Significant research over the last decade proposes a variety of distributed topologies for message propagation to enhance scalability and performance. We ran simulations using traces from World of Warcraft (WoW) and typical broadband speeds, and found that DVE’s such as WoW could not employ P2P message propagation schemes. We found pure P2P pub-sub solutions would occasionally saturate…
Broadly deployed distributed virtual environments (DVE’s) are based upon client-server architectures. Significant research over the last decade proposes a variety of distributed topologies for message propagation to enhance scalability and performance. We ran simulations using traces from World of Warcraft (WoW) and typical broadband speeds, and found that DVE’s such as WoW could not employ P2P message propagation schemes. We found pure P2P pub-sub solutions would occasionally saturate residential broadband connections, and would result in average latency more than 10x greater than client-server solutions. To our surprise, we discovered message aggregation before transmission can not only reduce bandwidth requirements, but also reduce latency in both client-server and P2P message propagation schemes.
-
Group Movement in World of Warcraft Battlegrounds
International Journal of Advanced Media and Communication
Distributed Virtual Environment (DVE) topology management and
message propagation schemes have been proposed for many years. Evaluating DVE message propagation schemes requires a variety of assumptions whose verity significantly affects results, such as details about avatar movement characteristics. We implemented two schemes for waypoint and hotspot detection, and examined their applicability for characterising avatar movement. We confirmed that waypoint detection does not yield good…Distributed Virtual Environment (DVE) topology management and
message propagation schemes have been proposed for many years. Evaluating DVE message propagation schemes requires a variety of assumptions whose verity significantly affects results, such as details about avatar movement characteristics. We implemented two schemes for waypoint and hotspot detection, and examined their applicability for characterising avatar movement. We confirmed that waypoint detection does not yield good results for characterising human avatar movement, and gained new insight into why by rendering avatar movement as point clouds. We implemented an existing hotspot detection model, and proposed an enhancement to help overcome one limitation of cell-based hotspot detection. We were able to immediately apply this hotspot detection technique to help analyse group movement. We discovered that although a third of movement time in the battlegrounds is spent in inter-node journeys, less than a quarter of these journeys are made in groups.
-
Avatar Movement in World of Warcraft Battlegrounds
NetGames 2009
Evaluating DVE topology management and message propagation schemes requires avatar movement models. Most models are based on reasoned assumptions rather than measured data, potentially biasing evaluation. We measured player movement in World of Warcraft battlegrounds, and compared our observations against common assumptions about player avatar movement and navigation. We found that when modeling a highly interactive DVE such as a battleground, a waypoint model is not sufficient to describe most…
Evaluating DVE topology management and message propagation schemes requires avatar movement models. Most models are based on reasoned assumptions rather than measured data, potentially biasing evaluation. We measured player movement in World of Warcraft battlegrounds, and compared our observations against common assumptions about player avatar movement and navigation. We found that when modeling a highly interactive DVE such as a battleground, a waypoint model is not sufficient to describe most avatar movement. We were surprised to find that despite game incentives for grouping, the majority of avatar movement between objectives is individual, not grouped. Finally, we found that a hotspot-based model for avatar movement is consistent with our traces.
-
Carbon: trusted auditing for P2P distributed virtual environments
University of Cambridge, Computer Laboratory
Many Peer-to-Peer Distributed Virtual Environments (P2P DVE’s) have been proposed, but none are widely deployed. One significant barrier to deployment is lack of security. This paper presents Carbon, a trusted auditing system for P2P DVE’s which provides reasonable security with low per-client overhead. DVE’s using Carbon perform offline auditing to evaluate DVE client correctness. Carbon audits can be used to catch DVE clients which break DVE rules – cheaters – so the DVE can punish them. We…
Many Peer-to-Peer Distributed Virtual Environments (P2P DVE’s) have been proposed, but none are widely deployed. One significant barrier to deployment is lack of security. This paper presents Carbon, a trusted auditing system for P2P DVE’s which provides reasonable security with low per-client overhead. DVE’s using Carbon perform offline auditing to evaluate DVE client correctness. Carbon audits can be used to catch DVE clients which break DVE rules – cheaters – so the DVE can punish them. We analyze the impact of applying Carbon to a peer-to-peer game with attributes similar to World of Warcraft. We show that 99.9% of cheaters – of a certain profile – can be caught with guided auditing and 2.3% bandwidth overhead, or 100% of cheaters can be caught with exhaustive auditing and 27% bandwidth overhead. The surprisingly low overhead for exhaustive auditing is the result of the small payload in most DVE packet updates, compared to the larger aggregate payloads in audit messages. Finally, we compare Carbon to PeerReview, and show that for DVE scenarios Carbon consumes significantly less resources – in typical cases by an order of magnitude – while sacrificing little protection.
-
Probabilistic Event Resolution with the Pairwise Random Protocol
NOSSDAV '09: Proceedings of the 19th International Workshop on Network and Operating Systems Support for Digital Audio and Video
Peer-to-peer distributed virtual environments (DVE's) distribute state tracking and state transitions. Many DVE's - such as online games - require ways to fairly determine the outcome of probabilistic events. While trivial when a trusted third party is involved, resolving these actions fairly between adversaries without a trusted third party is much more difficult. This paper proposes the Pairwise Random Protocol (PRP), which uses secure coin flipping to enable adversaries to fairly determine…
Peer-to-peer distributed virtual environments (DVE's) distribute state tracking and state transitions. Many DVE's - such as online games - require ways to fairly determine the outcome of probabilistic events. While trivial when a trusted third party is involved, resolving these actions fairly between adversaries without a trusted third party is much more difficult. This paper proposes the Pairwise Random Protocol (PRP), which uses secure coin flipping to enable adversaries to fairly determine the result of a probabilistic event without a trusted third party. Three different variations of PRP are presented, and the time impact and network overhead are examined. We conclude that PRP enables DVE’s to distribute the work of determining probabilistic events between adversaries without loss of security or fairness, and with acceptable overhead.
-
Comprehensive view of a live network coding P2P system
IMC, Association for Computing Machinery, Inc
In this paper we present the first implementation of a P2P content distribution system that uses Network Coding. Using results from live trials with several hundred nodes, we provide a detailed performance analysis of such P2P system. In contrast to prior work, which mainly relies on monitoring P2P systems at particular locations, we are able to provide performance results from a variety of novel angles by monitoring all components in the P2P distribution.In particular, we show that Network…
In this paper we present the first implementation of a P2P content distribution system that uses Network Coding. Using results from live trials with several hundred nodes, we provide a detailed performance analysis of such P2P system. In contrast to prior work, which mainly relies on monitoring P2P systems at particular locations, we are able to provide performance results from a variety of novel angles by monitoring all components in the P2P distribution.In particular, we show that Network Coding is practical in a P2P setting since it incurs little overhead, both in terms of CPU processing and IO activity, and it results in smooth, fast downloads, and efficient server utilization. We also study the importance of topology construction algorithms in real scenarios and study the effect of peers behind NATs and firewalls, showing that the system is surprisingly robust to large number of unreachable peers. Finally, we present performance results related to verifying network encoded blocks on-the-fly using special security primitives called Secure-Random-Checksums.
Other authorsSee publication -
Anatomy of a P2P Content Distribution System with Network Coding
IPTPS '06
In this paper we present our experiences with a P2P content distribution system that uses Network Coding. Using results from
live trials, we are able to present a detailed performance analysis of such P2P system from a variety of novel perspectives. We show that Network Coding incurs little overhead, both in terms of CPU processing and I/O activity, and it results in smooth and fast downloads. To ensure secure transfers, we describe a novel scheme that verifies encoded blocks on the…In this paper we present our experiences with a P2P content distribution system that uses Network Coding. Using results from
live trials, we are able to present a detailed performance analysis of such P2P system from a variety of novel perspectives. We show that Network Coding incurs little overhead, both in terms of CPU processing and I/O activity, and it results in smooth and fast downloads. To ensure secure transfers, we describe a novel scheme that verifies encoded blocks on the fly
and analyze its performance. We also study the effect of peers behind NATs and firewalls and show the robustness of the system to large number of unreachable peers.Other authorsSee publication
Patents
-
Prediction-based touch contact tracking
Issued US 9,542,092
In embodiments of prediction-based touch contact tracking, touch input sensor data is recognized as a series of components of a contact on a touch-screen display. A first component of the contact can be identified, and a second component can be determined to correlate to the contact. The first component and the second component can then be associated to represent a tracking of the contact. Subsequent components of the contact can be determined and associated with the previous components of the…
In embodiments of prediction-based touch contact tracking, touch input sensor data is recognized as a series of components of a contact on a touch-screen display. A first component of the contact can be identified, and a second component can be determined to correlate to the contact. The first component and the second component can then be associated to represent a tracking of the contact. Subsequent components of the contact can be determined and associated with the previous components of the contact to further represent the tracking of the contact.
Other inventors -
Secure Device Configuration
Issued US 9,154,483
Described herein are systems and methods for secure configuration provisioning of network credentials to configure a device to join one or more networks. One implementation provides for distribution of network credentials to associated devices without user intervention while maintaining security and avoiding distribution of the network credentials to external devices, such as a third-party server. Devices may be associated by purchase from a common merchant, registration to a common account…
Described herein are systems and methods for secure configuration provisioning of network credentials to configure a device to join one or more networks. One implementation provides for distribution of network credentials to associated devices without user intervention while maintaining security and avoiding distribution of the network credentials to external devices, such as a third-party server. Devices may be associated by purchase from a common merchant, registration to a common account, and so forth.
Other inventorsSee patent -
Disambiguating Intentional and Incidental Contact and Motion in Multi-Touch Pointing Devices
Issued US 8.786,561
An input device has both a touch sensor and a position sensor. A computer using data from the input device uses the relative motion of a contact on a touch sensor with respect to motion from a position detector to disambiguate intentional from incidental motion. The input device provides synchronized position sensor and touch sensor data to the computer to permit processing the relative motion and performing other computations on both position sensor and touch sensor data. The input device can…
An input device has both a touch sensor and a position sensor. A computer using data from the input device uses the relative motion of a contact on a touch sensor with respect to motion from a position detector to disambiguate intentional from incidental motion. The input device provides synchronized position sensor and touch sensor data to the computer to permit processing the relative motion and performing other computations on both position sensor and touch sensor data. The input device can encode the magnitude and direction of motion of the position sensor and combines it with the touch sensor data from the same time frame, and output the synchronized data to the computer.
Other inventorsSee patent -
Topology management in peer-to-peer content distribution clouds (US)
Issued US 8,364,758
A topology management process is implemented in peer-to-peer content distribution clouds using tracker nodes. Tracker nodes have information about available peers and assist peers in finding other peers to connect to. Various algorithms for use at the tracker nodes are described for selecting which peers to return as potentials for forming connections to. In addition, architectures and algorithms to allow efficient scaling of tracker nodes in peer-to-peer clouds are described.
Other inventors -
System and method for implementing PNRP locality
Issued US 8,310,956
A method is provided for a host node in a computer network to determine its coordinates in a d-dimensional network space, comprising discovering an address of a peer node in the network, measuring network latency between the host node and the peer node, determining whether network latency has been measured for at least d+1 peer nodes, where, if network latency has not been measured for at least d+1 peer nodes, estimating the network coordinates of the host node, and where, if network latency…
A method is provided for a host node in a computer network to determine its coordinates in a d-dimensional network space, comprising discovering an address of a peer node in the network, measuring network latency between the host node and the peer node, determining whether network latency has been measured for at least d+1 peer nodes, where, if network latency has not been measured for at least d+1 peer nodes, estimating the network coordinates of the host node, and where, if network latency has been measured for at least d+1 peer nodes, calculating the network coordinates of the host node using d+1 measured latencie
Other inventorsSee patent -
Secure Content Descriptions
Issued US 8,108,362
The invention describes a control node for a content distribution network and a method of automatically verifying content distributed over a network at a node in the network. In the method, a content description is received which comprises a content identifier, a publisher identifier, publisher authorization information and content checking information. The integrity and validity of this information are checked and if both the checks are passed, the content description is stored.
Other inventorsSee patent -
Content Management in Peer-to-Peer Content Distribution Clouds (US)
Issued US 8,090,861
Managing content by influencing its distribution in the form of blocks or other units is crucial to the performance of a peer-to-peer content distribution system. We provide a content management module at each peer node to achieve this. The content management module implements a content request/response cycle in order to negotiate about blocks of content with other peer nodes. This cycle comprises an offer request, offer reply and a block request. These steps are preferably followed by data…
Managing content by influencing its distribution in the form of blocks or other units is crucial to the performance of a peer-to-peer content distribution system. We provide a content management module at each peer node to achieve this. The content management module implements a content request/response cycle in order to negotiate about blocks of content with other peer nodes. This cycle comprises an offer request, offer reply and a block request. These steps are preferably followed by data exchange and verification. The negotiation protocol used by our content management module provides a generic method that is advantageously used in conjunction with different encoding schemes such as full network coding and group network coding. In one embodiment we use group network coding and add information to the offer request and offer reply to facilitate efficient content distribution. Block request messages are selected to promote the use of on-the-fly decoding where possible.
Other inventorsSee patent -
Group shared spaces
Issued EU EP 1 526 470 B1
-
Connection management in peer-to-peer content distribution clouds
Issued US 7,849,196
A topology management process is implemented which involves removing or "tearing down" connections between nodes in certain situations in order to try to replace those connections with more optimal ones. Idle connections are torn down unless those are in a "notify" state; a notify state being one in which a request for content has been made to a neighbour but that neighbour has no available content as yet. Idle connections in a notify state are torn down only if they remain idle for a longer…
A topology management process is implemented which involves removing or "tearing down" connections between nodes in certain situations in order to try to replace those connections with more optimal ones. Idle connections are torn down unless those are in a "notify" state; a notify state being one in which a request for content has been made to a neighbour but that neighbour has no available content as yet. Idle connections in a notify state are torn down only if they remain idle for a longer time than that required before an idle connection is torn down. To avoid problems caused by clusters of node forming and of loners being unable to join the cloud, network churn algorithms are taught. These involve requiring nodes to drop connections when specified conditions are met. Relative content distribution between connections is monitored and this information used to influence selection of those connections to drop.
Other inventorsSee patent -
Peer-to-peer network information storage (US)
Issued US 7,849,303
Secure storage of DHT keys and other information in a peer network
-
System and method for implementing PNRP locality
Issued US 7,826,396
A method is provided for a host node in a computer network to determine its coordinates in a d-dimensional network space, comprising discovering an address of a peer node in the network, measuring network latency between the host node and the peer node, determining whether network latency has been measured for at least d+1 peer nodes, where, if network latency has not been measured for at least d+1 peer nodes, estimating the network coordinates of the host node, and where, if network latency…
A method is provided for a host node in a computer network to determine its coordinates in a d-dimensional network space, comprising discovering an address of a peer node in the network, measuring network latency between the host node and the peer node, determining whether network latency has been measured for at least d+1 peer nodes, where, if network latency has not been measured for at least d+1 peer nodes, estimating the network coordinates of the host node, and where, if network latency has been measured for at least d+1 peer nodes, calculating the network coordinates of the host node using d+1 measured latencies.
Other inventorsSee patent -
Routing cache for distributed hash tables
Issued US 7,808,971
DHT routing based on a random replacement strategy maintaining an unstructured cache
-
Content management in peer-to-peer content distribution clouds (EU)
Issued EU EP 1 858 226 B1
-
Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith (EU)
Issued EU EP 1 248 441 B1
-
Encoding and decoding optimisations for network coding
Issued EU EP 1 801 979 B1
Avalanche optimizations for network coding of blocks for exchange
-
Peer-to-peer message format (EU)
Issued EU EP 1 802 072 B1
-
Topology management in peer-to-peer content distribution clouds (EU)
Issued EU EP 1 821 487 B1
Avalanche file swarming cloud topology management, for example through the matchmaking 'registrar' server
Other inventorsSee patent -
Connection management in peer-to-peer content distribution clouds
Issued EU EP 1 802 079
-
Content Publication
Issued US 7,680,937
Publishing content using a peer-to-peer content distribution system is described. A publisher is required to request authorization to publish from an authorization body. Resources such as tracker and seed nodes are allocated in a peer-to-peer content distribution system and pre-processing of content to be published is carried out. For example, a content description is generated for each item of content as well as a set of checksums or other items for validating blocks of content. Publication…
Publishing content using a peer-to-peer content distribution system is described. A publisher is required to request authorization to publish from an authorization body. Resources such as tracker and seed nodes are allocated in a peer-to-peer content distribution system and pre-processing of content to be published is carried out. For example, a content description is generated for each item of content as well as a set of checksums or other items for validating blocks of content. Publication can be terminated in a variety of different ways. For example, by using expiry methods, by active revocation of publishers, authorization bodies, or individual items of content.
Other inventorsSee patent -
File sharing in P2P group shared spaces
Issued US 7,567,987
-
Peer-to-peer name resolution wire protocol and message format data structure for use therein
Issued US 7,533,184
An extensible data structure for messages in a peer to peer name resolution protocol is presented. This message data structure utilizes a number of fields, each containing a message element. Preferably, the first field is the message header that includes protocol information and identifies the type of message. Each message element contains a number of fields. These message element fields include a type field, a length field, and the content or payload of the message element. In one embodiment…
An extensible data structure for messages in a peer to peer name resolution protocol is presented. This message data structure utilizes a number of fields, each containing a message element. Preferably, the first field is the message header that includes protocol information and identifies the type of message. Each message element contains a number of fields. These message element fields include a type field, a length field, and the content or payload of the message element. In one embodiment, at least ten messages are formed for proper operation of a Peer To Peer Name Resolution Protocol (PNRP), including RESOLVE, RESPONSE, SOLICIT, ADVERTISE, REQUEST, FLOOD, INQUIRE, AUTHORITY, ACK, and REPAIR messages.
Other inventorsSee patent -
Peer-to-peer message format data structure
Filed US 7,912,948; 7,533,184
-
Peer-to-peer network information (EU)
Issued EU EP 1 694 027 B1
Storage and retrieval of secured keys in a p2p cloud
-
Group Security
Issued US 7,397,922
A system and method for providing security to a graph of interconnected nodes includes a grouping multiplexing layer configured to monitor calls to the system, a graphing dynamic link layer configured to transmit and receive data to and from the graph, and a group security manager coupled to the grouping multiplexing layer and coupled to the graphing dynamic link layer; the group security manager is configured to perform security-related acts via interacting with a group database to propagate…
A system and method for providing security to a graph of interconnected nodes includes a grouping multiplexing layer configured to monitor calls to the system, a graphing dynamic link layer configured to transmit and receive data to and from the graph, and a group security manager coupled to the grouping multiplexing layer and coupled to the graphing dynamic link layer; the group security manager is configured to perform security-related acts via interacting with a group database to propagate security-related information to members of a group within the graph. The group security manager is configured to provide role-based authorization on publication of one or more records and provide membership control for admission to a graph of interconnected nodes. The group security manager provides membership control by providing credentials to potential members of the graph to enable a connection and by providing a governed system for renewal and revocation of members.
Other inventorsSee patent -
Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith (US)
Filed US 7,962,651; 7,565,432; 7,065,587
-
Peer-to-peer name resolution protocol (PNRP) security infrastructure and method
Issued US 7,725,567 + 6 more
A security infrastructure and methods are presented that inhibit the ability of a malicious node from disrupting the normal operations of a peer-to-peer network. The methods of the invention allow both secure and insecure identities to be used by nodes by making them self-verifying. When necessary or opportunistic, ID ownership is validated by piggybacking the validation on existing messages. The probability of connecting initially to a malicious node is reduced by randomly selecting to which…
A security infrastructure and methods are presented that inhibit the ability of a malicious node from disrupting the normal operations of a peer-to-peer network. The methods of the invention allow both secure and insecure identities to be used by nodes by making them self-verifying. When necessary or opportunistic, ID ownership is validated by piggybacking the validation on existing messages. The probability of connecting initially to a malicious node is reduced by randomly selecting to which node to connect. Further, information from malicious nodes is identified and can be disregarded by maintaining information about prior communications that will require a future response. Denial of service attacks are inhibited by allowing the node to disregard requests when its resource utilization exceeds a predetermined limit. The ability for a malicious node to remove a valid node is reduced by requiring that revocation certificates be signed by the node to be removed.
Other inventorsSee patent -
Multi-level cache architecture and cache management method for peer-to-peer name resolution protocol (EU)
Issued EU EP 1 355 477 B1
Initial PNRP cache design
-
Multi-level cache architecture and cache management method for peer-to-peer name resolution protocol (US)
Issued US 6,912,622
A peer-to-peer cache architecture stores peer address certificates in different cache segments according to the number of IDs being stored and their relative distance in the peer name space. The cache instantiates regions of decreased range and increased granularity as additional information from close peers is learned. In a large peer cloud where the number of instantiated IDs is not known, each succeeding cache region covers one tenth of the preceding cache region. For peers with multiple IDs…
A peer-to-peer cache architecture stores peer address certificates in different cache segments according to the number of IDs being stored and their relative distance in the peer name space. The cache instantiates regions of decreased range and increased granularity as additional information from close peers is learned. In a large peer cloud where the number of instantiated IDs is not known, each succeeding cache region covers one tenth of the preceding cache region. For peers with multiple IDs registered locally, the segmented cache of the present invention combines overlapping segments of the same granularity to eliminate the duplication of information that would otherwise occur. A cache tree, an instantiated segment tree, and an uninstantiated segment tree are arranged in red-black trees to simplify the search and proper placement and instantiation of information.
-
System and method of generating computer system performance reports
Issued US 6,892,236
A system and method for automated reporting of performance of computer system components uses a plurality of reporting clients for tracking system performance data and one or more reporting servers for automatically generating performance reports based on the performance data collected by the reporting clients. To provide extensibility, a plug-in module is provided for each of the reporting clients. The plug-in module registers performance metrics for a system component with the reporting…
A system and method for automated reporting of performance of computer system components uses a plurality of reporting clients for tracking system performance data and one or more reporting servers for automatically generating performance reports based on the performance data collected by the reporting clients. To provide extensibility, a plug-in module is provided for each of the reporting clients. The plug-in module registers performance metrics for a system component with the reporting client, tracks the performance metrics, and passes data on the performance metrics to the reporting client for reporting to the reporting server.
Other inventors -
Method and system for performing parametric testing of a functional programming interface
Issued US 5,495,571
The present invention provides a method and system for performing parametric testing of a functional programming interface. Parametric testing of a function verifies that the function performs as expected when a valid or an invalid parameter is passed to the function. To perform parameter testing on a function, the present invention receives as input prototype information for the function, and then formulates a testing plan. The invention tests the function according to the testing plan. The…
The present invention provides a method and system for performing parametric testing of a functional programming interface. Parametric testing of a function verifies that the function performs as expected when a valid or an invalid parameter is passed to the function. To perform parameter testing on a function, the present invention receives as input prototype information for the function, and then formulates a testing plan. The invention tests the function according to the testing plan. The testing plan specifies a list of invalid and valid values for each parameter of the function. The invention repeatedly invokes the function, each time passing the function various combinations of invalid and valid values. The function passes the test when (1) the function does not return an error code for any combination of valid parameter values and (2) the function returns an error for any combination of parameter values that include an invalid parameter value.
Other inventorsSee patent
Courses
-
Abstract Algebra
-
-
Artificial Intelligence
-
-
Differential Equations
-
-
Discrete Mathematics
-
-
Formal Languages and Finite Automata
-
-
Real Analysis
-
Organizations
-
YouTube
Content Creator
- PresentProperietor of "The Deliberate Engineer" youtube channel, primarily career advice for software engineers, but also some engineering topics. https://www.youtube.com/c/TheDeliberateEngineer
-
Quora
Top Writer 2016-2018. Published writer
- PresentAwarded 'Top Writer' in 2016-2018, 100+ answers republished in sites such as Forbes, Time, and Slate. 33.6m content views on Quora site as of 12/2019. 47k followers.
-
ACM
-
Recommendations received
2 people have recommended John
Join now to viewMore activity by John
-
After I released the "What It Took To Become An $800,000 Engineer" video, Business Insider asked if I'd write an article sharing my compensation…
After I released the "What It Took To Become An $800,000 Engineer" video, Business Insider asked if I'd write an article sharing my compensation…
Liked by John Miller
-
Today is a good day. I cannot say why yet, but it I can say it is a good day. Small steps…
Today is a good day. I cannot say why yet, but it I can say it is a good day. Small steps…
Liked by John Miller
-
I've watched this guy's videos for a while, and agree with pretty much 100% of his advice. Especially this: https://lnkd.in/g5reKE2s
I've watched this guy's videos for a while, and agree with pretty much 100% of his advice. Especially this: https://lnkd.in/g5reKE2s
Shared by John Miller
People also viewed
Explore collaborative articles
We’re unlocking community knowledge in a new way. Experts add insights directly into each article, started with the help of AI.
Explore MoreOthers named John Miller in United States
7881 others named John Miller in United States are on LinkedIn
See others named John Miller