Main Content
The first paragraph
The second paragraph
| Things | |||||
|---|---|---|---|---|---|
| Dog | Cat | ||||
| Properties | Fur | Diet | Hobbies | ||
| Summary | Neither animal is reliable |
The last quiz!
The first paragraph
The second paragraph
| Things | |||||
|---|---|---|---|---|---|
| Dog | Cat | ||||
| Properties | Fur | Diet | Hobbies | ||
| Summary | Neither animal is reliable |


Kristine Disney
Democrat
I am semi-retired. For the past 3.5 years I have been a yoga instructor. I designed closets for Closet Factory for 9 months during 2015. Prior to that I was a Sales Associate at Decorative Materials in Denver for 8 years. (Interior design industry, tile showroom)
I have a BA in Communications I have a Masters in Human Relations I am a 200-Hour Certified Yoga Instructor
80033-4450
I have donated to Hickenlooper for Senate, Biden/Harris, Hillary Clinton 2016, Obama for President 2008 and 2012, Perlmutter, Fair Fight and the Senate Races in GA, Jaime Harrison, Pete Buttigieg, Jerry DiTullio Jeffco Treasurer, Val Beck Wheat Ridge City Council
I serve on the Wheat Ridge CO Planning Commission, was appointed to the Wheat Ridge Neighborhood Revitalization Strategy committee , was the President of the board for Wheat Ridge Local Works, worked on several ballot measures in Wheat Ridge, CO.
As a member of Localworks I worked with committees to promote the city of Wheat Ridge as a vibrant place to live. That work began in 2012 and ended in 2018. As a member of the Neighborhood Revitalization committee we had to meet with members of the community and collect ideas from all factions and present our findings to city staff and council as to what direction the citizens wanted Wheat Ridge to become. I have always, since high school, been involved in collaborative efforts to bring about change or improve something. Usually as the leader of the group. (Show up, speak up, and listen. Do what you say you’re going to do. That’s me). I was Student Council President in High School and Junior Class President at Fort Hays St University.
Because I believe that districting should be fairly divided so that both parties have representation. Districts should not favor one party over another.
I have Steven Covey training, seek first to understand and then be understood. I don’t desire to be in charge of anything or push any agenda. I have led lots of groups as a facilitator and can help groups stay focused and on track. I can teach people how to stand on their head, so I can also explain a process or concept and help people overcome fear And I can lead a group in breathing exercises to help calm everyone down!
I was a technical writer for 7 years. I had to take an engineer’s explanation for how software worked and translate it so an end user would know what to do. I have the ability from that experience to take a high-level view to any situation. I also learned that skill in graduate school. I also worked in instructional design prior to being a technical writer, so from that I learned to ask a lot of questions.
Female


Create an AngularJS directive that includes a text input element. Any text the user enters should be analyzed and a response output onto the page. The input should accept simple equations, such as "2 + 3 / 2" and then output the appropriate answer, paying attention to the order of operations (multiplication or division left to right, then addition or subtraction left to right). +, -, /, *, and optional spaces are the only symbols that need to be accepted, and you cannot use the eval function or anything similar. If the input is not valid, the output text should change to indicate this to the user. Include a file called explanation.md that describes how your code works and explains your reasoning. Inline comments and tests are also encouraged. All code should be written by you, so do not use an Angular Seed project.


Question
Given a string S and a string T, count the number of distinct subsequences of T in S.
A subsequence of a string is a new string which is formed from the original string by deleting some (can be none) of the characters without disturbing the relative positions of the remaining characters. (ie, "ACE"
is a subsequence of "ABCDE"
while "AEC"
is not).
Here is an example:
S = "rabbbit"
, T = "rabbit"
Return 3
.
Stats
| Frequency | 2 |
| Difficulty | 4 |
| Adjusted Difficulty | 5 |
| Time to use | -------- |
Ratings/Color = 1(white) 2(lime) 3(yellow) 4/5(red)
Analysis
This is an extremely difficult DP question, probably the most difficult DP on leetcode.
Normally, string matching question is best solved with DP, so is this question. The problem is how to construct the Bellman equation (also known as dynamic programming equation).
Updated on June 24th, I listed down one example using S = “abab” and T = “ab”.
| {} | a | b | |
|---|---|---|---|
| {} | 1 | 0 | 0 |
| a | 1 | 1 | 0 |
| b | 1 | 1 | 1 |
| a | 1 | 2 | 1 |
| b | 1 | 2 | 3 |
Solution
It took me a really long time to understand, until I read this blog.
Let W(i, j) stand for the number of subsequences of S(0, i) in T(0, j). If S.charAt(i) == T.charAt(j), W(i, j) = W(i-1, j-1) + W(i-1,j); Otherwise, W(i, j) = W(i-1,j).
Two code are posted below, realizing this solution with 2D and 1D array respectively (first code is better).
Code
First, DP code
public int numDistinct(String S, String T) {
int m = S.length(), n = T.length();
int[][] dp = new int[m + 1][n + 1];
for (int i = 0; i <= m; i ++) {
for (int j = 0; j <= n; j ++) {
if (j == 0) dp[i][j] = 1;
else if (i == 0) dp[i][j] = 0;
else if (S.charAt(i-1) == T.charAt(j-1))
dp[i][j] = dp[i-1][j-1] + dp[i-1][j];
else
dp[i][j] = dp[i-1][j];
}
}
return dp[m][n];
}
Second, same solution but reduced 2-D array to 1-D.
Code readability is reduced, however.
public int numDistinct(String S, String T) {
int m = S.length(), n = T.length();
int[] dp = new int[n + 1];
for (int i = 0; i <= m; i ++) {
for (int j = n; j >= 0; j --) {
if (j == 0)
dp[j] = 1;
else if (i == 0)
dp[j] = 0;
else if (S.charAt(i-1) == T.charAt(j-1))
dp[j] = dp[j-1] + dp[j];
}
}
return dp[n];
}


