This site is intended as a clearinghouse for information about distributed computing architectures that are more structured than telnet command protocols or CGIs but less complex or heavy than CORBA or DCOM. The term ``lightweight'' in this context refers to both how easy it is for a user to begin using the architecture as well as how easy it is for implementors to get started in development and quickly produce working code.
Discussion about lightweight protocols can be directed to the xml-dist-app mailing list. To subscribe, send a message to<EMAIL_ADDRESS>with the subject "subscribe".
Telnet-friendly protocols (HTTP, FTP, SMTP, NNTP, POP) are the original and most widely-deployed lightweight protocols. Generally, the protocols described on this site provide additional structure in the protocols that ASCII line-based protocols never standardized.
Please send links and updates to<EMAIL_ADDRESS>``Architectures'' are complete systems for distributed computing and usually include services, protocols, or formats for transport, serialization, making requests, and discovery.
These applications either implement or use lightweight protocols or are specially designed to work well with lightweight protocols.
[RFCs, organizations, articles, mailing lists, ...]
LWProtocols.org is hosted by Prosthetic Monkey. |


As you create the client, a client will automatically be added for the client. You should pass along the email address provided to the client so that they can login and update the appropriate fields.


|
Files | |
| file | LEGOUS-driver.h |
SMUX driver for the Lego US sensor. | |
Defines | |
| #define | LEGOUS_I2C_ADDR 0x10 |
| #define | LEGOUS_REG_CMD 0x41 |
| #define | LEGOUS_REG_DATA 0x42 |
| #define | LEGOUS_CMD_OFF 0x00 |
| #define | LEGOUS_CMD_SSHOT 0x01 |
| #define | LEGOUS_CMD_CONT 0x02 |
| #define | LEGOUS_CMD_ECAPT 0x03 |
| #define | LEGOUS_CMD_RST 0x04 |
Functions | |
| int | USreadDist (tSensors link) |
| bool | USreadDistances (tSensors link, tByteArray &distances) |
| bool | _USsendCmd (tSensors link, ubyte command) |
| bool | USsetSingleMode (tSensors link) |
| bool | USsetContinuousMode (tSensors link) |
| bool | USsetOff (tSensors link) |
| bool | USsetEventCapture (tSensors link) |
| bool | USreset (tSensors link) |
| int | USreadDist (tMUXSensor muxsensor) |
Variables | |
| tConfigParams | LEGOUS_config = {HTSMUX_CHAN_I2C + HTSMUX_CHAN_9V + HTSMUX_CHAN_I2C_SLOW, 1, 0x02, 0x42} |
| tByteArray | LEGOUS_I2CRequest |
| tByteArray | LEGOUS_I2CReply |
Ultrasonic Sensor
| #define LEGOUS_CMD_CONT 0x02 |
Command to turn on Continuous Mode
Definition at line 44 of file LEGOUS-driver.h.
| #define LEGOUS_CMD_ECAPT 0x03 |
Command to turn on Event Capture Mode
Definition at line 45 of file LEGOUS-driver.h.
| #define LEGOUS_CMD_OFF 0x00 |
Command to switch US off
Definition at line 42 of file LEGOUS-driver.h.
| #define LEGOUS_CMD_RST 0x04 |
Command to request a warm reset
Definition at line 46 of file LEGOUS-driver.h.
| #define LEGOUS_CMD_SSHOT 0x01 |
Command to turn on Single Shot mode
Definition at line 43 of file LEGOUS-driver.h.
| #define LEGOUS_I2C_ADDR 0x10 |
Lego US I2C address
Definition at line 38 of file LEGOUS-driver.h.
| #define LEGOUS_REG_CMD 0x41 |
Command register
Definition at line 39 of file LEGOUS-driver.h.
| #define LEGOUS_REG_DATA 0x42 |
Start of measurement data registers
Definition at line 40 of file LEGOUS-driver.h.
| bool _USsendCmd | ( | tSensors | link, |
| ubyte | command | ||
| ) |
Send a command to the US Sensor
Note: this is an internal function and should not be called directly.
| link | the US port number |
| command | the command to be sent to the sensor |
Definition at line 143 of file LEGOUS-driver.h.
| int USreadDist | ( | tMUXSensor | muxsensor ) |
Get the distance value from the sensor
| muxsensor | the SMUX sensor port number |
Definition at line 73 of file LEGOUS-driver.h.
| int USreadDist | ( | tSensors | link ) |
Get the distance values from the sensor
| link | the US port number |
Definition at line 93 of file LEGOUS-driver.h.
| bool USreadDistances | ( | tSensors | link, |
| tByteArray & | distances | ||
| ) |
Get the distance values from the sensor. The distances to the 8 closest objects are returned.
| link | the US port number |
| distances | array holding data on last 8 echos received |
Definition at line 117 of file LEGOUS-driver.h.
| bool USreset | ( | tSensors | link ) |
Request a warm reset of the sensor.
| link | the US port number |
Definition at line 200 of file LEGOUS-driver.h.
| bool USsetContinuousMode | ( | tSensors | link ) |
Configure the US sensor for Continuous Mode. This is the default.
| link | the US port number |
Definition at line 170 of file LEGOUS-driver.h.
| bool USsetEventCapture | ( | tSensors | link ) |
Configure the US sensor for Event Capture mode
| link | the US port number |
Definition at line 190 of file LEGOUS-driver.h.
| bool USsetOff | ( | tSensors | link ) |
Turn the sensor off.
| link | the US port number |
Definition at line 180 of file LEGOUS-driver.h.
| bool USsetSingleMode | ( | tSensors | link ) |
Configure the US sensor for Single Shot mode
| link | the US port number |
Definition at line 160 of file LEGOUS-driver.h.
| tConfigParams LEGOUS_config = {HTSMUX_CHAN_I2C + HTSMUX_CHAN_9V + HTSMUX_CHAN_I2C_SLOW, 1, 0x02, 0x42} |
Array to hold SMUX config data for sensor
Definition at line 61 of file LEGOUS-driver.h.
Definition at line 65 of file LEGOUS-driver.h.
Definition at line 64 of file LEGOUS-driver.h.


