+section title="TIDE RAMADDA"
+center
-center
Welcome to the documentation for the TIDE RAMADDA data repository.
Installing RAMADDA
Consult the main installation guide
for basic information on how to install RAMADDA.
:p
To configure your RAMADDA to cooperate in the TIDE data network:
* Download the TIDE RAMADDA Plugin
* Create your RAMADDA home directory as described in the installation guide
* Create a "plugins" directory under your RAMADDA home directory
* Copy the TIDE RAMADDA Plugin to this plugins directory
* Install RAMADDA
The TIDE plugin will:
* Add a default TIDE web page template
* Provide a custom initial set of content and entries (e.g, data, documents, etc)
* Specifies that your RAMADDA imports the set of shared TIDE network data policies
* Add your RAMADDA to the TIDE network set of registered RAMADDAs. This uses RAMADDA's Registry Service
Data Policies
The TIDE network provides a set of shared RAMADDA Data Policies. These data policies allow you to configure access control policies, shared
data citations and licenses for certain areas of your RAMADDA repository.
:p
The below image shows how the set of RAMADDAs in the TIDE network can share these
data policies.
+center
-center
Federated Search
The TIDE plugin specifies that your RAMADDA registers itself with the
central TIDE Registry Service. This allows other RAMADDA nodes in the TIDE network
to be aware of your RAMADDA and for your RAMADDA to be aware of
the set of federated TIDE RAMADDA repositories. This collection of federated
repositories are then available for distributed search.
:p
The below image shows how this federated search works within the TIDE network
+center
-center
-section


Toggle navigation
Home
Contact
Fire Cache Room
Services
Fire Extinguishers
Fire Sprinkler Systems
Kitchen Fire Suppression
Emergency Lights & Exit Signs
Contact Exxel Fire Systems
Contact Details
Exxell Fire Systems
360 Grand Ave #355
Oakland, CA 94610
Office Manager
Ron Coats
P
:<PHONE_NUMBER>
E
:
<EMAIL_ADDRESS>Send us a Message
Full Name:
Phone Number:
Email Address:
Message:
Send Message


Password Protection Page
The access to the form that you are seeking
is password-protected.
Click the login button to bring up the password prompt.
Login
The access to the form that you are seeking
is password-protected.
Click the login button to bring up the password prompt.
Login


--- layout: archive title: Zulip Chat Archive permalink: /stream/113489-new-members/topic/Inequalities.20and.20coercions.html ---
In the standard library, there is a lemma int.coe_nat_le_coe_nat_of_le
which states that one can coerce both sides of an inequality involving natural numbers to get an inequality involving integers. Is there a similar lemma which performs lifting from the natural numbers to the reals?
There is probably one which works for maps from the naturals to arbitrary totally ordered semirings or something, and you might be able to find it with library_search
if you just copy the statement of the lemma above and replace the ints with reals. The reason ints are treated differently is some consequences of a design decision, something about the canonical map from the naturals to the integers being a constructor.
I should also say that the whole point of tactics like norm_cast
is to enable the user to not have to ask questions like this. Your question reminds me of the old days
The lemma name might have the word cast
in rather thancoe
, I never worked out the difference
Kevin Buzzard said:
I should also say that the whole point of tactics like
norm_cast
is to enable the user to not have to ask questions like this. Your question reminds me of the old days
Thanks, using norm_cast
made my life much easier :stuck_out_tongue:
Last updated: Apr 24 2020 at 19:02 UTC


For V2 I was able to get a head start on my project. I was much better prepared and ready for the challenge. Although my page is still very basic I was able to add a bunch of code. This week I did a lot of reading and studying. I would spend about 2-3 hrs a day on writing. Some days were better than others. Throughout my review I slowly started getting a better understanding of the elements and how they work.


{% load templatetag_handlebars %} {% tplhandlebars "median-help-popover" %}
Median GPA
This is the GPA (Grade Point Average) that falls at the midpoint, considering the cumulative GPAs of all students who have declared for the selected major within the specified range of time.
{% endtplhandlebars %}


I've been looking at my own design of power meter. I was getting bad distortion from AC-AC transformers and decided to look at removing the transformer from the design. I started off looking at opto-isolated linear amplifiers, but all these do is V-to-f, send freq pulses over the opto, and then f-to-V again. As I wanted to digitize the signal anyway I thought I'd just move the ADC onto the 'live' side.
I've now come up with a working design. The SPI ADC can convert in 15us, so a max sample rate of around 66kHz, or 1300 samples per mains cycle. The electronics is isolated from the microcontroller using a SPI opto isolator. The whole circuit is then referenced to mid supply (2.5V) using an op-amp. A voltage divider then drops the 220V AC down to just under +- 2.5V peak. The ADC inputs are protected against overvoltage with a pair of Schottky diodes. I can read the reference voltage directly with the ADC, which removes the need for a software DC removal filter.
I'm now starting on the software. Still waiting for the current transformer to arrive, but hope to have a high resolution power meter. I'll write it up properly on my projects site http://www.rotwang.co.uk/projects/projects.html when I've made further progress.
I'd be interested to know what people think of the design.
Re: New experimental design for measuring mains voltage
My immediate concerns would be that the design and layout requires attention to matters like creepage distances, etc, that the average constructor is unlikely to know much about, and then when construction has been completed, testing and fault-finding requires working on live equipment. Professionally manufactured and properly protected, it clearly addresses many of the problems experienced with the current EmonTx, but it is not a design that I could recommend for anyone not possessing the relevant knowledge and experience.
Obviously the distortion you mention is of concern to you, but is it of any consequence for most requirements? Maybe the simpler solution would be to accept that the transformers generally used are not designed for measurement purposes and to use a transformer that is. If you run the standard AC adapter at half voltage, you will see the distortion reduces dramatically. So it can be done. 'Budget' adapters use the minimum amount of copper and iron to keep the price "competitive". If you are prepared to drive the iron less hard so that it stays away from saturation, you will have lower distortion, but at a price.
Re: New experimental design for measuring mains voltage
You are right about the potential hazards if the unit is not constructed correctly. I wouldn't recommend the design unless you knew what you were doing. I should have stated this.
The prototype was built in a way that allowed me to fault-find by isolating the voltage regulator and the AC divider, and power both sides of the opto from the same supply. I could then get the circuit working without applying any dangerous power. I then connected the regulator, so the mains side was self powering and used a signal generator to test the ADC. I could subsequently connect live mains knowing the circuit was fully working.
 Without having an accurate reference it is difficult to know how much distortion is due to the magnetics. The outcome of the experiment might be that I don't need anything this fancy. It would at the very least allow an objective assessment of simpler designs.