Earlier this year I've set up a 9.6kW Solar PV system on my property here in New Zealand. The panels are mounted on four dual axis towers away from the house. The electrical part of the installation appears to be somewhat unique, and since commissioning it I've been looking at systems and possibilities for being able to monitor what's going on with it. From the reading I've done on this site I think this extremely adaptable system could be made to work for me. I'll try and explain the setup here, and what I would like to achieve, and then hopefully someone can confirm I'm heading in the right direction - or not.
The grid tie solar PV is essentially a Type 2 setup, but it's split into two separate systems and connected to two phases. The two five KW inverters are located in a pool pump shed about 25 meters away on one side of the house. The AC from the inverters are connected to a sub board in the pool shed where there are loads on both phases as well (pool pump, spa, heat-pump etc).
The main feeds for the pump shed/PV are connected in the utility meter board which is located on a separate garage about 5 meters away on the opposite side of the house. Also from here, both phases are feed into the house distribution board. The sub board that is also in the garage is fed from the distribution board from inside the house.
Essentially what I would like to monitor is:
1) The real power being generated by the PV on both phases
2) The real power being imported/exported on both phases
3) The real power being consumed on both phases
4) Separately, the real power being consumed by the pool heat pump
5) Not so important, but if it could be incorporated, two temp readings (One for ambient temp in the pool shed and one for the pool water temp).
I think the way to do it will be to have two emontx units in the pump shed (one for each phase). I can connect voltage signals from both phases. A CT from both emontx units on each inverter AC line, and another CT on the Heat-pump line on the emontx of the same phase. This would give me the PV generated from each inverter, and the consumption from the pool heat pump. If I then have two more emontx units in the garage with a CT from each on both utility phase lines coming in. (Again I can connect voltage signals from both phases from the garage sub board) This would give me the import/export on both phases. I'm hoping then that the consumption on both phases (including the pool heat pump) could simply be calculated by adding generated to imported/exported?
It would be really cool if I could set up two emonGLCD's like the one in the video with the green and red LEDs, one for each phase.
Hopefully if someone in the know can be bothered wading through all this reading (and hopefully it makes some sort of sense), and can offer a steer in the right direction it would be greatly appreciated.
Thanks very much - great site.
Mike L.
Re: Novice starting out
I have waded through - I think I roughly understand, and yes I think it's do-able. (I'd need to draw out your distribution in a single-line diagram and have you confirm it to be totally happy.)
Here's my breakdown: 4 emonTx's, two measuring generation and local loads; and two measuring nett import/export. One GLCD per phase.
Because all 4 emonTx's will almost certainly use the same radio band and channel channel, there would be a small chance of them blocking each other, the effect would be you lose the occasional reading. The RF protocol tags each message with its source, so the displays know where the measurements relate to.
Just one question: I assume you have a two- or three-phase supplier's energy meter, our understanding of multi-phase meters is the energy is summed across all the phases, so generation on one phase can be balanced (as far as your bill is concerned) by a load on another phase. If that's the case, would it make sense, provided there's enough screen space to display what you want, to know the nett power across both phases, as both GLCDs can and will receive all four emonTx's. The GLCD software will need customising to sort that out. If you choose the rather smart display with energy icons, the processor in the GLCD is tight on memory and you might find that you are limited in what extra you can squeeze in.
Re: Novice starting out
Robert, thanks so much for taking a look at this.
I've attached a schematic showing how things are connected - hope that makes sense.
Would it be necessary to measure the loads or could the consumption be calculated (generated + imported/exported)? It could be done with an extra CT on all four emonTx's, so it wouldn't be an issue if it would be better. I would then have to add the load from both locations to get the total load on each phase?
Regarding your question on metering: Nothing fancy here, just two separate single phase import/export meters. A condition on application was that the PV system had to be split to export on both phases wired to the property for balancing purposes. The silly part is that if I'm running the pool heat pump (3.2kW single phase) I can still be importing on that phase, and at the same time exporting 3kW + on the other. They bill and reimburse on the sums of both the individual meter readings. As some very different condition's occur between the two phases I would like to have a separate display for both, rather than just having a nett of the two.
I didn't mention it in the first post but I was intending to run an emonBase as well so I could tinker with the emoncms. Would it be feasible to do it this way and run the GLCD's from the base?
Thanks again............Mike L.
Re: Novice starting out
Dealing with the simple part first, although it's not all that clear from the general illustrations, both the GLCDs and the base will receive the same information by radio from the emonTx's. The base will receive server time and transmit it to the GLCDs that will enable a display of time-of-day, and allow things like daily totals to be reset.
Unfortunately, I have had commitments today and have more tomorrow, I'll try to find time after that to take a serious look at your scheme.
Basically, for accuracy what you don't want to be doing is calculating a value that is the difference between two nearly equal quantities, so that will have a bearing on where you measure.
[Edit]
This appears to be the simplest way of doing it. You need to obtain the total consumed as the sum of generated + imported powers. It means there may be, unless you are very careful with the calibration, quite large errors in calculating it when it is small and there is significant generation (that is of course mostly exported).
If you don't like that, you can add 2 c.t's on the remaining loads of the pool shed board feeding into emonTx's 1 & 2, and a further 2 on the feed into the house distribution board feeding into emonTx's 3 & 4. Power consumed would then be the sum of a number of small(ish) positive powers, which stands a chance of being more accurate.
Re: Novice starting out
Robert, that is great what you have done for me here - greatly appreciated. I think I will go with your second suggestion. I didn't realise at the time that is wasn't going to be that hard to actually measure the loads. And as the heat pump is the only load on that phase at the Pool shed sub board, for the cost of three more CT's it would be silly not to do it this way.
Well I better get some hardware and get busy.
Thanks again.
Re: Novice starting out
Like this then?
Re: Novice starting out
If each emonTx could measure real power on 4 channels simultaneously (something I've been looking at recently), then only two of them would be required. With the V3 emonTx platform, the fourth CT channel would need to supplied on stripboard or similar, but that's easy enough to do. Code to follow shortly ...
Re: Novice starting out
Robin:
But the c.t's would need very long cables - it's 30 m plus the house from one location to the other. By the time the cable is bought and installed, another emonTx and radio is possibly cheaper and certainly easier.
Or were you thinking of measuring two phases in one emonTx - which would imply a second voltage input as well, so all 6 analogue inputs would be in use, plus 2 temperature measurements on one? I think that would really stretch the processor.
(Sorry Mike, if we've lost you there! - The emonTx is designed for single phase installations, so it has only one voltage input. But the ADC has 6 multiplexed inputs, 1 voltage and 3 current are used, leaving two unequipped spares coming out to ports on the pcb. By adding two lots of interface circuit externally, these can be used, which would give you 1 emonTx in each location.)
Re: Novice starting out
That 's fine Robert. So far I understand all that. As I've only had limited tinkering with electronics, I think your version 3 of the schematic will be the way to go for me. The only disadvantage being the number of transmitted signals. At least I can use hardware that already exists without modification, and firmware that will require a small tweak as opposed to a complete rewrite.
Thanks all the same Robin. Appreciate the input.
Re: Novice starting out
OK Mike, I'd not appreciated the distance aspect. I've recently written some code which continuously monitors real power on four channels, and your project seemed a good opportunity to test it. It seems to work OK on the bench and will hopefully appear on Github soon for anyone who may be interested.
With appropriate care on the HV side, I see no reason why the functionality of emon TXs 1 & 2 (and, separately, 3 & 4) can't be combined. Is there any fundamental reason why voltage and current on different phases can't be sensed by one emonTx?
Re: Novice starting out
Is there any fundamental reason why voltage and current on different phases can't be sensed by one emonTx?
Not a fundamental one, but two practical ones - the signal conditioning interface must be added externally, and then there's the matter of processor load. If you're using emonLib and sampling the phases alternately, that's not a problem. If you are running the interrupt-driven code and sampling continuously, then the sample rate is going to suffer. OK, it's only one more than your 4+1, but it's still more - and don't forget the temperature measurement too.
Re: Novice starting out
With all six analogue inputs in operation and the ADC going flat out. the sampling rate would drop to 32 per 50 Hz mains cycle. My gut feeling is that this should be OK for this application.
Rather than having six pairs of reference dividers, each with its attendant 10 uF cap, this would seem an ideal opportunity to use the single buffered reference that I introduced for my Uno-based Mk2 router. A strip-board front end for all six channels should be easy enough to construct.
It would be important to ensure that the main processor has sufficient time to do all of its processing activities within the time that is available to it (i.e. 6 x 104 uS). Integer-based maths is much quicker, but FP maths would probably be OK. Time might be short at the moment when all the data is to be dispatched. Maybe it would be possible to process the data on some kind of rota basis, so that several channel's worth of infrequent data does not all have to be done at once.
Sounds an interesting project, I look forward to seeing how it develops.
Re: Novice starting out
Robin:
You're assuming Mike wants to go with your new software.
Mike:
The new software Robin mentions offers the advantage over the Github demonstration sketches and emonLib in that it measures the power continuously, whereas the latter, being originally intended for battery or mains operation, only takes a short sample of the voltage and current every 5 seconds (and we presume that sample is representative of the period).
Note: if you do add to the hardware, you won't be able to use the published sketches straight off - they will need to be customised.
By "buffered reference", Robin is referring to the input circuitry. If you look at Building Blocks, the input has to be biased mid-way up the input voltage range (1.65 V for a 3.3 V emonTx) and in the emonTx this is done with a simple voltage divider and capacitor. In the software, that offset is removed by a high pass filter, one per channel because due to resistor tolerances, the offsets are never the same. Robin's Mk2 input had a common bias source provided by an op-amp, which meant a single low-pass filter could be used to extract the bias value, which is very simply subtracted from each input signal to remove the offset (thus speeding up the maths!).
If you have confidence in your building skills, knocking up a 6-way front end (even if you do attach it to a partially complete emonTx) would be fine; but if you have reservations, maybe you will be better sticking to the emonTx kit (2-off) and when it's proven, add a 2-way front-end via the headers. If you have even bigger reservations, it is four emonTx kits.
(Personally, I'd go for 2 emonTx's with a 2-channel front end: 1 extra current & 1 extra voltage.)
Re: Novice starting out
Robin: You're assuming Mike wants to go with your new software.
Robert: No, I'm just making Mike aware that an alternative solution for his project may be available.
Mike: I'll send you a PM.
Re: Novice starting out
Mike, here is my suggested solution for your project. It requires two Arduino Unos, each of which deals with two voltage signals (one on each phase) and four CTs, two on each phase. The signal-conditioning circuits for all six channels are mounted on a single front-end board along with a single buffered-reference, diagram attached. The Uno operates over a 5V range rather than the 3.3V range that an emonTx uses, hence the various resistor values may need to be adjusted for optimal performance.
Each Arduino will also require an RF adapter. The one that I built yesterday follows the design on the BB page. The RFM12B chip that I used has had a difficult history because some months ago I unhelpfully soldered it onto an emonTx upside down. Having separated these components by brute force, both have now proved to be entirely serviceable. These days, electronic components can take an awful lot of abuse, much like cartoon characters that keep coming back for more! The attached photos show:
i) the Uno with its front-end and RF adapters;
ii) My voltage source, a twin secondary '9V' transformer;
iii) my 4 CTs, two with one coil passing through each, and two with two coils passing through them. Within each pair, their directions are reversed. By this means, I get to see 4 separate waveforms: two small, in anti-phase; and two at twice the size, also in anti-phase;
Three sketches are attached in the .zip file:
i) TwoPhaseFourChannel_RPmonitor_1.ino This is the main workhorse (sorry for the unweildy name!)
ii) RawSamplesTool_6chan_ino A variant of my existing tool, which uses all 6 analog inputs
iii) emonTxV3_4chan_Rx.ino A suitable receiver sketch with which to display the transmitted data. The payload has 5 integer fields: the first contains a message ID, the other four contain the Real Power in each of the four CTs. The on-board LED blinks in line with the LSB of the message ID. This sketch will hopefully be appearing on GitHub soon, and works fine for this application too.
The modified RawSamplesTool, as above, confirms that the front-end is working as expected. Here is a display when around 2 kW is flowing through my bank of CTs. As mentioned above, my CTs have been arranged to provide four distinct traces for current. My two voltage sources are identical and wired in anti-phase:
>>free RAM = 725
millis() now = 0
recordingMayStartAt 5000
4
3
2
1
0
No of cycles recorded = 1
cycleCount 252, samplesRecorded 28
| 235 0.14 |
| 3 5 . 401 |
| 3 5 . 4 01 |
| 3 2 5 . 4 1 |
| 3 2 5 . 4 10 |
| 3 2 5 . 4 1 0 |
| 3 2 5 . 4 1 0 |
| 3 2 5 . 4 1 0 |
| 3 2 5 . 4 1 0 |
| 3 2 5 . 4 1 0 |
| 3 2 5 . 4 1 0 |
| 3 2 5 . 4 1 0 |
| 3 2 5 . 4 1 0 |
| 3 25 1 0 |
| 41 0. 532 |
| 10 4 . 5 3 |
| 10 4 . 5 23 |
| 01 4 . 5 2 3 |
| 0 1 4 . 5 2 3 |
| 0 1 4 . 5 2 3 |
| 0 1 4 . 5 2 3 |
| 0 1 4 . 5 2 3 |
| 0 1 4 . 5 2 3 |
| 0 1 4 . 5 2 3 |
| 0 1 4 . 5 2 3 |
| 0 1 4 . 5 2 3 |
| 0 1 4 . 5 2 3 |
| 0 1 52 3 |
Note that the number of sample sets is only 28 whereas I have confidently predicted 32 per mains cycle for 6-channel operation. That's because this tool controls the ADC via the highly inefficient analogRead() routine.
In the main workhorse sketch, the ADC is running continuously. An Interrupt Service Routine tells it which of the six available inputs to service next. Because the next conversion has already started by the time that the ISR is run, the 'next' channel is always two ahead of the one that has just finished. This can be seen in the switch() block in the ISR routine, ISR(ADC_vect).
To demonstrate that the main sketch is running at the predicted rate, I've added a line which displays how many samples per mains cycle have been seen. The answer is indeed just over 32, its actual value depending on the local mains frequency:
Go!
samples per mains cycle = 49.53
0, 0, 0, 0, 0
samples per mains cycle = 32.06
0, 0, 0, 0, 1
samples per mains cycle = 32.06
0, 0, -97, 238, 2
samples per mains cycle = 32.06
1049, -1295, -699, 700, 3
samples per mains cycle = 32.06
1422, -1378, -698, 699, 4
samples per mains cycle = 32.07
The above snippet is from the results file, RP_4chan_results_2.txt, which is also included in the .ZIP file. Note the four power values (the fifth value is the message ID). For this run, the load was my room heater on its low-power setting, nominally 750 Watts. The 3rd and 4th CTs show around 700 Watts, their sense being opposite because their CTs are opposite ways around. The 1st and 2nd CTs show double this value because the cable goes around each of them twice.
An RF message is dispatched every 2 seconds (every 100 mains cycles at 50 Hz), the payload for each message being assembled in several stages. After 20 mains cycles, the average real power for CT1 during the last 2 seconds is calculated and lodged into the appropriate field in the payload. At 20 cycle intervals, the data for CTs 2, 3 and 4 are treated similarly. At mains cycle 100, the pre-assembled RF message is dispatched. By this means, workload that occurs infrequently is spread out rather than being all bunched together at one point. So how effective is this approach, when combined with integer maths throughout?
With no Serial display, and the RF message being assembled but not sent, Workload Check shows that the main processor is idle for around 480 uS out of every 624. That's a processor occupancy of just 25%! When the RF activity is reinstated, the displayed value falls greatly; I expect there is some interaction between all the various interrupts that are flying around the place.
This code has been optimised for monitoring real power on several channels. PowerCal and phaseCal can be individually set for each CT. I think the Uno platform is well suited for this particular project, but similar code could be run on an emonTx with additional front-end circuitry as required. I hope that it will be of use to anyone who has need of such a solution.
Re: Novice starting out
Excellent work....!!!!
Just one question, what lines must be changed to 120V and 60Hz
Can we make a deal?. What would need to consider for this?
Re: Novice starting out
José, As far as I can see, this code should work OK for you without requiring any changes. However, because of your lower mains voltage and higher currents, it may be useful to alter the component values in your input sensors.
For best performance, each of the signal sources should use most of the available range of the ADC. The 6-channel version of RawSamplesTool that I included will show you when this situation has been achieved.
Because this sketch measures power, rather than energy, I think it should work equally well at 50Hz or 60 Hz.
Is that a deal?
Re: Novice starting out
What values are you referring to?
only I require measure a current signal (up to 100A) and voltage (120), at a frequency of 60Hz, for monophase installation, but I require the measurement of real power and energy, then send the data using a shiel wi-fi arduino to a server.
Is this code would be good?
I have the arduino Mega2560 and TFT where I will display the measured values.
In truth I have reviewed some codes here, but I failed to interpret. The codes that I understand are more accomplished, the Seller and the EmonLib the one in this post, I reviewed the one here, which is also very good, but I think for so many functions that I have had difficulty interpreting it.
What would be the most suitable for my requirements?
Thanks for reply ..!
Re: Novice starting out
José, the 6-channel code that I have written is intended for use in New Zealand which has the same voltage and frequency as the UK. If you wish to use this code in Spain, then it is up to you to make any adjustments that are necessary.
In my last message, I explained that you may wish to change the values in your input circuits so that they use most of the available range of your ADC. These input circuits (or sensors) are fully explained in the Building Blocks sections. I can't tell you exactly what component values to use. You need to assemble and test a system for yourself, and then adjust these component values to suit your particular needs.
The ASCII display above shows that all six of the analogue channels in my test rig are using a reasonable proportion of the ADC's range. If a sensor is too sensitive, the output values will "clip" at the peaks of each waveform (your sine wave will look square). If it is not sensitive enough, your output values will be very small, and will suffer from quantisation distortion (i.e. granularity or lumpyness) when only small signals are present.
A 10-bit ADC has 1024 output values, from 0 to 1023. These values span a certain range of input voltage, which may be 5V or 3.3V or 1.1V depending on your system. It is up to you to adjust the signals from your sensors so that they are well suited to your ADC.
Re: Novice starting out
Hello, excuse me for not responding in due time been out of this a good time! ...
Thanks for the help, I advance a lot so far in my code.
Now I encounter a problem, because I want the energy consumed is stored for years. In code that is using review kwh calculated the millis () function, but this is restored in approximately 49.7 days, and my idea is to continue indefinitely measuring kwh.
I hope to finish soon and share my modified code, so that they serve those in need.
How do the calculation without the millis () function? or
What setting should I do to not be reestablished?
THANKS AGAIN..!!
Re: Novice starting out
You must change the size of the units you measure.
We humans count small amounts of time in seconds, larger amounts in minutes, still larger in hours, etc. Likewise we measure small amounts of energy in Joules, large amounts in MJ or kWh, larger still in MWh.
You must do the same. I have not looked again at calypso_rae's code, and it depends on the degree of accuracy and how many years you want to count, but if for example you have an unsigned long integer (max value 4,294,967,295), then you can use that to count seconds, and every second (using the millisec timer) you increment it and at the same time check your energy register. If it is more than 1 kWh, you subtract 1 kWh and add 1 to another "kWh" register. That way you have the exact time to 1 s, and the exact energy held in two registers, and you can carry on like that for approx. 136 years.
Re: Novice starting out
This is my code to calculate the energy in the variable (kwhDay) I store dirio consumption (it resets every day at noon) in the variable (kwhMonth) I store the monthly consumption (resets the 7th of each month) and the variable (kwhTotal) want the total consumption was stored for years. The problem that I have is when the millis () function is restored, my varible (Timems also will reset), and that all comes to low.
Re: Novice starting out
The purpose of the code that I've posted on this thread is to transmit (using RF) the real power on each channel. This data can then be received and processed by some other platform. That could be a pair of emonGLCDs or a nanodeRF which links in to emonCMS etc.
With all six analogue channels on the go, this code is fairly busy as a multi-channel data gatherer. Keeping track of cumulative energy flow totals for each channel as well seems an unnecessary overhead. Also, any accumulated values would be lost when the system restarts.
With my new Mk2 hardware, there is a second CT which can measure the actual flow of energy to the dump load; this data can be accumulated within the associated code. To keep the code efficient, energy flow is calculated using integer maths in linear units of high precision; there are several million of these per WattHour. Even when using a 4-byte long, such calculations could soon overflow.
To avoid this problem, I've included a WattHour register which is incremented whenever the energy accumulator exceeds the 1 WH mark. The value in my (long) accumulator is then reduced by exactly 1 WH's worth. The content of the WattHour register is routinely displayed to the front-panel screen and/or transmitted by RF for use elsewhere. As an unsigned int, the WattHour register will record up to 63 kWh which is plenty for one day's worth, and it auto-resets each night. Longer term storage of data needs to be done elsewhere.
This arrangement is like recording "now" as being 25.123 seconds past 09:15 on 11/1/2014. By this means, millisecond accuracy can be provided for a unique moment in time without the need for a local millisecond clock that
can runhas been running for thousands of years.[This arrangement appears to be just as RW had suggested :-) ]
Re: Novice starting out
José:
If I understand you correctly, you have a problem when the millis() timer wraps round to zero? That is a well-known problem and it has a solution: http://playground.arduino.cc/Code/TimingRollover
Re: Novice starting out
My idea is to be like a commercial accountant regarding the storage of measured kwh. That is my big problem, try to fix it, the idea of Robert Wall, is very good (change the size of the variables), but as change these units without using milis (), to measure, ie as that has elapsed one hour, or 1 day, and this will continue to increase. Actually I'm half confused, I need a lot of science, if someone understands me agradesco you greatly.
Re: Novice starting out
I shall try to explain again. You have two problems: (1) millis() returns to zero every 50 days ( approximately) and (2) your numbers get too big. Here is a general idea for what you must do:
Inside your main loop:
You use millis() to measure a duration of exactly one minute. You must use the TimingRollover code to make sure everything happens correctly during the minute after millis() has returned to zero.
You accumulate Joules each time you measure energy (2500 times per second?).
When 1 minute has passed:
Add 60,000 to the milliseconds to know when the next minute is due.
Add 1 to your count of minutes.
If the Joules accumulator is greater than 3,600,000 (= 1 kWh) then
Add 1 to the kWh register and subtract 3,600,000 from the Joules register
else do nothing.
At any time the total kWh is the number in the kWh register + (the number in the Joules register / 3600000).
Likewise the total time in minutes is the number of minutes + (the number of milliseconds / 60000)
If the maximum number in your Joules register is greater than the biggest number you can use, then you must do this in three steps and not two. (1) accumulate Joules, (2) Joules -> Wh ( 1 Wh = 3600 J) , (3) Wh -> kWh.
Re: Novice starting out
Thanks, about the size of variables and I resolved to do what you mentioned, what time (millis ()), I'll fix now with your suggestions. I hope to solve it today.
Thanks Robert Wall.
Re: Novice starting out
The multi-channel code that I posted on this thread calculates the average power (in Watts) for each channel during a 2-second period. To convert this to energy (in Joules), just multiply each power value by two (because Energy = Power x Time).
If you want to know the total amount of energy that has been recorded, your energy accumulator variable will need to be updated every two seconds, not every millisecond. To prevent the accumulator from overflowing, you will need to keep track of whole WattHours separately, as Robert and I have both described.
Once the start-up period has passed, my code doesn't use millis(). To keep track of time, e.g. for when an RF message should be transmitted, it uses cycleCount which increments once every mains cycle (20 mS in the UK).
Re: Novice starting out
After being trying all day not e able to solve it, I always toss and turn and came to the same thing, I have this code, but clearly I still have the same problem (when startTime2 reach the limit) or is making me hard this apparently is simple.
startTime2=1000; i=1; j=1; k=1; if( (int)( millis() >= startTime2 ) ) { whDay = whDay + (realPower*i/3600); // (Wh) if (whDay=1000*j) { kwhMonth=k; j++; k++; } startTime2 += 1000; // do it again 1 second lateri++;
}
Excuse me, could you give an example that tells me about it, I would infinitely thanked him.
Re: Novice starting out
José,
Te di un enlace: http://playground.arduino.cc/Code/TimingRollover. No puedo explicar nada mejor que eso.
Re: Novice starting out
I think that link needs an extra '/'
http://playground.arduino.cc//Code/TimingRollover
Re: Novice starting out
<Sniff>! I checked it, then the automatic formatter screwed up! I have changed it - I must learn to always write the HTML by hand, it is much safer!
<p>Te di un enlace: <a href="http://playground.arduino.cc/Code/TimingRollover">http://playground.arduino.cc/Code/TimingRollover</a>. No puedo explicar nada mejor que eso.</p>
Re: Novice starting out
Thanks friends, I still have much to learn I'm aware of that, that was very helpful.
Re: Novice starting out
Hi, With your help I managed to have my first version of the power meter and I make it public to your reviews .
This is based on the library " EmonLib " .
Necessary changes (calibration ) was performed at a voltage of 120V at 60Hz. The low values of the current I miss that when no measure is unloaded ( unlikely because almost always will be a charge of the same prototype measurement) wrong values.
Power variables are displayed on the TFT, the power is calculated every second ( Joules ), three parameters enrgía consumed ( Daily, Monthly, and Cumulative ) is measured , also the cost per kWh is calculated for a month.
This is my first version I have not checked for a long time , but the few tests I've done is satisfactory. Any criticism would be welcome.
Thank you ..! This Is https://github.com/jdarduino/EnergyMeter/blob/master/.gitignore
The next part is to send this data to the internet, I tried xively library, but the display on the TFT , fell to low. This time delay in the connection, and no connection when the program stops unexpectedly .
I would very much if I recommend which is the best option for sending data to internet, quickly checked the " emoncms " page but I have absolute ignorance of their operation and as sending data from my ethernet shield Arduno .
I hope my program will be useful for someone.
Sorry for my weird English. :-)
Re: Novice starting out
The sketches for the NanodeRF on Github https://github.com/openenergymonitor/NanodeRF might help you with your connection to the Ethernet.
You can try out EmonCMS with your web browser. Create an account, go to Input and Input API Help. You will find there the data formats that EmonCMS expects. There are two forms. The first (JSON) allows you to give a name to the input:
http://emoncms.org/input/post.json?json={power:200}&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
The second (CSV) only sends values:
http://emoncms.org/input/post.json?csv=100,200,300& apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
On the Input page these are named automatically as "1", "2", "3" etc and you can add a "Description", for example "Power from Grid".
(You can see your personal APIkey on the Input API Help page - use that instead of xxxxx.....)
If you can send data from your Arduino in one of these forms, you can use EmonCMS.
Re: Novice starting out
Thanks for responding, I am reviewing and trying to send emoncms damages. I see this <HttpClient.h> uses the library, this library has been giving me problems (there is something there, that achievement does not understand). Suppose I want to send data to emoncms every 30 seconds, and for a moment the connection is lost (may be a failure of router, cable etc..), There is that it gets stuck my program looking to establish a connection because I am calculating the energy every second (in Joules) if the time it takes trying to connect is greater than 1 second, give me erroneous energy values.
Here's how the energy calculation.
// Calculo de la enrgía Consumidaif ((millis()-fast_update)>1000) // Evaluacoón de potencia por cada segundo (Energía Juls) {
fast_update = millis(); // El tiempo actual se guarda en una variable para su posterio evaluación
DateTime now = RTC.now(); // Se inicializa el RTC para programar el tiempo la hora de reestablecimiento de la energía
int last_hour = hourReset; // Se guarda la hora actual en una variable para poder compararla
hourReset = now.hour(); // Se guarda la hora actual
dayReset=now.day(); // Se guarda la fecha del día actual
whDay += (realPower * 1) / 3600; // Cálculo de la Energía diaria consumida (En Wh)
kwhMonth += (realPower*1)/3600000; // Cálculo de la Energía mensual consumida (En kWh)
kwhTotal += (realPower*1)/3600000; // Cálculo de la Energía total consumida (En kWh)
// Se Programa una determinada hora y día para reestablecer los valores de energía medidos if (last_hour == 23 && hourReset == 00){ whDay = 0; } // Se reestablee el conteo de Wh diario a la media noche
if (dayReset == 11 && (last_hour == 23 && hourReset == 00) ){kwhMonth=0;} // Se reestablece el conteo de kWh mensual el 11 de cada mes a media noche
}
One more question. Can two-way communication from emoncms?, Would like to send messages (or to control the load from emoncms).
Gracias..!!
Re: Novice starting out
This is a really badly titled thread and is no longer involving the person who initially posted the query. Any chance of renaming it?
Re: Novice starting out
Sorry, I could make as a new topic in forum ... Rename this is not how to do it.
Re: Novice starting out
A better solution would be to transplant the inappropriate comments into a new, relevant, thread. Unfortunately, there's no mechanism in Drupal that I know of to allow that to happen. So we're pretty much stuck with it.
However, the thread can be renamed. If you'd like to suggest a new name, I'll do that.
Re: Novice starting out
Well in this thread we talk a little of everything .. A general theme could be "Measuring Energy to 120V 60Hz and data sending with shield ethernet."
Re: Novice starting out
Ok. I answered myself, I was using the library xively, and this has features that spend time, communicate, if there is no connexon be trying some time. which does not suit me, because you can spend a few seconds and that is equivalent to an error in the calculation of energy (Wh), deveria add a condition that if there is no connection at any given time (about 100ms). No more trying to connect to it to continue executing the rest of the program.
I pose the question again. Can I establish two-way communication from emoncms?
Re: Novice starting out
I agree that this thread has drifted away from its original topic, and that this situation is not ideal. When this happens, the best approach is surely for someone to start a new thread with an appropriate title which can then head off in the new direction.
Changing the title and/or content of an existing thread does not seem a good idea to me. I spent several days creating and then posting a comprehensive solution which appears to satisfy all the requirements of the originator. It's hard enough to locate things in this system as it is; if titles were to be changed, it would become even more awkward.
My suggestion is that someone now adds a suitable message to terminate this thread and refer any interested reader to a new one. It won't be me. I can understood the first half, but get lost when anyone mentions "apikey" and the like!
Re: Novice starting out
José: I think there is another active thread where commands back from emonCMS are being discussed http://openenergymonitor.org/emon/node/3733 though there does not seem to be a working scheme yet.
Re: Novice starting out
Hi Robin, I realize this is an old thread but it is exactly what I am looking for. I am new to the open energy monitor forum but have many years experience in electronics and computing and am now retired. I have made projects with PICs, beaglebones, arduinos and PI's and would like to take your project a little further if it hasn't already been done before. I would Like to make a PCB for the TwoPhase4chanMon_FrontEnd circuit that you came up with to tidy it up a bit an ot isd there a better way to handle this 2 phase monitoring with the solar pannels separate from the house main board on a sub board located about 50 meters away.
Cheers Mal
Re: Novice starting out
Hi Mal,
Yes, I was pleased with the way this code turned out. It was the first time that I'd had all six of the analog IO ports in operation.
I now have a 3-phase PCB which supports a pair of V & I sensors on each phase. If you wanted to only monitor two phases, with 2 CTs on each, I'm sure that could be arranged with only minor changes to the PCB. This PCB includes the processor rather than just being the front end circuits.
Details of this board are at http://mk2pvrouter.co.uk/61101.html Send me a PM if you're interested, or there is an email address on my Shop page.
Robin (calypso_rae)