Kyle Simpson describes a technique for simulated chaining in JavaScript using a loop. The technique is straightforward enough. Instead of something like
MyObj.func(arg1).func(arg2).func(arg3);
He recommends you do
var args = [arg1, arg2, arg3], MyChain = MyObj, i; for (i = 0; i < args.length; i += 1) { MyChain = MyChain.func(args[i]); }
This allows the chain to function the same as in the first example, but gives room to breathe in between "links", so that you can add more complex logic about which links to include, and which to skip. I think this is great. However, for some situations, I think there is a better solution.
Kyle's awesome utility, LABjs, relies on chaining, off the global variable $LAB
. His looped chaining example solves a particular problem that LABjs has, which is that
$LAB.script("script1.js") .wait() .script("script2.js");
is not the same as
$LAB.script("script1.js") .wait(); $LAB.script("script2.js");
In this case, LABjs only blocks and manages scripts as they exist in a single chain. If you start a new chain, the entire thing will be considered to be in parallel to the other chains.
I think I have a stronger solution, which is to modify LABjs itself to constantly update the global $LAB
to always point to the end of the most recent chain. Here's an (untested) mockup of what such a mechanism would look like, leaving out the actual code that makes LABjs go:
var $LAB = (function () { var lab = engine(true); delete lab.start; function engine(autostart) { var queue = [], next, that = { start: { go(); }, script: function (name) { queue.push(name); }, wait: function () { var e = engine(); next = e.start; delete e.start; // remove this so the client can't get to it if (autostart) { go(); } // Set the global $LAB to point to this new engine $LAB = e; return e; } }, go = function () { // process queue, attach callback to call next() (if a function) }; } return lab; }());
Then, you could do something like this, and not worry about the broken chain:
$LAB.script("script1.js") .script("script2.js"); if (includeExtraLib) { $LAB.script("extraLib.js"); } $LAB.wait(); if (loggedIn) { $LAB.script("userloggedin.js"); } else { $LAB.script("userloggedout.js"); } // etc.
Of course, this method has some clear drawbacks. Implicitly changing a global like that is not a good practice, unless it's well documented and the behavior makes sense. In this case, I think it does. For other uses, this might not be the best approach. Nevertheless, I think that including this ability, either through a configuration value or an extra getter function like $LAB.endOfChain()
makes a lot of sense in a library that relies on chaining.
Thanks to Kyle for creating LABjs, which is an incredible tool with a wonderfully simple API. Feel free to "View Source" on this page, you'll see that I'm using it :)


thumbnail
My reflections on time and habit techniques
Q: Which timebox and habits techniques did you try? A: In my own accounting career over the last year I've tended to use pomodoro already ...
thumbnail
Reflections on Shereef's Fireside Chat
Q: What's your take on the DBC/EDA experience? A: My take is that overall dev academy is very much about what we make of it ...
thumbnail
Reflections from Sprint-1
Q: Why is reflection important? A: Well, from this exercise celebrating wins does give that little bit of confidence ...
thumbnail
Technical blog #1 (Udacity Reflection)
Q: From the websites you visited in the practice assignment, create a list of design and structural features you liked ...
thumbnail
3.2 Technical Blog
Q: What a responsive site is, and why responsiveness is important? A: Responsive sites are sites that adapt their layout and content to the size of the screen...
thumbnail
3.3 Cultural Blog
Q: How did the 'process over product' concept affect the way you tackled the site redesign and rebuild? A: Hehe. I think overall it's hard to avoid admitting that...
thumbnail
4.3 Technical Blog
Q: How does JavaScript compare to HTML and CSS? ... Javascript is a programming language that we can use to interact with html and css elements...
thumbnail
4.4 Cultural Blog
Q: What did you learn from your 'mindfulness conversation'? How did the other person find it? My experiences of mindfulness conversation at day-in-the-life impacted me so...
thumbnail
5.7 Technical Blog
Q: As if talking to a non-tech friend, tell a story about a time you got blocked on a simple problem. A: In this case I was having trouble with a loop exercise...
thumbnail
5.6 Cultural Blog
Q: What is the relationship between mindfulness and self awareness? A: Self awareness is defined in the book as “knowing one’s internal states...
thumbnail
6.5 Technical Blog
Q: As if talking to a non-tech friend, In the javascript language, describe the use case for each - parentheses (). A: These are used for passing parameters...
thumbnail
6.6 Cultural Blog
Q: When programming, what are some of your triggers? What causes a disproportionate emotional response? A: Self awareness is defined in the book as “knowing one’s internal states...
thumbnail
7.4 Cultural Blog
Q: How does life look through the 'pleasure, passion and purpose' lens? A: It's pointed out that life through this lense has seasons of pleasure ie always chasing the next high (which is unsustainable)...
thumbnail
Random Quote Machine!
Please enjoy these translations of Maori proverbs from Maori to english...
thumbnail
8.4 Cultural Blog
Q: From Searching Inside Yourself, have you tried any of the insight & techniques for growing trust & sincerity? A: My favourite technique at the moment is...
thumbnail
Minesweeper
Please enjoy this working version of Minesweeper... choice!
thumbnail
8.3 Technical Blog
Q: As if talking to a non-tech friend, In the javascript language, describe all of the cases used for each - parentheses (). A: These are used for passing parameters...
thumbnail
Calculator
My Javascript calculator :)


What values do I most value? I value in my life the opportunity to live with adventure, creativity, faith, family and friends, free time, integrity, volunteering with other and having peace in my heart.
I chose these values because anytime in my life when I've been truly happy, these are the values that have been at play. Of these, my favorite is probably adventure. I like to think of every experience as an opportunity to live an adventure; One of my favorite things is to try things I've never tried and to go places I've never been.
I've tried to be very deliberate about the things that I do, because througout the years I've recognized for every opportunity you want to pursue, you give up valuable time and energy. This means that choosing to do one thing will take away from your opportunity to pursue another interest, and I don't want to look back and feel like I've wasted my time. Saying yes to Dev Bootcamp means saying no to continuing a career I've enjoyed, or traveling, or pursuing a higher degree. These no's are not permanent, but they signify my devotion to pursuing a new skill, because those goals are temporarily set aside in the name of grasping at something new and relatively unknown.
The last thing someone asked my advice on was either how to phrase something, as in my former life I was an writer. Or it might have been how to make something, as I'm a little craft-obsessed. Or it might have been about marriage, because as a missionary I end up dispensing a lot of advice about that as well. I can't say that I'm an expert at any of those things, but I've because I love all those things I don't mind sharing what I've learned about them through the years.
Eventually, I hope to offer the same sort of advice about coding. After consistently improving my skills and learning as I go, I would like to be able to share and encourage other people in their coding endeavors. My dream would be to combine all the values that I love into a life spent helping others and chasing a great adventure. I believe coding is a skill that can make this dream happen. This is the idea that cheers me when I become discouraged, and one that motivates me to keep on.


Live Feed
50
100
200
Limit Query
30
50
100
200
Limit Wordcloud
5
10
20
30
Top-n Topics and Influencers
1 mins
2 mins
3 mins
5 mins
Refresh rate
00:00
Current time
00:00
Refresh timer


---
layout: default
---
Who is Divine Explorer
We are team of spiritual seekers who combine learning spiritual wisdom with travel as we explore sacred energy
spots or new destinations with a purpose to grow in wisdom.We invite you to become a part of Divine Explorer
as you join our travels and become a part of creating a more conscious society.
- {{ memory.author }}


Harsh believes with the right guidance the kids can help sway the
direction our country is headed into for good. Want to reach a mark of 500 phones donated.
Harsh Sharma
Founder
Mentors
Mentors are responsible for suggestive policy making and help take the initiative forward with their niche expertise.
Advocate Lakhendra Singh is guiding on the legality aspects of the venture.
Advocate Lakhendra Singh
Mentor
Utsha, a graduate from NSIT Delhi is passionate about solving problems in design and social entrepreneurship.
Employed as a software developer at Uber, her experience bring value to the venture in design thinking and technology.
Utsha Sinha, Uber
Mentor
A Master's in Management & Business from Duke University, Aditi brings a more different angle to approaching things with her past experience
in operations.
Aditi Nahata, Asset Trading Management
Mentor
SIH2020, Myntra Hackerramp20 Winner; Full stack android development volunteer for the venture.
Shivam Kumar, DTU
Mentor
Apoorv, an electronics undergrad at Prof. Gadre's Lab in NSIT Delhi, is interested in finding
ways to help young kids get educated with DIY and Origami.
Apoorv Aryan, Qualcomm
Mentor
A Doctoral Student in the School of Computer Science at Carnegie Mellon University.
His experience in challenges of applying Data Science and Machine Learning guides the
scientific analysis aspects at the venture.
Chirag Nagpal
Auton Lab, CMU
Prof. Gadre with his years of experience provides guidance in the decision making to have a
tangible impact in changing lives for good.