Re: New experimental design for measuring mains voltage
Good post daveb, I've subscribed to the post and later will digg a little bit more
Regards
Re: New experimental design for measuring mains voltage
All I can add is when I did an X-Y plot of mains against the output voltage of a possible new AC Adapter (deriving mains voltage directly via a resistive divider - yes, I know!) and fed via a variable transformer, the loop that I saw at 250 V collapsed noticeably at 230 V and it was an almost dead straight line showing 0.82 degrees phase shift at 125 V. I didn't note the harmonic content of the output, but I'd guess it was very close to the input's.
Re: New experimental design for measuring mains voltage
I've finally got round to writing up some notes on this design. I still haven't finished the software, but the hardware is stable.
Comments welcome.
http://www.rotwang.co.uk/projects/energy_monitor.html
Re: New experimental design for measuring mains voltage
Nice work there daveb.
Re: New experimental design for measuring mains voltage
daveb: Maybe the AC/AC transformer that you used was not up to the job. The one that I found lying around was from some old telephony device. It has an 8V dc outlet which is unused, and an AC outlet which nominally provides 6.5Vac. When run with a burden of 150R, it produces the entirely acceptable waveform that I've shown at http://openenergymonitor.org/emon/node/824 Keep it simple, I say!
Re: New experimental design for measuring mains voltage
Hi calypso_rae : yes, you are probably right. I tried with a couple of transformers. Clearly, if the AC-AC adapters used in OEM were as bad as this they wouldn't work at all. Have you analysed your waveform to see what the distortion is? You can build up quite large power errors with relatively small voltage errors mid peak, where the bulk of the energy is.
The circuit as shown is probably not a practical approach, but the design process was interesting. It does give accurate results though. I think that elements of the current interface, the PGA, the voltage reference buffers and the software (especially converting in the background to increase sample rate) are all applicable to the OEM project and would improve it.
With this circuit I can measure the power of my 1.5W phone charger and clearly see it switching on and off, I don't think that is possible with the existing OEM design.
Re: New experimental design for measuring mains voltage
Hi daveb: Your circuit may well give excellent results, but it's workings are way beyond my comprehension (apart from the buffer for the 2.5V reference!) No, I've not done any analysis, I've just followed the standard design which seems to be working OK and is heating our water.
Isn't an AC/AC mains adapter just a simple transformer which could be as beefy as is necessary to ensure a good waveform? The secondary is taking very little current so I would have thought that a decent stand-alone transformer would give a nigh-on perfect copy of the input waveform. With a pre-packaged adapter, although no high-voltage parts are exposed, the quality of the internal ironwork may well be of lesser quality.
Maybe someone would like to measure their mains voltage via a simple stand-alone transformer, stepped down and biassed for the Arduino, and displayed using the sketch that I posted yesterday at http://openenergymonitor.org/emon/node/824. I reckon the waveform should look OK ...
Re: New experimental design for measuring mains voltage
daveb,
"You can build up quite large power errors with relatively small voltage errors mid peak, where the bulk of the energy is."
True enough, but that isn't where the distortion first appears. The earliest symptom you see is a shift near the crossing - there are two pictures here (which also demonstrate how things improve at a lower voltage). Some of the distortion may be due to the variable transformer that was in use for the tests.
Attached are pictures under the same conditions for a different adapter with a slightly higher VA rating. The yellow trace is the mains, the red trace is the adapter output. Also attached is a video - the X-Y plot of mains versus output as the voltage is swept over the range (zipped Windows .avi file).
I have not measured the harmonic analysis of the raw mains without the variable transformer in circuit.
"With this circuit I can measure the power of my 1.5W phone charger and clearly see it switching on and off, I don't think that is possible with the existing OEM design."
Also true, but a large part of that is down to the extra 6 bits you have in your ADC.
Re: New experimental design for measuring mains voltage
Calypso-rae,
I think you are spot-on with "the internal ironwork may well be of lesser quality". These adapters are built down to a price and not for quality, and let's face it, for most purposes that is plenty good enough. If it charges the battery OK, that's it. These things are intended for sporadic use. You could put more iron and more copper in, the losses would come down, the running cost would come down, the waveform would improve but the selling price would rocket (comparatively!) and the market would not take it. If you're making a distribution transformer that is powered full-time for maybe a 30-year life, losses are important (because they eat out of the electricity company's profits) and so extra capital cost is repaid. The normal domestic user doesn't think of that (unlike us energy-conscious types!).
If I could find a low-power transformer with a 415V (or so) primary, I'd recommend trying that. Unfortunately, it would have to be made to order - the smallest I can find commercially available is rated at 100 VA. (R.S. no longer do their wind-your-own transformer kits with iron laminations).
Re: New experimental design for measuring mains voltage
I have designed an analog power meter using a multiplier for an immmersion controller and run into the same problem as you and worse with the voltage pick off. Extensive testing on using transformers as an accurate voltage pick gives the following errors.
Phase change due to variation in input voltage.
Phase change due to change in core temp
Phase and voltage shape change due to loading.
All in all they are bad news
I am now using a resistive divider to tap down the voltage but as well as clamping to the supply I have used two zeners back to back across the tapped down voltage. This has the advantage of protecting in case of failure of any of the resistive divider which would destroy your power supply. It would make sense to produce this as a potted block for use instead of the transformer.
Re: New experimental design for measuring mains voltage
pmcalli
Do remember that without galvanic isolation, the WHOLE of your meter is live and a potential danger.
Re: New experimental design for measuring mains voltage
If an X:Y plot of the 'tapped down' mains voltage versus the transformer's output is an oval, can that effect be compensated for using PHASECAL?
Sorry if this is a dumb question, but this post- Ohm's Law stuff is rather a shock to my system!
Re: New experimental design for measuring mains voltage
Yes.
Plus the same effect in the c.t. and the error due to the voltage and current not being measured at the same time.
(And this is a long way past Ohm's Law )
Re: New experimental design for measuring mains voltage
OK Robert, thanks.
I think we all understand the basics of AC, and that a circle has sine and cosine components. But once the conversation moves into more complex and unfamiliar terms, many people start to struggle. I certainly do. I don't particularly wish to know all the underlying theory; I just want my PV Controller to work as efficiently as is possible.
I've started to write a piece in layman's terms which will hopefully consolidate these ideas in my own mind and may be helpful to others. It will have lots of pictures :)
Re: New experimental design for measuring mains voltage
Sorry - I can't help having been an electrical engineer for the past 45 or so years (if you count from starting as a student apprentice)
If you do know - or can look up and work through the theory (and there is plenty of information on-line, though not all is complete nor reliable) and use available tools, then you can bypass a lot of the practical experimentation and come up with a solution that not only seems to work for you, but does work and will continue to work both for you and others too.


This helpful form will help you know what kind of triangle you are working on based on what
Please do not input negitive measurements:
Your triangle is !


User Information
Name
Hugh Mann
City
Anytown
State
OH
Postal Code
92110
Email
boss@awesomecompany.com


A grammar is LL(1) if (roughly) you can unambiguously decide which grammar rule to use from
exactly one token of lookahead. Although LL parsers have some shortcomings,
they are easier to understand than LR parsers, which have always seemed to me like reaching into your left
pocket with your right hand: it gives you the right result but is quite contorted.
An LL(1) grammar is well suited to table-based parsing. This page implements all the steps
in constructing and using such a table.
Try It Yourself
A simple LL(1) grammar is provided, along with a correct line of code. (You can change the grammar; instructions below.)
Click to derive all the required sets and construct the parse table.
Or, click each button sequentially.
Click to initialize the parser.
Click repeatedly to parse the source code.
Table Builder
Grammar
Terminals
Terminals will go here
Non-terminals
Non-terminals will go here
Nullables
Nullables will go here
FIRST(A) = { t : (t ≠ ε & A →* tβ) | (t = ε & A →* ε) }
FIRST set will go here
FOLLOW(A) = { t : (t ≠ $ & S →+ αAtβ) | (t = $ & S →* αA) }


Trigger the extra layer element action menu for a selection.
Function to handle re-associating elements to the nearest staff
Event handler for delete button press.
End the extra options menu.
Initialize NeonView.
Initialize extra dropdown options: Listen to clicks on dropdowns
Function to handle inserting divisio or accidental into nearest syllable
Function to handle moving divisio or accidental out of syllable
Function to handle removing elements
Function to set the HTML content of edit controls: either #moreEdit or #extraEdit
The type of edit controls
The innerHTML contents
Is the innerHTML being replaced, or being added to?
Trigger extra accid actions.
Trigger extra clef actions for a specific clef.
The clef on which to trigger additional actions.
Trigger extra custos actions.
Trigger default selection option.
Trigger default actions when selecting by syl
Trigger extra layer element (accid, divLine, custos) actions.
Trigger the extra nc action menu for a selection.
Trigger extra neume actions.
Trigger split staff option
Trigger extra staff actions.
Enter staff splitting mode
Trigger extra syllable actions.
The id of the neume component.
An action that unsets the inclinatum parameter of a neume component.
The id of the neume component.
An action that unsets the liquescent_anticlockwise parameter of a neume component.
The id of the neume component.
An action that unsets the liquescent_clockwise parameter of a neume component.
The id of the neume component.
An action that unsets the virga parameter of a neume component.
The id of the neume component.
An action that unsets the reversed virga parameter of a neume component.
Generated using TypeDoc
The NeonView parent to call editor actions.