2.1.3 / 2013-10-16¶
- Fix wrong loading of empty block scalars.
2.1.2 / 2013-10-07¶
- Fix unwanted line breaks in folded scalars.
2.1.1 / 2013-10-02¶
- Dumper now respects deprecated booleans syntax from YAML 1.0/1.1
- Fixed reader bug in JSON-like sequences/mappings.
2.1.0 / 2013-06-05¶
- Add standard YAML schemas: Failsafe (FAILSAFE_SCHEMA), JSON (JSON_SCHEMA) and Core (CORE_SCHEMA).
- Rename DEFAULT_SCHEMA to DEFAULT_FULL_SCHEMA and SAFE_SCHEMA to DEFAULT_SAFE_SCHEMA.
- Bug fix: export NIL constant from the public interface.
- Add skipInvalid dumper option.
- Use safeLoad for require extension.
2.0.5 / 2013-04-26¶
- Close security issue in !!js/function constructor. Big thanks to @nealpoole for security audit.
2.0.4 / 2013-04-08¶
- Updated .npmignore to reduce package size
2.0.3 / 2013-02-26¶
- Fixed dumping of empty arrays ans objects. ([] and {} instead of null)
2.0.2 / 2013-02-15¶
- Fixed input validation: tabs are printable characters.
2.0.1 / 2013-02-09¶
- Fixed error, when options not passed to function cass
2.0.0 / 2013-02-09¶
- Full rewrite. New architecture. Fast one-stage parsing.
- Changed custom types API.
- Added YAML dumper.
1.0.3 / 2012-11-05¶
- Fixed utf-8 files loading.
1.0.2 / 2012-08-02¶
- Pull out hand-written shims. Use ES5-Shims for old browsers support. See #44.
- Fix timstamps incorectly parsed in local time when no time part specified.
1.0.1 / 2012-07-07¶
- Fixes TypeError: ‘undefined’ is not an object under Safari. Thanks Phuong.
- Fix timestamps incorrectly parsed in local time. Thanks @caolan. Closes #46.
1.0.0 / 2012-07-01¶
- y, yes, n, no, on, off are not converted to Booleans anymore. Fixes #42.
- require(filename) now returns a single document and throws an Error if file contains more than one document.
- CLI was merged back from js-yaml.bin
0.3.7 / 2012-02-28¶
- Fix export of addConstructor(). Closes #39.
0.3.6 / 2012-02-22¶
- Removed AMD parts - too buggy to use. Need help to rewrite from scratch
- Removed YUI compressor warning (renamed double variable). Closes #40.
0.3.5 / 2012-01-10¶
- Workagound for .npmignore fuckup under windows. Thanks to airportyh.
0.3.4 / 2011-12-24¶
- Fixes str[] for oldIEs support.
- Adds better has change support for browserified demo.
- improves compact output of Error. Closes #33.
0.3.3 / 2011-12-20¶
- jsyaml executable moved to separate module.
- adds compact stringification of Errors.
0.3.2 / 2011-12-16¶
- Fixes ug with block style scalars. Closes #26.
- All sources are passing JSLint now.
- Fixes bug in Safari. Closes #28.
- Fixes bug in Opers. Closes #29.
- Improves browser support. Closes #20.
- Added jsyaml executable.
- Added !!js/function support. Closes #12.
0.3.1 / 2011-11-18¶
- Added AMD support for browserified version.
- Wrapped browserified js-yaml into closure.
- Fixed the resolvement of non-specific tags. Closes #17.
- Added permalinks for online demo YAML snippets. Now we have YPaste service, lol.
- Added !!js/regexp and !!js/undefined types. Partially solves #12.
- Fixed !!set mapping.
- Fixed month parse in dates. Closes #19.
0.3.0 / 2011-11-09¶
- Removed JS.Class dependency. Closes #3.
- Added browserified version. Closes #13.
- Added live demo of browserified version.
- Ported some of the PyYAML tests. See #14.
- Fixed timestamp bug when fraction was given.
0.2.2 / 2011-11-06¶
- Fixed crash on docs without —. Closes #8.
- Fixed miltiline string parse
- Fixed tests/comments for using array as key
0.2.1 / 2011-11-02¶
- Fixed short file read (<4k). Closes #9.
0.2.0 / 2011-11-02¶
- First public release


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/ordered_comm_monoid.html ---
Why is ordered_comm_monoid
additive? I thought {x : real | x ≥ 1}
is a really nice ordered commutative monoid...
Because most ordered comm monoids are additive, like reals, ints, nats, rats, with_bot nat
Sure, but we could still have the add
in the name right? And I think there are enough examples where they aren't additive, like positive reals, nats, positive rats...
That makes sense. Btw, isn't {x : real | x ≥ 1}
a commutative group?
inverse?
Is your group operation (x, y) -> (x - 1)(y - 1) + 1 or something crazy like that?
that would make 1 have no inverse
ah good point
Right, somehow, the fact that the inverse is less than one escaped me. You'd need { x : real | x > 0 } for a group.
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Lecture 3
types :: type1 → type2
F12
, then click ConsoleF12
, then click ConsoleCtrl+Shift+k
↓ , PgDn , n , j |
next slide |
↑ , PgUp , p , k |
prev slide |
Esc |
enables ctrl+f globally |
Run it from the terminal
|
Or run ghci, then load the file
|
Implement factorial
| A | B | C | D | E | F | G | H | I | J | ... |
-- Most popular solution
facA n = if n > 1
then n * facA(n-1)
else n
-- Right tools for the right job
facB n = product [1..n]
-- Oh, you.
facC n = foldr (*) 1 [1..n]
-- Sophomore Haskell programmer
-- (studied Scheme as a freshman)
-- http://willamette.edu/~fruehr/haskell/evolution.html
facD = (\(n) ->
(if ((==) n 0)
then 1
else ((*) n (facD ((-) n 1)))))
-- Memoizing Haskell programmer
-- http://willamette.edu/~fruehr/haskell/evolution.html
facs = scanl (*) 1 [1..]
facE n = facs !! n
-- Iterative Haskell programmer
-- (former Pascal programmer)
-- http://willamette.edu/~fruehr/haskell/evolution.html
facF n = result (for init next done)
where init = (0,1)
next (i,m) = (i+1, m * (i+1))
done (i,_) = i==n
result (_,m) = m
for i n d = until d n i
-- Continuation-passing Haskell programmer
-- http://willamette.edu/~fruehr/haskell/evolution.html
facCps k 0 = k 1
facCps k n = facCps (k . (n *)) (n-1)
facG = facCps id
-- Boy Scout Haskell programmer
-- http://willamette.edu/~fruehr/haskell/evolution.html
y f = f (y f)
facH = y (\f n -> if (n==0) then 1 else n * f (n-1))
-- Combinatory Haskell programmer
-- http://willamette.edu/~fruehr/haskell/evolution.html
s f g x = f x (g x)
k x y = x
b f g x = f (g x)
c f g x = f x g
y f = f (y f)
cond p f g x = if p x then f x else g x
facI = y (b (cond ((==) 0) (k 1)) (b (s (*)) (c b pred)))
-- List-encoding Haskell programmer
-- (prefers to count in unary)
-- http://willamette.edu/~fruehr/haskell/evolution.html
arb = ()
listenc n = replicate n arb
listprj f = length . f . listenc
listprod xs ys = [ i (x,y) | x<-xs, y<-ys ]
where i _ = arb
facl [] = listenc 1
facl n@(_:pred) = listprod n (facl pred)
facJ = listprj facl
Bool
= False | True
Char
= 'a' | 'b' | ... | 'A' | 'B' | ...
Int
= -231 | ... | -1 | 0 | 1 | ... | 231-1
Integer
Double
Types always start with a capital letter
Haskell secretly infers that True
is a Bool
.
Prelude> :type True
True :: Bool
You can also explicitly use a type.
Prelude> 3 :: Int
3
Prelude> 3 :: Double
3.0
Prelude> head [1,2,3,4]
1
Prelude> :type head
head :: [a] -> a
head
has the type List of a
's to just a
Prelude> fst ("left", "right")
"left"
Prelude> :type fst
fst :: (a, b) -> a
fst has the type tuple of a
and b
to just a
"if a piece has the wrong shape, it simply won't fit"
| Haskell | Python* |
What should be the type declaration for fac
?
(clear answer)
(show answer)
fac n = product [1..n]
fac :: Integer -> Integer
fac n = product [1..n]
What's the type declaration for &&
?
(clear answer)
(show answer)
(&&) ::
(&&) :: Bool -> Bool -> Bool
How about :
?
(clear answer)
(show answer)
Prelude> 0:[1,2,3]
[0,1,2,3]
Prelude> :type (:)
Prelude> 0:[1,2,3]
[0,1,2,3]
Prelude> :type (:)
(:) :: a -> [a] -> [a]
(8:00 to 9:22)
A Typeclass lets you generalize a function.
For example, the less-than sign can be used multiple ways.
10 < 20
'a' < 'b'
"aardvark" < "zzz"
[6,2,4] < [6,3,8]
Ord
Typeclassis used for things with total order
Prelude> :type (<)
Prelude> :type (<)
(<) :: a -> a -> Bool
Prelude> :type (<)
(<) :: Ord a => a -> a -> Bool
(clear answer)
(show incorrect answer)
(show answer)
Remember them from Java?
public class NumberUsedByLessThanSign implements Comparable {
...
}
Show
- representable as a string
Prelude> show 42
"42"
Enum
- enumerable in a list
Prelude> ['R'..'t']
"RSTUVWXYZ[\\]^_`abcdefghijklmnopqrst"
Num
- usable as a number
Prelude> 5.2 * 2.5
13.0
Functions with multiple arguments look funny.
The take
function has two arguments:
n
ls
and it produces the first n
elements of ls
Prelude> take 5 [1..]
[1,2,3,4,5]
The type declaration is
Prelude> :type take
take :: Int -> [a] -> [a]
Weird...
All Haskell functions take only one argument
at the take
function:
take :: Int -> [a] -> [a]
The ->
operator is right-associative
take :: Int -> ([a] -> [a])
take
actually has type of Int to a function
Every function technically has one argument.
Actually, this is really cool!
Prelude> :type take
take :: Int -> [a] -> [a]
Prelude> let takeFive = take 5
Prelude> :type takeFive
takeFive :: [a] -> [a]
Prelude> takeFive [1..]
[1,2,3,4,5]
A function only depends on its aguments.
A type declaration is a strong promise.
Focus on what is done, not how.
Inherently modular
Elegant
Create mycode.hs
and write a function called zipTogether
-- mycode.hs
-- |The 'zipTogether' function binds together two lists.
zipTogether :: [a] -> [b] -> [(a,b)]
-- mycode.hs
-- |The 'zipTogether' function binds together two lists.
zipTogether :: [a] -> [b] -> [(a,b)]
zipTogether [] [] = []
zipTogether [] ys = []
zipTogether xs [] = []
zipTogether xs ys = (head xs, head ys):
(zipTogether (tail xs) (tail ys))
-- mycode.hs
-- |The 'zipTogether' function binds together two lists.
zipTogether :: [a] -> [b] -> [(a,b)]
zipTogether [] [] = []
zipTogether [] ys = []
zipTogether xs [] = []
zipTogether (x:xs) (y:ys) = (x,y) : zipTogether xs ys
(clear answer)
(show answer 1)
(show answer 2)
Expected output:
Prelude> zipTogether [1,2,3] "abc"
[(1,'a'),(2,'b'),(3,'c')]
by the way, Haskell comes with zip
cipher
cipher :: [Char] -> Int -> [Char]
Prelude> cipher "hello" 13
"uryyb"
cipher :: [Char] -> Int -> [Char]
cipher [] _ = []
cipher (s:ss) n = (rotate s n) : (cipher ss n)
rotate :: Char -> Int -> Char
Now define this 'rotate' function
Bonus points for a cool solution!
Submit this week's homework form!


What is your experience of compassionate (or not) leadership?
In my last job, my line manager had always demonstrated to me compasionate leadership. As many would delegate and micro-manage, she would ensure she took the time to bring herself into our role, and work together to to solve issues, and encourage development.
Do the multiplying goodness meditation. How did you find it?
Quite interestingly I managed to do this meditation during a time of high stress at home today, it was brilliant. I was able to think of the goodness in myself and others, and bring my mind back to ease.
Do the Tonglen meditation. How did you find it?
I felt as though this could be a good practice for when I am experiencing anxiety or nerves, which happens often. Something I am trying to work on.
How does the SCARF model apply to your Phase 0 experience so far? How will it apply to bootcamp?
Status I think status applies heavily especially in the phase 0 experience and I assume will so in the first instance of bootcamp. This is because I am aware that I am completely new to web development, and have the idea in my mind that I may let others down, or come across as incompetent purely because I feel like I have not reached a mastery level yet. I know this is silly, as I am yet to gain more and more experience and practice, and many I'm sure are in a similar boat. Certainty This definitely applied a few nights ago, where my calculator was not quite working the way I intended. I finished up an incomplete calculator around midnight, and had the most restless sleep. The next morning I had the need to instantly try and resolve it as It occupied what felt like all of my brain capacity. Autonomy I am yet to think of a way this could apply, though I am sure it does. Relatedness I don't believe this was hugely apparent in my phase 0 experience, though am looking forward to physucally meet each member of my cohort and work together. I do have the doubt in mym mind that they are all on a completely other level than I am, and hoping this will not be a barrier for social connectedness. Fairness This is a interesting concept as fairness is often perceived as universal (ie, something is either black or white). Though everyone has a different view of fairness, and this is an eye opener, especially as bootcamp approaches and we will be working alongside others, this is something we must be aware of in order to work together.
Have a difficult conversation. How did it go? (It's a valuable skill, but can take practice to develop!)
I have probably had many difficult conversations, nothing recently, though I can remember most are difficult for the fact that conflict could arise if not done properly, or it could cause a sense of awkwardness.


Hey there! Missing out on all the fun of an offline
hackathon? Don't worry, boring is certainly not the
CodeChef-VIT way.
Who said Hackathons are only about ideas and
knowledge? Take part in our lucrative
CS:GO
tournament, an exciting tourney where you can tag
along with your friend in the 1v1 mode and play in
Competitive Pool maps.
So, what are you waiting for? Gear up, sharpen your
aim, and get ready to hit those headshots! Do you
feel the pulse?
Prizes:
Cosmic Byte Mechanical Keyboard
Cosmic Byte Gaming Headset
See you there
1st May at 12 AM
Fill out the following form to register
http://bit.ly/devsocgaming


Empty Jar
500ml
$15.00
Get the full jar experience
for an affordable price
Dusty Dwelling
500ml
$26.24
Dust collected over many years
to produce the finest air
Waterfall Wonder
500ml
$57.27
'rich' with negative ions*
Landfill Lustre
500ml
$69.69
Collected from local landfill
For the refined palate
Hospital Ambience
500ml
$92.53
The sweet smell of death
Gamer Breath
500ml
$133.70
Exactly as described


{{game.status.score.away}}
{{game.status.score.home}}
{{game | miniGameStatus}}
View Type
Browser not compatible.


1stHeadlines and its advertisers are deeply committed to protecting the privacy of Internet users. Below is information outlining our continued support for the responsible management of consumer information.
We use third-party advertising companies to serve ads when you visit our website. These companies may use information (not including your name, address, email address, or telephone number) about your visits to this and other websites in order to provide advertisements about goods and services of interest to you. If you would like more information about this practice and to know your choices about not having this information used by these companies, click here.
During the process of delivering an ad to you, 1stHeadlines and its advertisers do not collect any personally identifiable information about you such as name, address, phone number, or e-mail address. However, 1stHeadlines and its advertisers do obtain some types of non-personally identifiable information such as the Internet Service Provider you use to connect to the Internet, your browser type, or the type of computer operating system you use (Macintosh or Windows, for example). The information collected by 1stHeadlines and its advertisers is used for the purpose of targeting ads and measuring ad effectiveness on behalf of our advertisers.
In some cases, you may voluntarily provide personal information in response to a specific ad (this ad may ask you to fill out a survey or provide your zip code). If this does occur, 1stHeadlines or its advertisers may collect this information on behalf of an advertiser. This information is used by an advertiser to respond to your request. In addition, 1stHeadlines or its advertisers may combine this information with other users' information and review it in an aggregate form to understand the type of individuals who view a specific type of ad or visit a particular kind of website.
1stHeadlines or its advertisers, as well as most sites on the Internet, may use "cookies" to enhance your experience on the web. 1stHeadlines or its advertisers cannot use these cookies to personally identify you in any way. What are cookies and why do we use them? A cookie is a unique number that is provided to you the first time 1stHeadlines or its advertisers serves you an ad. This unique number, which is stored in a cookie file on your computer, helps 1stHeadlines or its advertisers target ads to you. This cookie can help 1stHeadlines or its advertisers ensure that we don't serve you the same ad multiple times, and help our 1stHeadlines or its advertisers understand what you like and don't like about their offerings so that they can cater better to your needs the next time you are interested in their products or services. While we believe that cookies enhance your Internet experience by limiting the number of times you see the same ad and delivering more relevant content to you, they are not required for 1stHeadlines or its advertisers to deliver you an ad.
If you do not want the benefit of cookies, there is a simple procedure to manually delete your cookies. Please consult your web browser's Help documentation for more information.
1stHeadlines works with third party advertising agencies who serve ads to this site. Each of these agencies have their own privacy policies. If you have any additional questions about 1stHeadlines's dedication to consumer privacy, please click here to send us a message.


@@include('./html-global/head.html')
When you start scrolling, you will see interesting events.
Currently v1.1.2


@* * Copyright 2019 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import play.api.Configuration @import uk.gov.hmrc.agentoverseasapplicationfrontend.controllers.routes @import uk.gov.hmrc.agentoverseasapplicationfrontend.models.AmlsDetails @import uk.gov.hmrc.play.views.html.helpers.{form, input} @()(implicit messages: Messages, request: Request[_], configuration: Configuration) @uk.gov.hmrc.agentoverseasapplicationfrontend.views.html.main_template(title = Messages("nonAgent.title")) {
@Html(Messages("nonAgent.p1",routes.SignOutController.signOut()))
@Html(Messages("nonAgent.p2",routes.SignOutController.signOutWithContinueUrl()))
}


Gary R. "Garbe" Dahmen
Gary R. "Garbe" Dahmen, passed away at his home on October 30, 2019, surrounded by his immediate family.
He was born on October 24, 1954, in Madison, Wisconsin to Gilbert and Mary Ann Dahmen. Garbe and Jerilyn Meyer Dahmen were married on January 15, 1981, at St. John's Catholic Church, officiated by Father Monte Robinson.
Garbe grew up in Martinsville, Wisconsin and graduated from Middleton High School. He was a maintenance mechanic for 34 years with the WI Dept of Military Affairs at Truax Field. His hobbies included many years of playing softball throughout the local area and Midwest, golfing, deer hunting, and his annual fishing trip to Canada.
Garbe is survived by the family he loved so very much; his wife, Jerilyn; their sons and daughters-in-law, David and Karen Culbertson and John and Sara Dahmen; and his greatest joy, their grandchildren, Analiese, Alaina, Will, Hannah and Jack. Garbe is also survived by his sister, JoAnn Dahmen Ripp; his brothers and sisters-in-law, Terry and Le Dahmen, Dean and Melissa Dahmen, and Tim and Barb Dahmen; also his sisters-in-law, Jody Dahmen, Marianne Meyer, and Donna Doyle as well as numerous nieces and a nephew.
Garbe was preceded in death by his parents; his in-laws, Jerome and Muriel Meyer; his brothers, Ron Dahmen and Doug Dahmen, and sister-in-law Ann Dahmen.
A Gathering will be held on Friday, November 8, 2019, at Rex's InnKeeper, 301 N. Century Ave, Waunakee from 4:00 to 7:00 p.m.
The family will be making a memorial contribution in Garbe's name at a later date.
We want to thank the Carbone Cancer Center staff and Agrace Hospice for their wonderful care and guidance.
Winn-Cress Funeral and Cremation Service
5785 Highway Q
Waunakee, WI 53597
(608)849-4513


pmcid:
5897819
pmid:
29610378
doi:
10.1098/rsta.2016.0445
rsta20160445
10058112
Articles
Research Article
Implications of possible interpretations of ‘greenhouse gas balance’ in the Paris
Agreement
Greenhouse gas balance
http://orcid.org/0000-0001-6140-8374FuglestvedtJ.1*
http://orcid.org/0000-0003-2056-9061RogeljJ.234
MillarR. J.4
AllenM.45
BoucherO.6
CainM.47
ForsterP. M.8
http://orcid.org/0000-0002-3307-2647KrieglerE.9
ShindellD.10
[],
1CICERO Center for International Climate ResearchPO Box 1129, Blindern, 0318 Oslo
Norway
[],
2Energy Program, International Institute for Applied Systems Analysis (IIASA)2361 Laxenburg
Austria
[],
3Institute for Atmospheric and Climate Science, ETH ZurichUniversitätstrasse 16, 8006 Zurich
Switzerland
[],
4Environmental Change Institute, School of Geography and the Environment, University
of OxfordSouth Parks Road, Oxford OX1 3QY
UK
[],
5Department of Physics, University of OxfordParks Road, Oxford OX1 3PU
UK
[],
6Institut Pierre-Simon Laplace, Sorbonne Université, CNRSParis
France
[],
7Oxford Martin School, University of Oxford34 Broad Street, Oxford OX1 3BD
UK
[],
8School of Earth and Environment, Maths/Earth and Environment Building, University
of LeedsLeeds LS2 9JT
UK
[],
9Potsdam Institute for Climate Impact Research (PIK), Member of the Leibniz AssociationPO Box 601203, 14412 Potsdam
Germany
[],
10Nicholas School of the Environment, Duke UniversityDurham, NC 27708
USA
e-mail:
<EMAIL_ADDRESS>One contribution of 20 to a theme issue ‘
The Paris Agreement: understanding the physical and social challenges for a warming
world of 1.5°C above pre-industrial levels’.
Electronic supplementary material is available online at
https://doi.org/10.6084/m9.figshare.c.4017622.
ppub:
epub:
pmc-release:
3762119Theme issue ‘The Paris Agreement: understanding the physical and social challenges
for a warming world of 1.5°C above pre-industrial levels’ compiled and edited by Dann
Mitchell, Myles R Allen, Jim W Hall, Benito Mueller, Lavanya Rajamani and Corinne
Le Quéré20160445
accepted: --
© 2018 The Authors.2018
Published by the Royal Society under the terms of the Creative Commons Attribution
License
http://creativecommons.org/licenses/by/4.0/, which permits unrestricted use, provided the original author and source are credited.
The main goal of the Paris Agreement as stated in Article 2 is ‘holding the increase
in the global average temperature to well below 2°C above pre-industrial levels and
pursuing efforts to limit the temperature increase to 1.5°C’. Article 4 points to
this long-term goal and the need to achieve ‘balance between anthropogenic emissions
by sources and removals by sinks of greenhouse gases'. This statement on ‘greenhouse
gas balance’ is subject to interpretation, and clarifications are needed to make it
operational for national and international climate policies. We study possible interpretations
from a scientific perspective and analyse their climatic implications. We clarify
how the implications for individual gases depend on the metrics used to relate them.
We show that the way in which balance is interpreted, achieved and maintained influences
temperature outcomes. Achieving and maintaining net-zero CO
2-equivalent emissions conventionally calculated using GWP
100 (100-year global warming potential) and including substantial positive contributions
from short-lived climate-forcing agents such as methane would result in a sustained
decline in global temperature. A modified approach to the use of GWP
100 (that equates constant emissions of short-lived climate forcers with zero sustained
emission of CO
2) results in global temperatures remaining approximately constant once net-zero CO
2-equivalent emissions are achieved and maintained. Our paper provides policymakers
with an overview of issues and choices that are important to determine which approach
is most appropriate in the context of the Paris Agreement.
This article is part of the theme issue ‘The Paris Agreement: understanding the physical
and social challenges for a warming world of 1.5°C above pre-industrial levels'.
Paris Agreementnet-zero emissionsCO
2 equivalence
greenhouse gas balanceemission metrics
Research Council of Norway
235548


I'm an inspiring programmer and Full Stack Developer, graduated with an AS degree in Computer Science from the University of Grantham in 2019.
On the frontend I'm currently learning Vue.js and React, and the backend
learning PHP and MySQL. I have also worked with Python and C++.
When I'm not coding I am engaging in my other hobby playing Video Games, mostly Fighting Games. I also workout, and read about new technology.
Below are my links, Contact Me!


{{ partial "head" . }}
{{ partial "header" . }}
Amaiz
404
404 error
Sorry, the page not found.
Seems like you missed it.
But no worries, we got your back.
Go back to home page
{{ partial "footer" . }}


Across: 1. A liver cirrhosis often starts with seconds of this popular elixir (7) 5. Figures involved in racket (7) 9. Drink without 1 is acceptable in church (4) 10. Mine exploded during advanced trial (10) 12. Drink without 1 superficial editors and journalists love (8) 13. Class offer? (6) 14. In cirrhosis, liver set back by wicked ways (5) 16. White rat originally grasped device running loop (8) 19. Happy violin piece evoking flowers (8) 20. Drink without 1 is stimulation coming from the right place (5) 22. Listen out for land invasions (6) 24. Limped, in great part making progress difficult (8) 26,17dn. A ban on 1? No odds of seeing that here now that leaders act badly and terminate fellows before time (10 9) 27. Starts to employ boys building school retreats (4) 28. Hide cryptic clues with double surfaces (7) 29. Rules on removing essential history in monuments (7) Down: 2. Appears worryingly like toilet paper (5) 3. Perhaps by majority, revoked (turned around, having regretted embracing law originally?) (9) 4. Port city embarrassed over uprising (6) 6. After run around, I lure out the less cooperative (8) 7.  Bitter or sour, can be upset (9) 11. "The 25 10", a bar operating from 17/1/20? (11) 15. Farewell... end of 11 begins the inevitable new era for love (9) 17. see 26 across 18. Slaved to produce act that precluded 1 (8) 21. Raised glass for effect (6) 23. They got drunk with 1 ultimately... the best type of 1 for getting drunk! (5) 25. In model, bonding rejected for such a gas (5)


Oral statement to Parliament
The Secretary of State for Education's oral statement to Parliament on Birmingham schools.
With your permission, Mr Speaker, I should like to make a statement on schools in Birmingham.
Keeping our children safe - and ensuring our schools prepare them for life in modern Britain - could not be more important - it is my central mission.
Allegations made in what has become known as the Trojan Horse letter suggested children were not being kept safe in Birmingham schools.
Ofsted and Education Funding Agency have investigated those allegations. Their reports, and other relevant documents, have today been placed in the Library of the House. Let me set out their findings and my actions.
Ofsted states that “headteachers reported… an organised campaign to target.. schools…in order to alter their character and ethos,” with “a culture of fear and intimidation”.
Headteachers who had “a record of raising standards” reported they had been “marginalised or forced out of their jobs”.
One school leader was so frightened about speaking to the authorities that a meeting had to be arranged in a supermarket car park.
Ofsted concluded governors “are trying to impose and promote a narrow faith-based ideology in what are non-faith schools”, specifically by narrowing the curriculum, manipulating staff appointments and using school funds inappropriately. Overall, Ofsted inspected 21 schools. Three were good or outstanding.
Twelve schools were found to require improvement.
The remaining 6 are inadequate and are in special measures.
Let me explain why.
At one secular primary school, terms such as “white prostitute” unsuitable for primary children’s ears, were used in Friday assemblies run exclusively by Muslim staff.
The school organised visits to Saudi Arabia open only to Muslim pupils.
Senior leaders told inspectors that a madrassah had been established and been paid for from the school’s budget.
Ofsted concluded the school was “not adequately ensuring that pupils have opportunities to learn about faith in a way that promotes tolerance and harmony between different cultures”.
At one secular secondary school, staff told officials the call to prayer was broadcast over the playground using loudspeakers.
Officials observed lessons had been narrowed to comply with conservative Islamic teachings - in biology, students were told “evolution is not what we believe”.
The school invited the preacher Sheikh Shady al-Suleiman to speak despite the fact that he is reported to have said:
Give victory to Muslims in Afghanistan… Give victory to all the Mujahideen all over the world. Oh Allah, prepare us for the jihad.
Ofsted concluded that “governors have failed to ensure that safeguarding requirements and other statutory duties are met”.
At another secular secondary school inspectors described “a state of crisis” with governors reportedly using school funds to pay private investigators to read the emails of senior leaders, Ofsted found a lack of action to protect students from extremism.
At a third secular secondary school, Ofsted found students are “vulnerable to the risk of marginalisation from wider British society and the associated risks which could include radicalisation”.
And at a secular primary Ofsted found, that “pupils have limited knowledge of religious beliefs other than Islam”, and “subjects such as art and music have been removed - at the insistence of the governing body”.
Inspectors concluded that the school “does not adequately prepare students for life in modern Britain”.
Ofsted also reports failures on the part of Birmingham City Council.
They found that the council did not deal adequately with repeated complaints from headteachers. School leaders expressed “very little confidence” in the local authority and Ofsted concluded that Birmingham has not exercised adequate judgement. Indeed the chair of one of the schools found to be inadequate, Tahir Alam, was in a business relationship with the former Lead Member for Children and Young People.
Mr Speaker, these findings demand a robust, but also a considered, response.
It is important that no one allows concern about these findings to become a pretext for criticism of Islam itself, a great faith which brings spiritual nourishment to millions and daily inspires countless acts of generosity.
The overwhelming majority of British Muslim parents want their children to grow up in schools that open doors rather than close minds.
It is on their behalf that we have to act.
There are, of course, questions about whether warning signs have been missed.
There are certainly questions for Birmingham Council, Ofsted and the Department for Education.
I have today asked Birmingham Council to review their history on this issue, and the Chief Inspector has advised me that he will be considering the lessons learnt for Ofsted.
I am also concerned that the DfE may not have acted when it should. I am asking the Permanent Secretary to investigate how my department dealt with warnings both since the formation of this government in 2010 and before.
We all must acknowledge there has been a failure in the past to do everything possible to tackle non-violent extremism.
But let me be clear, no government and no Home Secretary has done more to tackle extremism.
In the Prime Minister’s Munich speech of 2011;
In the Home Secretary’s own review of the Prevent Framework;
And in the conclusions of the government’s Extremism Task Force last year.
This government has made clear that we need to deal with the dangers posed by extremism well before it becomes violent.
And since 2010 the DfE has increased its capacity to deal with extremism. We set up Whitehall’s first ever unit to counter extremism in public services with help from former intelligence and security professionals. That unit has developed since 2010 and we will continue to strengthen it.
Ofsted now train inspectors to understand and counter extremist Islamist ideology. And inspections of schools at risk, like those in Birmingham, are carried out by the most senior inspectors - overseen by Sir Michael Wilshaw himself.
But there is - of course more to do - and today’s reports make action urgent.
First, we need to take action in the schools found inadequate.
Academies will receive letters saying I am minded to terminate funding agreements.
Local authority schools are having governors replaced.
We have already spoken to successful academy providers who are ready to act as sponsors.
We need to strengthen our inspection regime even further.
The requirement to give notice of inspections clearly makes it more difficult to identify and detect danger signs.
Sir Michael Wilshaw and I have argued in the past that no-notice inspections can help identify when pupils are at risk.
I have asked him to consider the practicalities of moving to a situation where all schools know they may receive an unannounced inspection.
I will also work with Sir Michael Wilshaw to ensure, as he recommends, that we can provide greater public assurance that all schools in a locality discharge their full statutory responsibilities and we will consider how Ofsted can better enforce the existing requirement that all schools teach a broad and balanced curriculum.
I have talked today to the leader of Birmingham Council and requested that it sets out an action plan to tackle extremism and keep children safe.
We already require independent schools, academies and free schools to respect British values.
Now we will consult on new rules that will strengthen this standard further, so that all schools actively promote British values.
And I will ask Ofsted to enforce an equivalent standard on maintained schools through changes to the Ofsted framework.
Several of the governors whose activities have been investigated by Ofsted have also been active in the Association of Muslim Schools UK - which has statutory responsibilities in relation to state Muslim faith schools.
So we have asked AMSUK to satisfy us that they are doing enough to protect children from extremism and we will take appropriate steps if their guarantees are insufficiently robust.
I have also spoken to the National College for Teaching and Leadership and we will further strengthen the rules so that from now on it is explicit that a teacher inviting an extremist speaker into a school can be banned from the profession.
I will, of course, report in July on progress in all the areas I have announced as well as publishing the findings of the report of Peter Clarke, who is investigating the background behind many of the broader allegations in the Trojan Horse letter.
The steps we are taking today are those we consider necessary to protect our children from extremism - and protect our nation’s traditions of tolerance and liberty.
Mr Speaker, the conclusions of the reports today are clear.
Things that should not have happened in our schools were allowed to happen.
Our children were exposed to things they should not have been exposed to.
As Education Secretary, I am taking decisive action to make sure those children are protected.
Schools that are proven to have failed will be taken over, put under new leadership and taken in a fresh new direction.
Any school could now be subject to rigorous, on the spot inspections - with no advance warning and no opportunities to conceal failure.
And we will put the promotion of British values at the heart of what every school has to deliver for children.
What we have found was unacceptable. And we will put it right.
I commend this statement to the House.
Published: 9 June 2014


Pulp Fiction
One Meme of a Movie
This is a caption
This is where the tribut info goes
This is a link to an outside page


SpryDOMUtils.js contains utility functions that make common DOM manipulation tasks a bit easier.
Nicknamed the "Element Selector", this utility function returns an array of elements within the document that match the specified CSS selector.
Spry.$$(cssSelectorString)
cssSelectorString - String. A CSS selector sequence or comma separated set of selector sequences to use to find elements within the document. For the list of supported CSS 3 selectors, checkout the Element Selector Overview.
Array. An array containing the elements matched with the specified CSS selector. The array returned is augmented with additional utility functions that operate on all elements within the array. Each of these utility functions returns the array itself, which makes it possible to chain successive function calls with dot notation. The list of functions are as follows:
// Add a class to every span. var spans = Spry.$$("span"); spans.addClassName("foo"); // Since the functions added to the array returned by $$ also return the // array itself, it is possible to chain the functions together with dot notation. Spry.$$("div").addClassName("address").addEventListener("click", function(){ alert("clicked!"); }, false);
Adds a class name to the class attribute of the elements returned by the $$() function.
Opposite of removeClassName.
Spry.$$(cssSelector).addClassName(className);
className - String. The name of the class to add to the class attribute of every element returned by the $$() function.
Array. Returns the array it operated on.
// Find all spans and add the class "foo" to each one. Spry.$$("span").addClassName("foo");
Registers a handler/callback for a specific event on all elements returned by the $$() function.
Opposite of removeEventListener.
Spry.$$(cssSelector).addEventListener(eventType, handler, capture);
eventType - String. The name of the event that will trigger the specified handler/callback.
handler - Function. The handler to call when the specified event is triggered. When called, the browser's native event object is passed as the 1st argument to the handler. When called, the 'this' reference within the handler will be the element the handler was registered on. The handler can return a value of false to prevent the event from propagating any further and to prevent the default event action from executing.
capture - Boolean. If true, the handler is triggered during the "capture" phase of the event processing. If false, the handler is triggered during the propagation (bubble up) phase of event processing.
Array. Returns the array it operated on.
// Define a handler function. function MyOnClickHandler(e) { alert("Link was clicked!"); return false; } // Add a click listener on all links on the page. Spry.$$("a").addEventListener("click", MyOnClickHandler, false);
Calls the specified function for each element returned from the $$() function.
Spry.$$(cssSelector).forEach(elementFunc)
elementFunc - Function. A reference to a function that will be invoked for each element in the array returned by the $$() function. When invoked, an element from the array returned by $$() will be passed as the first argument to the function.
Array. Returns the array it operated on.
// Find all elements with a class of "Accordion" and invoke the Accordion widget // constructor for each match. Spry.$$(".Accordion").forEach(function(n) { var a = new Spry.Widget.Accordion(n); });
Removes the specified attribute from all elements returned by the $$() function.
Opposite of setAttribute.
Spry.$$(cssSelector).removeAttribute(attributeName)
attributeName - String. The name of the attribute to remove from each element.
Array. Returns the array it operated on.
// Remove the border attribute from all table tags. Spry.$$("table").removeAttribute("border");
Removes a handler/callback function, that was previously registered with addEventListener(), for a specific event from all elements returned by the $$() function.
Opposite of addEventListener.
Spry.$$(cssSelector).removeEventListener(eventType, handler, capture)
eventType - String. The name of the event that triggers the specified handler/callback.
handler - Function. The handler/callback function to remove. This function must be the *exact* same function that was used when addEventListener() was called to register the handler with the element.
capture - Boolean. If true, the handler was to be triggered during the "capture" phase of event processing. If false, the handler was to be triggered during the propagation (bubble up) phase of event processing. The value here must match the value that was used at the time addEventListener() was called.
Array. Returns the array it operated on.
function MyClickHandler(e) { alert("MyClickHandler was called!"); } // Register the MyClickHandler as an event listener on all divs. Spry.$$("div").addEventListener("click", MyClickHandler, "false"); ... // INCORRECT: The following example specifies a different event so // nothing is removed. Spry.$$("div").removeEventListener("mouseover", MyClickHandler, "false"); // INCORRECT: The following example specifies a different capture value // so nothing is removed. Spry.$$("div").removeEventListener("click", MyClickHandler, "true"); // CORRECT: The following example specifies the exact same set of arguments // that were used when addEventListener() was called so the MyClickHandler // is removed from the listener queue of each element. Spry.$$("div").removeEventListener("click", MyClickHandler, "false");
Removes the specified class name from the class attribute of all the elements returned from the $$() function. If the class attribute of a given element contains more than one class name, this function will only remove the specified class name, leaving all other class names in tact. If you want to remove *all* classes from and element, use removeAttribute("class") instead.
Opposite of addClassName.
Spry.$$(cssSelector).removeClassName(className)
className - String. The name of the class to remove from the class attribute of each element.
Array. Returns the array it operated on.
// Look for all elements that have a class name of "foo" and "bar" on them // and remove only the "foo" class name from each element. Spry.$$(".foo.bar").removeClassName("foo");
Sets the specified attribute and value on each element returned from the $$() function. If a given element already has the specified attribute defined, this function will override its value with the specified value.
To remove an attribute from each element, use the removeAttribute() function.
Special Note:
The underlying implementation of setAttribute() uses the DOM setAttribute() method on each element. In Safari 2.x browsers, calling this function with an attribute that is namespaced results in an attribute being added to the element *without* the prefix. So for example, if you called setAttribute("spry:region", "ds1"), Safari 2.x browsers treat it as if you called setAttribute("region", "ds1"). This behavior is different from all other browsers, and seems to have been fixed in the latest Safari 3.0 beta.
Spry.$$(cssSelector).setAttribute(name, value)
name - String. The name of the attribute to set on each element.
value - String. The value of the attribute to set on each element.
Array. Returns the array it operated on.
// Find the element that has an id of "mainImage" and add a tabindex attribute to it. Spry.$$("#mainImage").setAttribute("tabindex", "0"); // WARNING: The following attempts to set a namespaced attribute on an element // this will not work on Safari 2.x browsers. Spry.$$("#content").setAttribute("spry:region", "ds1");
Sets the specified property and value on the elements returned by the $$() function. It's important to note that properties are *NOT* the same as attributes on a given element.
Spry.$$(cssSelector).setProperty(name, value)
name - String. The name of the property to set on each element.
value - String. The value of the property to set on each element.
Array. Returns the array it operated on.
// The following example creates a tooltip widget and then uses the element // selector and setProperty() functions to store a handle to the widget object // on each element that has a class of 'tooltipTrigger'. var tt = new Spry.Widget.Tooltip("foo"); Spry.$$.("[class='tooltipTrigger']").setProperty("spryToolTip", tt);
Adds the specified CSS properties and values to all of the elements returned by the $$() function.
Spry.$$(cssSelector).setStyle(cssProperties)
cssProperties - String. The CSS properties and values to set on each element. The format of this string is identical to the format that is used by the style attribute.
Array. Returns the array it operated on.
// Change the background color, top and left margin to all divs with a class of "indented". Spry.$$("div.indented").setStyle("margin-left: 8em; margin-top: 2em; background-color: #FF00FF;")
Adds the specified class name to the class attribute of all the elements returned by the $$() function if the class attribute does not already contain it. Removes the class name from a given element if it was already present.
Spry.$$(cssSelector).toggleClassName(className)
className - String. The name of the class to add or remove from the class attribute of each element.
Array. Returns the array it operated on.
// The following example illustrates a scenario where a class name of "selected" // is added to elements on the page to give it the appearance of being selected. // The following code simulates a situation where the developer wants to invert // what is selected, that is, anything that is already selected on screen becomes // unselected, and anything that was not previously selected becomes selected. Spry.$$("div.item").toggleClassName("selected");
Copyright © 2007. Adobe Systems Incorporated.
All rights reserved.


Hello! My name is Andrew Ouatu and I'm a front-end web developer based in Southern California.
My journey into programming has taken me from a fascination with computers and technology since I was young,
gaining professional experience in various technical fields, to finally enrolling and completing an accelerated
web development program which helped lay the foundation and teach me the fundamentals of programming.
I am currently a web development intern at Virscend University and looking for a position that will allow me to further grow my career as a developer
and would love to connect with you to learn more.
List To Table is a dual interface application designed to help people find a place to eat and reserve a table as easily as possible. Customers can quickly check how busy a restaurant is and remotely add themselves to a waitlist. Restaurants can efficiently manage their waitlist and notify customers as soon as a table is available.
Worked with a team of 5 developers to build and complete this project
My responsibilities included creating various React components, integrating the Google Places Autocomplete API, and adding styling with the usage of Materialize and CSS3
Technologies: React.js, Redux, JavaScript, HTML5, CSS3, Materialize, PHP, Node.js, MySQL, Google Places API, Google Maps Distance Matrix API, Google Places Autocomplete API, Twillio API
Buzzer Eater is a single page application that allows users to find local sports bars, view a live updating scoreboard for NBA games, and a NBA twitter feed.
Worked with a team of 5 developers to build and complete this project
My responsibility was retrieving data from the Twitter API and integrating it within our application


I'm a wedding and elopement photographer. Thank you for taking the time to check out my work - take a look around and stay awhile!
I've been a wedding photographer for a little over 9 years now and can't imagine doing anything else! Whether you're having an intimate gathering with your closet friends and family or having a huge party - I want to be there and give you photos that reflect you
want to know me better


House-building in Dublin 'has stalled'
by By Digital Desk staffThe latest Dublin Economic Monitor shows house-building in Dublin has stalled.
The rate of completions has fallen for the first time in four years. It fell by 13.7% during April, May and June to 1,628.
It is the first time the figures have fallen since 2015.
Commencement notices have also dropped; they are down by close to a fifth.
Rents are rising, and are up by 7% on last year to €1,700 a month on average.
A report on international cities earlier this year found that Dublin was now the seventh most expensive place in the world to build.
The international construction market survey by global professional services company Turner & Townsend said Dublin is the third most expensive city in Europe for construction costs, behind only London and Zurich.


{% extends "root.html" %}
{% block content %}
{{ user.userInfo.username + '#' + user.userInfo.discriminator }}
{% if user.currentlyPlaying is not null %}
Currently playing {{ user.currentlyPlaying.gameName }}, {{ user.currentlyPlaying.gameState }}
{% endif %}
Most Recent Activity
| Game Name |
State |
Detail |
Large Asset |
Small Asset |
Duration |
Played Ago |
{% for entry in user.mostRecent %}
| {{ entry.gameName }} |
{{ entry.gameState }} |
{{ entry.gameDetail }} |
{{ entry.largeAssetText }} |
{{ entry.smallAssetText }} |
{{ entry.timePlayed | numberformat("#.##") }} hours |
{{ entry.playedAgo }} |
{% endfor %}
Details
2 Weeks
All Times
| Game |
Hours Played |
{% for entry in user.gameTimeSum %}
| {{ entry['gameName'] }} |
{{ entry['time'] | numberformat("#.##") }} |
{% endfor %}
{% endblock %}