--- layout: post status: publish published: true title: 'Cốc Cốc: Web Analyst' author: display_name: PR Team login: prteam email<EMAIL_ADDRESS>url: '' author_login: prteam author_email<EMAIL_ADDRESS>wordpress_id: 581 wordpress_url: http://gatheringtalents.com/?p=581 date: '2012-05-12 22:19:57 +0000' date_gmt: '2012-05-12 14:19:57 +0000' categories: - Developer - Jobs tags: [] comments: [] ---
Job Description:
Offering valuable content to user is the critical mission of a search engine. However websites often include duplicated content or meaningless information (trash pages), which affect performance of the system.
A web analyst is responsible for investigation of uninformative pages and distinguishing them from valuable contents. He/she leads filtering of trash pages and works with freelancers and developers.
Responsibilities:
We are a young, rapidly-growing IT company with the aim of building a Vietnamese web search engine with modern processing technology of Vietnamese language and ability to provide results based on users’ regions. Our team accumulates specialists from all over the world, combining the strength of Russian IT-gurus and talented Vietnamese. We are always glad to see new members in our company, and we enjoy overcoming new challenges together.


Input is enabled when clicked or option is selected:
Option 0
Option 1
Other:
Input is enabled as long as it has focus:


The choice is specific to this device/browser.
Download album cover from the internet...
Show the user interface on a display connected to the Raspberry Pi (experimental feature).
Select how long before the screensaver starts.


EVENT HORIZON (1997) A film review by Steve Kong Copyright 1997 Steve Kong
"Wow!" and "Potential" are the words that popped up in my mind during the first 20 minutes or so of Event Horizon. Then the phrases "Ugh" and "It had potential" started to creep in. In the opening 20 minutes of Event Horizon, we are treated to some well-done special effects along with some pretty good ideas for a sci-fi movie. But after we are introduced to these ideas, we are sent on a path to a typical horror film.
The premise to Event Horizon has so much potential; A ship, Event Horizon, is built with a special Gravity Drive that will let it tear holes in the space-time continuum and let it travel across galaxies without any effort. It does this by first tearing a hole at the two points, the origin and the destination. Then the Gravity Drive "folds" space-time so that the ship can be transported to the destination instantaneously. Sam Neill, plays William Weir, the creator of the Gravity Drive, he explains how the Gravity Drive works much better in the film. With this kind of start, and this kind of premise, there is infinite potential on a good solid sci-fi film. But, screenwriter Philip Eisner lets the script wander to the standard horror genre, and turns this film into nothing more than a gory not-scary film.
It seems that seven years after the Event Horizon disappeared; it has not reappeared in orbit around Neptune. A team is dispatched to rescue any crew onboard the Event Horizon, salvage the Event Horizon, and find out what happened to the Event Horizon. The team is led by Captain Joe Miller (Lawrence Fishburne). The team is filled with stock two-dimensional characters, including one for comic relief. None of the characters are memorable. Sam Neill's William Weir is tagging along with the team to advise them. With the look of the film and the strange make up of the team, it looks almost like the Space Marines from James Cameron's Aliens. But, unfortunately, the casting for the team is not as strong, and the writing for the team is not up to par.  The ship is now haunted, and it has a new crew to play with, and kill.
As a horror film, Event Horizon does what it can. Using a lot of the turn-around-to-see-a-scary-thing technique to try to scare the audience. It also uses very short flashes of images and burst of sound to try to scare the audience. Most of these work, but after a few of them, I was wondering if the director was running short of inventive ways to scare the audience.
The good thing about Event Horizon is the look of it. Director Paul Anderson, who's last film, Mortal Kombat, also looked great, creates a world that is dark, dingy and scary. The special effects are well done, these include some long shots of Neptune, complete with whirling storms. The spacecrafts look great and the interiors of Event Horizon and The Lewis and Clark are also great. But, all of the looks are lost to a boring, uninspired, horror film that hardly does what it sets out to do: Scare the audience.
Sam Neill gives a decent performance as Weir, the smart and somewhat crazed scientist. Laurence Fishburne is below par, and looks as if he is as bored with the film as the audience is. The rest of the crew gives forgettable performances, and I really think that Kathleen Quinlan's (Apollo 13) talents are wasted in this film.
Event Horizon a film that can be missed in the theatres and on video. It has a wonderful setup, but does not go through with it. Though it is visually spectacular, the story is just not there to support it's eye candy. A definite miss, save your money. Event Horizon has gone to Hell and has come back, but it seems as if all the fun has been striped of it in Hell.
!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=! steve kong "I want something else<EMAIL_ADDRESS>to get me through this spy on me at: steve-cam.home.ml.org semi-charmed kinda life" - 3eb movie reviews: hardboiled.home.ml.org mookie: mookie.relay.net !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Iterates over the time dimension of a tensor.
tf.compat.v1.keras.backend.rnn
tf.compat.v2.keras.backend.rnn
tf.keras.backend.rnn( step_function, inputs, initial_states, go_backwards=False, mask=None, constants=None, unroll=False, input_length=None, time_major=False, zero_output_for_mask=False )
step_function
: RNN step function.
Args;
input; Tensor with shape (samples, ...)
(no time dimension),
representing input for the batch of samples at a certain
time step.
states; List of tensors.
Returns;
output; Tensor with shape (samples, output_dim)
(no time dimension).
new_states; List of tensors, same length and shapes
as 'states'. The first state in the list must be the
output tensor at the previous timestep.inputs
: Tensor of temporal data of shape (samples, time, ...)
(at least 3D), or nested tensors, and each of which has shape
(samples, time, ...)
.initial_states
: Tensor with shape (samples, state_size)
(no time dimension), containing the initial values for the states used
in the step function. In the case that state_size is in a nested
shape, the shape of initial_states will also follow the nested
structure.go_backwards
: Boolean. If True, do the iteration over the time
dimension in reverse order and return the reversed sequence.mask
: Binary tensor with shape (samples, time, 1)
,
with a zero for every element that is masked.constants
: List of constant values passed at each step.unroll
: Whether to unroll the RNN or to use a symbolic while_loop
.input_length
: If specified, assume time dimension is of this length.time_major
: Boolean. If true, the inputs and outputs will be in shape
(timesteps, batch, ...)
, whereas in the False case, it will be
(batch, timesteps, ...)
. Using time_major = True
is a bit more
efficient because it avoids transposes at the beginning and end of the
RNN calculation. However, most TensorFlow data is batch-major, so by
default this function accepts input and emits output in batch-major
form.zero_output_for_mask
: Boolean. If True, the output for masked timestep
will be zeros, whereas in the False case, output from previous
timestep is returned.A tuple, (last_output, outputs, new_states)
.
last_output: the latest output of the rnn, of shape (samples, ...)
outputs: tensor with shape (samples, time, ...)
where each
entry outputs[s, t]
is the output of the step function
at time t
for sample s
.
new_states: list of tensors, latest states returned by
the step function, of shape (samples, ...)
.
ValueError
: if input dimension is less than 3.ValueError
: if unroll
is True
but input timestep is not a fixed
number.ValueError
: if mask
is provided (not None
) but states is not provided
(len(states)
== 0).


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/I.20can't.20build.20lean.html ---
ninja
gives me error. here's an excerpt:
C:\lean\library\init\algebra\ordered_group.lean:342:7: error: _interaction: trying to evaluate sorry C:\lean\library\init\algebra\ordered_group.lean:342:7: error: unknown identifier 'h' C:\lean\library\init\algebra\ordered_group.lean:342:9: error: invalid 'begin-end' expression, ',' expected C:\lean\library\init\algebra\ordered_group.lean:343:2: error: sync C:\lean\library\init\algebra\ordered_group.lean:340:0: error: invalid reference to undefined universe level parameter 'u_1' C:\lean\library\init\algebra\ring.lean:168:11: error: _interaction: trying to evaluate sorry C:\lean\library\init\algebra\ordered_group.lean:340:0: error: invalid reference to undefined universe level parameter 'u_6' C:\lean\library\init\algebra\ordered_group.lean:343:6: error: unknown identifier 'neg_add_cancel_left' C:\lean\library\init\algebra\ordered_group.lean:343:26: error: invalid 'begin-end' expression, ',' expected C:\lean\library\init\algebra\ordered_group.lean:344:0: error: sync C:\lean\library\init\algebra\ring.lean:168:11: error: invalid reference to undefined universe level parameter 'u_2' C:\lean\library\init\algebra\ring.lean:168:11: error: invalid reference to undefined universe level parameter 'u_4' C:\lean\library\init\algebra\ring.lean:168:11: error: invalid reference to undefined universe level parameter 'u_11' C:\lean\library\init\algebra\ring.lean:168:11: error: invalid reference to undefined universe level parameter 'u_16' C:\lean\library\init\algebra\ring.lean:168:39: error: invalid reference to undefined universe level parameter 'u_1' C:\lean\library\init\algebra\ring.lean:168:39: error: invalid reference to undefined universe level parameter 'u_6' C:\lean\library\init\algebra\ring.lean:169:22: error: unknown identifier 'add_left_cancel' C:\lean\library\init\algebra\ordered_group.lean:335:0: error: failed to synthesize type class instance for α : Type u, _inst_1 : ordered_comm_group α, a b c : α, h : b ≤ -a + c ⊢ has_bind tactic C:\lean\library\init\algebra\ordered_group.lean:335:0: error: failed to synthesize type class instance for α : Type u, _inst_1 : ordered_comm_group α, a b c : α, h : b ≤ -a + c ⊢ has_bind tactic C:\lean\library\init\algebra\ordered_group.lean:337:2: error: failed to synthesize type class instance for α : Type u, _inst_1 : ordered_comm_group α, a b c : α, h : b ≤ -a + c ⊢ has_bind tactic C:\lean\library\init\algebra\ordered_group.lean:342:2: error: failed to synthesize type class instance for α : Type u, _inst_1 : ordered_comm_group α, a b c : α, h : a + b ≤ c ⊢ has_bind tactic C:\lean\library\init\algebra\ring.lean:174:8: error: _interaction: trying to evaluate sorry C:\lean\library\init\algebra\ring.lean:174:8: error: invalid reference to undefined universe level parameter 'u_2' C:\lean\library\init\algebra\ring.lean:174:8: error: invalid reference to undefined universe level parameter 'u_4' C:\lean\library\init\algebra\ring.lean:174:8: error: invalid reference to undefined universe level parameter 'u_11' C:\lean\library\init\algebra\ordered_group.lean:336:2: error: don't know how to synthesize placeholder context: α : Type u, _inst_1 : ordered_comm_group α, a b c : α, h : b ≤ -a + c ⊢ Type ? C:\lean\library\init\algebra\ring.lean:174:8: error: invalid reference to undefined universe level parameter 'u_16' C:\lean\library\init\algebra\ordered_group.lean:341:0: error: failed to synthesize type class instance for α : Type u, _inst_1 : ordered_comm_group α, a b c : α, h : a + b ≤ c ⊢ has_bind tactic C:\lean\library\init\algebra\ring.lean:174:41: error: invalid reference to undefined universe level parameter 'u_1' C:\lean\library\init\algebra\ring.lean:174:41: error: invalid reference to undefined universe level parameter 'u_6' C:\lean\library\init\algebra\ring.lean:167:36: error: failed to synthesize type class instance for α : Type u, _inst_1 : ring α, a : α ⊢ has_bind tactic C:\lean\library\init\algebra\ring.lean:175:23: error: unknown identifier 'add_left_cancel' C:\lean\library\init\algebra\ordered_group.lean:341:0: error: failed to synthesize type class instance for α : Type u, _inst_1 : ordered_comm_group α, a b c : α, h : a + b ≤ c ⊢ has_bind tactic C:\lean\library\init\algebra\ordered_group.lean:344:0: error: failed to synthesize type class instance for α : Type u, _inst_1 : ordered_comm_group α, a b c : α, h : a + b ≤ c ⊢ has_bind tactic C:\lean\library\init\algebra\ring.lean:168:36: error: failed to synthesize type class instance for α : Type u, _inst_1 : ring α, a : α ⊢ has_bind tactic C:\lean\library\init\algebra\ordered_group.lean:348:7: error: _interaction: trying to evaluate sorry C:\lean\library\init\algebra\ordered_group.lean:348:7: error: _interaction: trying to evaluate sorry C:\lean\library\init\algebra\ordered_group.lean:341:0: error: failed to synthesize type class instance for α : Type u,
The error is kinda long and I don't know where to copy it from
https://github.com/leanprover/lean
nvm lean is still building
When you install Lean, where does it put the library? Try deleting that
I've got a new error
[36/40] Building CXX object shell/CMakeFiles/lean.dir/server.cpp.obj [37/40] Linking CXX executable shell\lean_js.exe [38/40] Linking CXX executable shell\lean.exe FAILED: shell/lean.exe cmd.exe /C "cd . && C:\msys64\mingw64\bin\c++.exe -Wall -Wextra -std=c++11 -D LEAN_WINDOWS -D LEAN_WIN_STACK_SIZE=104857600 -D LEAN_JSON -D_GLIBCXX_USE_CXX11_ABI=0 -D LEAN_MULTI_THREAD -D LEAN_AUTO_THREAD_FINALIZATION -DLEAN_BUILD_TYPE="RELEASE" -O3 -DNDEBUG -Wl,--stack,104857600 -pthread shell/CMakeFiles/lean.dir/lean.cpp.obj shell/CMakeFiles/lean.dir/server.cpp.obj shell/CMakeFiles/lean.dir/leandoc.cpp.obj -o shell\lean.exe -Wl,--major-image-version,0,--minor-image-version,0 libleanstatic.a -lgmp -lpsapi -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cmd.exe /C "cd /D C:\lean\build\release\shell && C:\msys64\mingw64\bin\cmake.exe -E remove -f C:/lean/src/../bin/lean.exe && C:\msys64\mingw64\bin\cmake.exe -E copy C:/lean/build/release/shell/lean.exe C:/lean/src/../bin/"" Error copying file "C:/lean/build/release/shell/lean.exe" to "C:/lean/src/../bin/". ninja: build stopped: subcommand failed.
I've reverted to an older version by git checkout
and then I tried to build it again
Did you pick a revision which builds on Travis and AppVeyor?
I used 832d235
because Kevin Buzzard is currently running on that
how do I check if it builds on Travis and AppVeyor?
You can go: https://github.com/leanprover/lean/commits/master
The commits that pass both have a green check mark
the last green check mark is March 2 :o
@Kenny Lau The last error you posted usually indicates that lean.exe
is locked (usually because it is running somewhere), so the copy command fails. I have had success with deleting lean.exe
and then running ninja
again
oh thanks, lemme try
but should I just go with the green check marks
Sometimes this fails as well because ninja
fails to detect that lean.exe
has been deleted, and starts running the build script from after when the file should already exist. When this happens I just touch any cpp file and run ninja
again to force recompilation
@Mario Carneiro I deleted lean.exe, now it's complaining that lean.exe isn't there
see my last comment
open any cpp file, add and delete a space somewhere, and save, then run ninja again
oh
nice
parabens por mim, it worked
I just built lean head on Ubuntu 16.04 -- hopefully no memory leaks any more!
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Welcome to MorrisCounter’s documentation!¶
morris_counter package¶
Submodules¶
morris_counter.morris_counter module¶
Module contents¶
Morris Counter
This package provides Morris Counter, which based on the following paper:
Robert Morris. Counting large numbers of events in small registers. Communications of the ACM, vol. 21, issue 10, pp. 840-842, 1978.
-
class
morris_counter.
MorrisCounter
(size=1000000, dtype='uint8', radix=2, seed=3282)¶ Bases:
object
-
count
(item)¶ Compute estimate count value of given item
- Parameters
item (str, int, float, and so on.) – interest item
- Returns
estimate_value
- Return type
int
Examples
>>> mc = MorrisCounter(radix=2, seed=3282) >>> _ = [mc.increment('ZOC') for _ in range(2000)] >>> mc.count('ZOC') 2048 >>> _ = [mc.increment(909) for _ in range(2000)] >>> mc.count(909) 2048 >>> _ = [mc.increment(0.0909) for _ in range(2000)] >>> mc.count(0.0909) 4096 >>> _ = [mc.increment({}) for _ in range(2000)] >>> mc.count({}) 2048
-
increment
(item)¶ Increment exponent of given item stochastically
- Parameters
item (str, int, float, and so on.) – interest item
Examples
>>> mc = MorrisCounter(radix=2, seed=3282) >>> _ = [mc.increment('ZOC') for _ in range(2000)] >>> mc.exponents[mc._get_idx('ZOC')] 11
-
-
morris_counter.
hashing
(item)¶


Atwood leads Lamar past Arlington Baptist 106-61
BEAUMONT, Texas (AP) - T.J. Atwood scored a career-high 25 points on 11-of-16 shooting and Lamar beat NCCAA-member Arlington Baptist 106-61 on Friday night.
Atwood was one of six players in double figures for the Cardinals (2-0).
Corey Nickerson scored 21, Ayaan Sohail and Davion Buster each scored 12, Ellis Jefferson, 11, and David Muoka scored 10. Lamar struggled from beyond 3-point range shooting just 2 of 18, however, they took advantage of their size and finished 47-of-91 shooting (52 overall.
The Patriots fought tough early and took a 19-18 lead on Sheldon Hodges’ layup with 10:23 before halftime. That led to a 21-3 Lamar run that included seven straight from Muoka on a three-point play, followed by a pair of free throws and a dunk. The Cardinals led 47-31 at halftime.
Lamar opened the season with 46-point win against Champion Christian on Tuesday night.
For more AP college basketball coverage: https://apnews.com/Collegebasketball and http://twitter.com/AP_Top25
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


SarahJane Morrone
Unafffiliated
Projects & Personalities EA to the Founder of DAB
BA in Political Economy, licensed in MBTI (Myers Briggs Type Indicator), Enneagram, Belbins, and Facet 5 & speak fluent Spanish and German
80919
I've been to the Capitol approximately a half dozen times for legislative hearings. I have donated to: Senator Lundeen, Rep Williams, Rep Snyder and Rep Geitner all based in El Paso County.
I have joined many facebook groups and been interested in a few issues, but I've never paid any dues or officially joined any organizations. I like to keep my options open and not be tied down by an affiliation with one group.
I helped a group of parents organize (not formally) for advocacy and took part in their speaker line up for two rallies at the Capitol. I helped make a logo and website for the parent group. I've posted videos in their private Facebook group as well as recruited parents to write blogs for the website.
I have been interested in CO state politics for the last 3 years. Redistricting is an important project in our state and it would be amazing to be part of such a significant process. In my opinion, house and senate district maps have always seemed like they were made by a five year old. There must be more logical ways to draw these lines. Working with a group of R's & D's to decide those lines for our state seems like it would be a really exciting project.
I am a human resources trainer in corporate situations. I believe I have the ideal skill set for this commission. I've lead seminars on conflict resolution, project management, interpersonal skills, appraisals, and I have certifications in four personality metrics. To sum it up 'this is my jam'. I have never been affiliated with a party and have always felt being in the middle would allow me to more objectively look at both sides of the spectrum. Especially right now, when the red and blue teams seem so extremely polarized, I think my skill set would be an effective bridge between the two. My fluency in Spanish would also be of benefit in certain localities of our state.
I have close friends that are both R's and D's, and I've been told on many occasions that I am particularly able to argue for one side - of most any issue - and yet listen clearly to both sides. I have been in many training situations that were especially delicate, (including in other cultures) and I helped participants work through very tough issues. Standing back and having an objective view is vital in my work.
Female


I am currently a software engineer in the Auto OEM group at Garmin International. I am passionate about software engineering, with a special interest in graphics programming, and I'm currently looking for interesting and challenging C++ heavy positions.
I've learned a great deal since I went back to school in 2014 and have kept my area of focus broad in order to build a solid foundation as a generalist programmer. Ever since graduation, I have been studying, interviewing, and working on projects in order to continually improve my computer science and software engineering skills. I have been programming mainly in C++ and Python but I can quickly pick up whatever the right tool for the job might be.


{% csrf_token %}
Add New Address
Address Type
First Name
Last Name
City
State
Zipcode
Country
Address
Address2


--- layout: custom_detail_page comments: false sharing: false footer: true sub_header_title: "Tile Titans" sub_header_date: "Summer 2013" sub_header_image: "/images/projects/tiletitans.png" ---
Tile Titans is an HTML5 game that I developed as a side project over the summer of 2013. It is a turn based board game that plays like a mix between chess and tic-tac-toe.
When developing Tile Titans I spent too much time developing non-gameplay features such as a store for purchasing additional tiles and a way to add and challenge friends. I should have only focussed on developing the the core game and a simple matchmaking system and then developed the other features after launching it on Kongregate.
I developed a V1 of the game as part of the UKEN games hackathon
The game runs on HTML5 inside the browser. Client side code leverages AngularJS, CoffeeScript and Less and is delivered to the client via Amazon's CloudFront CDN.
The servers run NodeJS with Socket.io as the communication layer and are hosted on Amazon EC2. The nodes hit a MongoDB hosted by MongoHQ for persistent storage and a Redis server (also EC2) for everything else.


presented by
EThe 'Elsevier PracticeUpdate Sign Up Promotion' has ended
The [Winner's Name] has been recognized as the winner.
Date winner was drawn:[mm/dd/yyyy]


Select PC4 setup to edit:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- CC
- PB
- PGM
Complete Privacy: This web application (page) does not track, store or dispatch any data entered here. Visits, appliance or any other interactions with this page are not tracked. If in doubt, feel free to check the source code.


Time left
10 days 05:59:36Click on #symbols to pick your number or click on generate icon to get random list
Simply choose 5 numbers from 1 to 69, than pick 1 Power Ball number between 1 and 26. The Powerball number is drawn in a different machine. If you match all 6 numbers, you’re a jackpot winner, plus USA Powerball has 8 prize levels in addition to the jackpot.
The jackpot kicks off at a guaranteed US$40 Million and builds from there. Rollover jackpots of US$100 Million happen several times a year. The record USA Powerball rollover jackpot is US$1.58 Billion, making it the richest weekly lottery in the world.
We will automatically credit your winnings to your LottoKings account. You can then choose to withdraw them or use them to buy more tickets, the choice is yours. For very large wins, a member of our Winners Support Team will get in touch to discuss your win and how you would like it to be paid.
| FAQs |
| Legal |
| Privacy Policy |
| Teams & Conditions |


Periodic Table
The Periodic table is a list of all the known chemical elements. Currently, there are 118 different elements in the Periodic table. Elements are the main building blocks of all matter.
Chemical Symbols
Each element has a chemical symbol that contains one or two letters, which is a shortcut for describing that element. The chemical symbol for the element Hydrogen is H and the symbol for Yttrium is Y. The elements are listed in the Periodic table is order of increasing Atomic Number.


GITHUB and HTML Elements
This is the bold tag.
This is an anchor tag used to create links in HTML
this is the break tag used for paragraph breaks
- There are different heading tags that range from different font
sizes h1 through h6.
-
Changes the fonts to italics
Image tag. When adding an image put the url inside this tag.
Division tag
Ordered lists
Used when entering quotes
END


Create your professional resume for getting jobs and also upload them for companies that comes in Rustamji Institute of Technology!!!
Create your Resumewe provide you guys a platform where you can create as well as upload your resume and also your resume will be direcly dilivered to those companies which comes in RJIT for placements!!
Get Started!Explore our database of over RJIT'S applicants. Pinpoint top performing candidates and reach out to them. Profile your ideal candidate and you'll be notified when they become available. You will save a lot of time on hiring!!
Post jobs Now!Training and Placement cell of RJIT!
094251 16486


Module: Sunspot::Rails::Searchable
- Defined in:
- sunspot_rails/lib/sunspot/rails/searchable.rb
Overview
This module adds Sunspot functionality to ActiveRecord models. As well as providing class and instance methods, it optionally adds lifecycle hooks to automatically add and remove models from the Solr index as they are created and destroyed.
Defined Under Namespace
Modules: ActsAsMethods, ClassMethods, InstanceMethods
Class Method Summary (collapse)
-
+ (Object) included(base)
:nodoc:.
Class Method Details
+ (Object) included(base)
:nodoc:
11 12 13 14 15 |
# File 'sunspot_rails/lib/sunspot/rails/searchable.rb', line 11 def included(base) #:nodoc: base.module_eval do extend(ActsAsMethods) end end |


My strengths are I'm natrually Curious and Observant.
Generally energetic and Enthusiastic.
An excellent communicator.
Know how to relax and have fun.
My limitations are I find it difficult to focus, I tend to over think things.
Poor practicle skills. Can get stressed easily.
More indepentdently focused when it comes to projects,
and ideas. Putting too much of the role on mysel and not others.
* Based on the above description, a commitment to how you will manage
your workload in this programme. This should include - an explanation
of how you will manage yourself to work productively and safely with
other learners, facilitators and industry/community representatives.
I will be commited and soley focused each and everyday to complete these tasks.
I will do this by getting up earlier and going to sleep earier. Make sure I am getting enough sleep
and also making sure I get out and exercise everyday as well. I shouldn't be cooped up inside who the whole
week,
but make sure that there is a good balance of working and leisure. I should aim to do around 8 total hours of
work,
research and eperience. Applying these goal to working with others and facilitators will help things go
smoothly.
I should also aim to communicate with others if I am having any trouble. I should reach out, otherwise I may
fall behind.
* A commitment as to how and where you will seek help in a timely way.
Each week Monday at around midday, I will meet up with Joseph and tell him abouts my concerns or issues I'm
having with any of he learning.
Else I will look to the slack channel as theyre is plenty of help there.
* A description of what you expect from the facilitation team.
I just expect them to be thorough in what they expect of us each week in terms of work, and
how to communicate to them any struggles I might have.


| Package | Description |
|---|---|
| net.floodlightcontroller.core | |
| net.floodlightcontroller.packetstreamer.thrift |
| Class and Description |
|---|
| PacketStreamer.Client |
| Class and Description |
|---|
| Message |
| Message._Fields
The set of fields this struct contains, along with convenience methods for finding and manipulating them.
|
| OFMessageType
OFMessage type
|
| Packet |
| Packet._Fields
The set of fields this struct contains, along with convenience methods for finding and manipulating them.
|
| PacketStreamer.AsyncClient |
| PacketStreamer.AsyncClient.getPackets_call |
| PacketStreamer.AsyncClient.pushMessageAsync_call |
| PacketStreamer.AsyncClient.pushMessageSync_call |
| PacketStreamer.AsyncClient.terminateSession_call |
| PacketStreamer.AsyncIface |
| PacketStreamer.Client |
| PacketStreamer.getPackets_args |
| PacketStreamer.getPackets_args._Fields
The set of fields this struct contains, along with convenience methods for finding and manipulating them.
|
| PacketStreamer.getPackets_result |
| PacketStreamer.getPackets_result._Fields
The set of fields this struct contains, along with convenience methods for finding and manipulating them.
|
| PacketStreamer.Iface
Packetstreamer API
|
| PacketStreamer.pushMessageAsync_args |
| PacketStreamer.pushMessageAsync_args._Fields
The set of fields this struct contains, along with convenience methods for finding and manipulating them.
|
| PacketStreamer.pushMessageSync_args |
| PacketStreamer.pushMessageSync_args._Fields
The set of fields this struct contains, along with convenience methods for finding and manipulating them.
|
| PacketStreamer.pushMessageSync_result |
| PacketStreamer.pushMessageSync_result._Fields
The set of fields this struct contains, along with convenience methods for finding and manipulating them.
|
| PacketStreamer.terminateSession_args |
| PacketStreamer.terminateSession_args._Fields
The set of fields this struct contains, along with convenience methods for finding and manipulating them.
|
| PacketStreamer.terminateSession_result |
| PacketStreamer.terminateSession_result._Fields
The set of fields this struct contains, along with convenience methods for finding and manipulating them.
|
| SwitchPortTuple
A struct that defines switch port tuple
|
| SwitchPortTuple._Fields
The set of fields this struct contains, along with convenience methods for finding and manipulating them.
|


Hello,
I am trying to use Socket Interfacer with emonPi but I can't get is to work properly. I did find some information in the following forum thread : http://openenergymonitor.org/emon/node/11448. I did some progress but I am not there yet.
First, I added 3 imports missing from EmonHubSocketInterfacer.py :
import socket import select import Cargo
and I also modified call to new_cargo with Cargo.new_cargo in read function.
I also added the following to my emonhub.conf :
[[MySocket]] # Socket Interfacer Type = EmonHubSocketInterfacer [[[init_settings]]] port_nb = 20100 [[[runtimesettings]]] pubchannels = ToEmonCMS,
Socket interfacer is now properly started. I got this in the logs.
So far so good.
I did a Python script which is opening the connection to the socket and sends data over every 5 seconds or so. But in EmonHubSocketInterfacer.py, it seems that connection is closed after something has been read :
def read(self): ... # If data received, add it to socket RX buffer if self._socket in ready_to_read: # Accept connection conn, addr = self._socket.accept() # Read data self._sock_rx_buf = self._sock_rx_buf + conn.recv(1024) # Close connection conn.close() ...
Is there a reason for that ? I mean, should the client be responsible for opening and closing the connection ? What I was planning to do is open a persistent connection to avoid opening a new socket every 5 seconds. Is that possible ?
Thanks.
JS
Re: Use Socket Interfacer on EmonPi
Hi JS
Good to see the socket interfacer getting some exercise, I think it's a much under used feature.
I'm not an expert in this area, but wouldn't keeping the connection open block any other devices? Is there a reason not to close the connection? or rather is there a major benefit to keeping it open? I'm not particularly opposed to the concept, other than I think the original idea was to have a "rfm2pi type listener" for "depositing" any local and network packets. in the past I have had several scripts posting to a single port on my own set-up.
Paul
Re: Use Socket Interfacer on EmonPi
Hello Paul,
There should be no issue keeping the connection opened. And even though, if the client opens the socket, it should be responsible for closing it : it knows when it has nothing left to send !
I don't think it would prevent any other connection from another device. I'll test that. Also, If the server is forcibly closing the connection, client may have been in the process of sending data. So data is lost. I think client side connection will remain for 5 minutes in "CLOSE_WAIT" which can be a problem if you open a socket every second : you'll get 300 CLOSE_WAIT connection. But I'll check that also.
So, if you post data fast enough, I tend to think that the overhead of opening a socket each time is worse that keeping a connection alive. But to be honest... I don't know what "fast enough" would be.
JS
Re: Use Socket Interfacer on EmonPi
I look forward to the results of your testing.
That code was inherited from oemgateway and was originally written two and a half years ago, I'm not opposed to changing it but I would like to be 110% sure it's the right thing to do before I commit, ideally yes the client should know when it's finished and sign off, but where does that leave emonhub if it doesn't, emonhub must be able to continue functioning correctly even if a client crashes, stalls or just isn't written well enough to close the connection.
I would need to do some swatting up to make the call myself so hopefully some more knowledgable devs will chip in here. My main concerns are that emonhub is resilient to client error and that the connection is non-blocking for other nodes to post to the same port.
Otherwise maybe an optional setting to make it an exclusive "kept open" connection could be introduced ?
Paul
Re: Use Socket Interfacer on EmonPi
Hello again,
I modified my script so that I open a new socket each time I need to send data, and it works well.
I checked the TCP connection is properly closed on both side, even though the client is not closing the connection. On emonpi side, the connection is cleared almost right away. On my sensor side (I am testing this with an Arduino Yùn), I have some socket in "TIME_WAIT" : ~55 if I post every second, no more than ~20 if I am posting every 3 seconds.
If I also close the socket in my script, I get the very same behavior.
I also tried adding a conn.shutdown in EmonHubSocketInterfacer.py but no change.
Anyway, I guess unless you want to post data at a very high rate (I would say more that 1/sec), opening and closing the socket each time seems ok. So having a persistent connection may not be that usefull in the end... Sorry for that. And in addition, forget I said it should not be a problem... it may require quite a bit of work to make it accept more that 1 connection at a time.
Finally, I got it to work properly just by adding the missing imports into EmonHubSocketInterfacer.py, that is
changing
to
and by opening (and closing) the socket at each posting.
Here is my test script (run on my Yùn)
Re: Use Socket Interfacer on EmonPi
I'm glad you found it works ok for you now. I was just reading up on it myself and it seems to be very much the "standard" way going by the general examples. It was still useful for me to better understand the code, thanks for testing and sharing your findings too.
Paul
Re: Use Socket Interfacer on EmonPi
I've submitted a pull request for the missing imports to the OEM "emon-pi" emonhub repo, (this isn't an issue in the original emonhub). Could you please confirm the edits as I haven't tested them personally.
Added missing imports
Paul
Re: Use Socket Interfacer on EmonPi
Pull request has been merged, please could you confirm this works for you https://github.com/openenergymonitor/emonhub/commit/2a45af573f0a381bf50942a8c5552359455050d3
Thanks.
Re: Use Socket Interfacer on EmonPi
Hello,
I just updated my emonpi, and it works for me !
Thank you for your help.
JS.
Re: Use Socket Interfacer on EmonPi
This is a great solution. I spent some time today to test it with a RPi 2 and the 22 dec 2015 image. You can configure emoncms, mqtt, openhab (what else?) without connecting anything physically to your serial port.
With a bit of imagination, you can create mathematical functions and display them in your feeds...
Good work, thanks
Walter
Re: Use Socket Interfacer on EmonPi
Paul,
Can you point folks to the documentation for the socket interface?
I'm assuming if you are using the original emonhub, i.e. not the one on the emonPi then you don't need the pubchannels line in [[[runtimesettings]]]
Thanks
Simon
Re: Use Socket Interfacer on EmonPi
If anyone is interested in doing this from an esp8266 system, then see the attached file. I couldn't find a decent example or any instructions as to how to do this - and yes I searched.....
These are the instructions for using the code that I put at the top of the file
// Replace the ssid and password for your wifi router
// Also replace the ip address of your local emoncms server
// and if necessary the port number you want to use.
// You can also set the node id , it's set to 15 in this example
// you may need to use 'sudo ufw allow 20100/tcp' to allow the packets through the firewall
// Tested sending to a PiB with Jessie Lite and emoncms 9.3 and the original emonhub installed through the Raspberry Pi
// installation instructions at https://github.com/emoncms/emoncms/tree/master/docs/RaspberryPi
// /etc/emonhub/emonhub.conf needs the following section
/*
# This interfacer manages sockets
[[Socket]]
Type = EmonHubSocketInterfacer
[[[init_settings]]]
port_nb = 20100
[[[runtimesettings]]]
pubchannels = emonCMS, emonCMSlocal
In my case emonCMS refers to the .org copy and emonCMSlocal refers to the local emoncms.
Change these names to match what you have called your reporters.
*/
I'm sure the code could be improved but it works for me (it's a cut down version of the full code I'm using to manage my boiler and heat bank on an esp03)
Re: Use Socket Interfacer on EmonPi
yes documentation is even thinner than usual on this (socketinterfacers) as they never really took off, they currently only tend to only get used in custom scenario's and each user has thier own way of doing things and specific settings or code.
I will try and write something up but finding the time is not easy, I really must get emonhub v2.0 off the ground too.
I will at least get a few notes together with a range of links, the other trouble being the various past versions and settings may not all apply now, for example Simon yes the pubsub channels are only required on emonPi (as you've discovered) .
A note on the channels (not specific to socketinterfacers though) if the emonpi variant has the same intended operation as the experimental branch it's based on then you should only need the one "emoncms" channel and both your local and remote emoncms's could subscribe to that one channel, this means you do not need to list every target in every interfacer. The only time you would "need" to do it the way you have is if say, you had 5 input interfacers and only 4 of those went to one emoncms and 5 to the other for example.
The "experimental" branch also has default channel settings for each interfacer so only the more exotic set-ups and braver users had to tackle setting the channels, meaning the settings will not even be visible on a totally default setup.
Again I need to do some investigating into what did get carried over to the emonpi variant as the "experimental" socket interfacer has provision to use an apikey for use outside the LAN and also can accept a supplied timestamp in the payload rather than apply one on arrival, this last feature is very useful if trying to post a list of data, a script can loop through back-up data or downloaded data etc.
Paul
Re: Use Socket Interfacer on EmonPi
Hi Paul,
I actually left the pubchannels in but it doesn't seem to affect anything which is good. I'm pretty sure the data gets to both the .org version and my local version.
I'm not sure I'm even going to use this as I already have some code in my full version of the esp s/w for using the http interface.
As for whether folks would use this from outside the network I'm not sure, I wouldn't as the esp controller is visible from outside and I can see the emoncms data from the .org version which is a duplicate.
I guess for V 2.0 what you'd need to do would be to collect requirements from the forum. I wonder if you asked the question whether you needed both the socket interface or the http interface then they would say only one is needed. But then it would have to be http into emonhub not into emoncms.
One thought on the documentation, it might be a good idea to start with to add to the emonhub/emonhub space on github a note about the history and different versions, this would at least clear up any confusion. Took me a while to realise that the emonPi version was different, even though I'd probably read the posts during the development.
Anyway, hope the file I posted might help other folks get the answer more quickly. It was a good exercise for me to work out how things worked.
Simon
Re: Use Socket Interfacer on EmonPi
Ahh yes, I have just come back to say about the channels as I have just posted on your other thread and the penny dropped you are using v1.2 emonhub.
The big advantage of using a socket interfacer to post to emonhub locally and then emonhub post to emoncms (local or remote) is each of the devices only needs configuring to find emonhub and then you can post to as many places as you like and change it freely without having to upload a new sketch. Plus if using v1.2 and a remote instance of emoncms the data is buffered in emonhub where as directly send data will be lost if there is a server or network issue beyond the lan.
Paul
Re: Use Socket Interfacer on EmonPi
Agree about moving everything through emonhub, it certainly makes things easier than replicating the posts for every system you want the data to reach as well as the buffering.
Simon


Please use a managed service such as CloudSQL or Amazon Aurora serverless mode with version >=5.7. An option to use Bitnamis chart in test environments will be available and automatically installed if chosen.
{{ forms.radio_toggle(form.install_sql) }}
{{ forms.text(form.sql_namespace) }}
{{ forms.text(form.sql_url) }}
{{ forms.text(form.sql_user) }}
{{ forms.password(form.sql_password) }}
{{ forms.password(form.sql_password_confirmation) }}
{{ forms.text(form.sql_database) }}


Modern apps interact with a lot of different APIs. Netable makes that easier by providing a simple interface for using those APIs to drive high quality iOS and MacOS apps, built on Swift Codable
, while still supporting non-standard and unusual APIs when need be.
Features
Netable’s core philosophy is to ensure that developers can write simple code for simple APIS, while providing various options for wrangling strange or non-standard APIs.
- Every request is an independent type
- Facilitates breaking up requests into separate files, avoiding monolithic networking classes
Codable
-basedResult
return types- Easy interfacing between model and controller layers
- Reduces need for wrapper types
- Can automatically convert request responses into usable objects
- Easily integrates with existing logging libraries, or logs to
debugPrint
by default - Comprehensive error types make handling expected and unexpected errors painless
Usage
Standard Usage
Make a new instance of Netable
, and pass in your base URL:
let netable = Netable(baseURL: URL(string: "https://api.thecatapi.com/v1/")!)
Extend Request
struct CatImage: Decodable {
let id: String
let url: String
}
struct GetCatImages: Request {
typealias Parameters = [String: String]
typealias RawResource = [CatImage]
public var method: HTTPMethod { return .get }
public var path: String {
return "images/search"
}
public var parameters: [String: String] {
return ["mime_type": "jpg,png", "limit": "2"]
}
}
Make your request and handle the result:
netable.request(GetCatImages()) { result in
switch result {
case .success(let catImages):
if let firstCat = catImages.first,
let url = URL(string: firstCat.url),
let imageData = try? Data(contentsOf: url) {
self.catsImageView1.image = UIImage(data: imageData)
}
if let lastCat = catImages.last,
let url = URL(string: lastCat.url),
let imageData = try? Data(contentsOf: url) {
self.catsImageView2.image = UIImage(data: imageData)
}
case .failure(let error):
let alert = UIAlertController(
title: "Uh oh!",
message: "Get cats request failed with error: \(error)",
preferredStyle: .alert
)
alert.addAction(UIAlertAction(title: "OK", style: .cancel))
self.present(alert, animated: true, completion: nil)
}
}
Resource Extraction
Have your request object handle extracting a usable object from the raw resource
struct CatImage: Decodable {
let id: String
let url: String
}
struct GetCatImageURL: Request {
typealias Parameters = [String: String]
typealias RawResource = [CatImage]
typealias FinalResource = URL
// ...
func finalize(raw: RawResource) -> Result<FinalResource, NetableError> {
guard let catImage = raw.first else {
return .failure(NetableError.resourceExtractionError("The CatImage array is empty"))
}
guard let url = URL(string: catImage.url) else {
return .failure(NetableError.resourceExtractionError("Could not build URL from CatImage url string"))
}
return .success(url)
}
}
Leave your network code to deal with the important stuff
netable.request(GetCatImageURL()) { result in
switch result {
case .success(let catUrl):
guard let imageData = try? Data(contentsOf: catUrl) else {
return
}
self.imageView.image = UIImage(data: imageData)
case .failure(let error):
// ...
}
}
Full Documentation
In-depth documentation is provided through Jazzy.
Example
To run the example project, clone the repo, and run pod install
from inside the Example directory first.
Requirements
- iOS 10.0+
- MacOS 10.15+
- Xcode 11.0+
Installation
Netable is available through Swift Package Manager. To install it, follow these steps:
- In Xcode, click File, then Swift Package Manager, then Add Package Dependency
- Choose your project
- Enter this URL in the search bar
https://github.com/steamclock/netable.git
Netable is also available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'Netable'
Then run pod install
.
License
Netable is available under the MIT license. See the License.md for more info.


| Interface | Description |
|---|---|
| Channel |
A Channel provides an abstraction over the transport layer that is designed to be consumed
by stub implementations.
|
| ClientInterceptor |
Interface for intercepting outgoing calls before they are dispatched by a
Channel . |
| Marshaller<T> |
A typed abstraction over message parsing and serialization.
|
| Metadata.AsciiMarshaller<T> |
Marshaller for metadata values that are serialized into ASCII strings that contain only
printable characters and space.
|
| Metadata.BinaryMarshaller<T> |
Marshaller for metadata values that are serialized into raw binary.
|
| Server |
Server for listening for and dispatching incoming calls.
|
| ServerCallHandler<RequestT,ResponseT> |
Interface to initiate processing of incoming remote calls.
|
| ServerInterceptor |
Interface for intercepting incoming calls before that are dispatched by
ServerCallHandler . |
| SharedResourceHolder.Resource<T> |
Defines a resource, and the way to create and destroy instances of it.
|
| Class | Description |
|---|---|
| AbstractChannelBuilder<BuilderT extends AbstractChannelBuilder<BuilderT>> |
The base class for channel builders.
|
| AbstractChannelBuilder.ChannelEssentials |
The essentials required for creating a channel.
|
| AbstractServerBuilder<BuilderT extends AbstractServerBuilder<BuilderT>> |
The base class for server builders.
|
| Call<RequestT,ResponseT> |
An instance of a call to to a remote method.
|
| Call.Listener<T> |
Callbacks for receiving metadata, response messages and completion status from the server.
|
| ChannelImpl |
A communication channel for making outgoing RPCs.
|
| ClientInterceptors |
Utility methods for working with
ClientInterceptor s |
| ClientInterceptors.ForwardingCall<ReqT,RespT> | |
| ClientInterceptors.ForwardingListener<T> |
A
Call.Listener which forwards all of its methods to another
Call.Listener . |
| DeferredInputStream<T> |
Extension to
InputStream to allow for deferred production of data. |
| HandlerRegistry |
Registry of services and their methods used by servers to dispatching incoming calls.
|
| HandlerRegistry.Method |
A method belonging to a service to be exposed to remote callers.
|
| Metadata |
Provides access to read and write metadata values to be exchanged during a call.
|
| Metadata.Headers |
Concrete instance for metadata attached to the start of a call.
|
| Metadata.Key<T> |
Key for metadata entries.
|
| Metadata.Trailers |
Concrete instance for metadata attached to the end of the call.
|
| MethodDescriptor<RequestT,ResponseT> |
Description of a remote method used by
Channel to initiate a call. |
| MutableHandlerRegistry |
Mutable implementation of
HandlerRegistry . |
| MutableHandlerRegistryImpl |
Default implementation of
MutableHandlerRegistry . |
| SerializingExecutor |
Executor ensuring that all
Runnable tasks submitted are executed in order
using the provided Executor , and serially such that no two will ever be
running at the same time. |
| ServerCall<ResponseT> |
Encapsulates a single call received from a remote client.
|
| ServerCall.Listener<RequestT> |
Callbacks for consuming incoming RPC messages.
|
| ServerImpl |
Default implementation of
Server , for creation by transports. |
| ServerInterceptors |
Utility methods for working with
ServerInterceptor s. |
| ServerInterceptors.ForwardingListener<RespT> |
Utility base class for decorating
ServerCall.Listener instances. |
| ServerInterceptors.ForwardingServerCall<RespT> |
Utility base class for decorating
ServerCall instances. |
| ServerMethodDefinition<RequestT,ResponseT> |
Definition of a method bound by a
HandlerRegistry and exposed
by a Server . |
| ServerServiceDefinition |
Definition of a service to be exposed via a Server.
|
| ServerServiceDefinition.Builder |
Builder for constructing Service instances.
|
| SharedResourceHolder |
A holder for shared resource singletons.
|
| Status |
Defines the status of an operation by providing a standard
Status.Code in conjunction with an
optional descriptive message. |
| Enum | Description |
|---|---|
| MethodType |
The call type of a method.
|
| Status.Code |
The set of canonical status codes.
|
| Exception | Description |
|---|---|
| Status.OperationException |
Exception thrown by implementations while managing an operation.
|
| Status.OperationRuntimeException |
Runtime exception thrown by implementations while managing an operation.
|


Welcome to the Archiva user's guide. Getting to know and use Archiva is very simple - please select one of the following documents to learn how to use Archiva quickly.