Hi,
I'm a French user of an MK2 system, the good way for me after lot of tests is the Phase angle control, which is suitable with my import energy meter.
The original sketch works fine, but I have to add options, which are causing that a modified sketch could not work good, because it's take too much time.
In the options that I need, there is a temp sensor (DS18B20) and serial datalog (and other tools but not important),
so with good Robin's advices, it seems that Emontx_as_MK2Router is the sketch the most suitable.
The problem is that I'm not familiar with arduino code (that's very a big problem, i know), and I have to add the Phase_Angle control in that sketch.
For the moment, that's not work because:
- I don't really know where add the different parts of PA control, without disturbing the rest of code
- the "energyInBucket" is now a "long", so, the algorithm has to be adapted
I will take care of my options later, but yet, I can not run it properly.
Your advices are welcome
Thanks,
Franck
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
Hi,
I suppose that i'm alone to use phase-angle control,
that explain i'm alone on that thread.,
I didn't have time to go really deep, but i have tried some tests without success.
The originally sketch is running since few time, and the analysis shows me that 75 to 90% of surplus power is diverted, without import power when the system is running.
Today i have only 1Kwc PV power, so there not lot of surplus power, but (if everything is ok) i will get 2.5Kwc next month.
I continue to learn and trying, i hope to find.
Franck
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
I think phase angle control is unpopular because expensive filters are likely to be needed to meet the rules concerning the injection of harmonic currents into the public electricity supply.
I cannot remember now, are you trying to convert Robin's later sketch or are you working with his Phase Angle sketch Mk2_PV_phaseAngle?
If you have not tried the phase angle sketch, I suggest you try that and see if and how it works for you, then develop it and change it to suit your needs.
You do know that you need to change the opto-trigger I.C. from the zero-crossing type to the random phase (non-zero crossing) type? (MOC30XX family - probably the MOC 3021, 22 or 23. The difference between the three is the sensitivity, therefore the current needed to drive it and hence the value of the current-limiting resistor between the output pin and the opto-trigger input.)
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
Hi Robert,
My MK2 is running with phase-angle sketch, but i need to send serial data and checking a temperature sensor. In that sketch, if i modify the originally sketch, it's cause to much work in the loop and is not efficient anymore.
With Robin advices, the Emontx3_4_as_MK2Router sketch is more suitable, because the options I need, are there.
What i'm trying to do is using that sketch but in phase-angle way.
For the output hardware, I 'm using the moc3021+triac (trigger is active high, because I've made a mistake on my PCB design, but it works fine)
There is also another output which can driver an SSR (D2425), it' like a moc3041+triac.
That give me the possibility to use different ways, (phase-angle control or burst)
but for the moment, only the phase-angle control seems suitable with my import energy meter.
Franck
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
Hi,
to be sure, i have made new test today in burst mode (with change the moc)
results are the same as before, balancing correctly, but import and export energy meters increment one after the other, it's not the case in phase-angle control.
I have made that tests to be sure i was not mistaken before.
So, the phase-angle control is really the way to do for me.
I must find a way to update a sketch, with temp sensor (for activate an onboard fan) and a sérial datalog for energy diverted....the most important.
I understand that that way of work is not a priority in UK, maybe energy meters are defferents, in my case, it is not a choice.
But i don't have enough competence, so i'm learning.
Franck
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
I quickly looked at Robin's phase angle sketch. That is not the best place to start. You will find it much better if you start with one of the later burst mode sketches that use interrupts and have the temperature measurements in the main loop and away from the time-critical Interrupt Service Routine (ISR). What needs to be done - confirmed by Robin - is you should take that and remove the burst-mode section and replace it with the phase angle section from the earlier phase-angle sketch.
The serial communications also needs to go in the main loop.
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
Franck, for customers that are using hardware from my Shop , I am generally willing to provide software that has been modified to meet the customer's requirements. This could include phase-angle control as well as temperature monitoring, RF datalogging, Serial etc.
All of my code is freely available for forum members to use and modify, but I am not able to produce special versions for the emonTx on request for free. I'm sure you will understand.
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
Yes Robert, it's what i'm trying to do with the Emontx3-4-asMK2 sketch.
Robin, i understand what you mean, of course, but i didn't ask you to write a special sketch for me.
What i need is some advices to start well.
As i said before, i'm not familiar with arduino, but it's motivating.
I will try again this week.
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
Hi
i've made other tests today, I think that is the algorithm which not work.
I have tried, but i don't understand, whatever i've done ( in this algorithm) and whatever power avaible, it did divert around 666W/h ....(is it the devil in my MK2)
In originally Phase_Angle control, there is also this Data "firstLoopOfHalfCycle" which i could have not placed properly. It may cause troubles.
What is take my mind is the algorithm :
In the original Phase_Angle sketch, we got :
if (energyInBucket <= 1300) { firingDelayInMicros = 99999;}
else
if (energyInBucket >= 2300) { firingDelayInMicros = 0;}
else
{
// complex algorithm which reflects the non-linear nature of phase-angle control.
firingDelayInMicros =(asin((-1 * (energyInBucket - 1800) / 500)) + (PI/2)) * (10000/PI);
if (firingDelayInMicros > 8500) { firingDelayInMicros = 99999;} // never fire
In the later sketches, the "energyInBucket" is became a long, so :
if (energyInBucket_ long<= 1300L) { firingDelayInMicros = 99999;}
else
if (energyInBucket_long >= 2300L) { firingDelayInMicros = 0;}
I hope that point is correct for for the thresholds! maybe not, but this part, disturb me with the algorithm!
else
{
// complex algorithm which reflects the non-linear nature of phase-angle control.
firingDelayInMicros =(asin((-1 * (energyInBucket_long - 1800) / 500)) + (PI/2)) * (10000/PI);
I've done many way to adapt it, (i mean with (long) or L) nothing has worked properly
I think my problem is at this point.
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
You may be suffering integer truncation.
If energyInBucket is a float or an integer, (-1 * (energyInBucket - 1800) will be the same type (a float or an integer). However, when you divide that by 500, if it was a float (which it was), it will divide OK, but if it is an integer, then the result of the division will be truncated to an integer (towards zero I think). From there on, you are working with the wrong number so everything is wrong. The easiest way to correct this is to force it to be a float by making it (-1.0 * (energyInBucket - 1800). When you do that, (energyInBucket - 1800) is done as integers but the -1.0, being a float, forces the result of the subtraction to be promoted to a float and the division and the rest of the arithmetic should work as expected.
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
In the later sketches, the "energyInBucket" is became a long, so :
if (energyInBucket_ long<= 1300L) { firingDelayInMicros = 99999;}
No, that won't work. In the later sketches, the value in the energy bucket is not a "float" within the range 0 - 3600. Instead, it is a much larger "long" value using integer maths on a scale which reflects various factors including powerCal which is different for each hardware platform.
So, you won't want to set the phase-angle operating limit to 1300L. Instead, you will want to set it to the equivalent value in Integer Energy Units (IEU). In the code that you're using, a conversion variable will probably have been defined in setup(), something like IEU_per_Joule. So you would set the limit to 1300 * IEU_per_Joule.
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
The reason for the complicated maths is because the graph of power against firing angle is an "S"-curve, the object is to straighten out the "S" so that the relationship between power and the energy bucket is closer to linear.
The complicated answer is the changing slope of the "S" represents a change in the loop gain, which could result in instability with operating point oscillating about the desired diverted power.
You need both my change and Robin's.
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
Thanks you guys, for explanations,
I understand the range problem, so i think i have to adapt it within range of capacity of energy bucket, maybe like that :
if (energyInBucket_ long<= 1300* CYCLES_PER_SECOND * (1/powerCal_grid)) { firingDelayInMicros = 99999;}
The algorithm must be also adapted with the range. Is it correct?
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
Both changes seems working,
and pass the 60w bulb test (pv simulation)
Test in real power tomorrow, i hope.
If everything is ok for few days, I'll post the code, maybe someone else could be interested.
Thank again , Robin and Robert for your advices which always make me going on good way
After that , i could work on my options, that is another story:
- one of option is reading a 50khz signal from the French energy meters (it's call "Téléinfo") it is a trame which is send to client, the most important are the indexes from the energy meter. So this tool will take the indexes and transmit them to serial datalog.
This hardware input is done with a SFH620.
- drive a fan for the triac heatsink, with the temp sensor (my MK2 is in rail din boxe)
- datalog on temp, indexes, and total energy diverted, so no need to transmit more than one sending per minutes
- maybe, receive data from serial, to activate an output, for example
It is my project, and it's why my hardware is a little different.
Franck
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
Here is a modified version of emonTxV3_4_as_Mk2Router which operates with phase-angle control. The relevant code for the p-a control section is exactly as was posted in 2012.
The p-a logic has been written with floating-point maths, but later versions of my Mk2 PV Router code all use integer maths for speed. To overcome this mismatch, the content of the energy bucket is re-scaled to Joules before the p-a logic is applied at the start every mains cycle.
To maximise the sampling rate, the ADC operates in free-running mode. With 5 analog channels on the go, each set of samples takes approx 5 * 104 us = 520 us to complete. During each 50 Hz mains cycle, the expected number of sample sets will be 20 ms / 520 us = 38.46. By monitoring the minimum number of sample sets per mains cycle, any
lostloss of data should be detected. This value, as displayed at the Serial Monitor, has never dropped below 38.The attached results file shows the system operating with various combinations of load and surplus power. In unchanging conditions, the energy state is constrained very effectively by the p-a control mechanism, generally to within a range of around 10 Joules. As conditions vary, the control mechanism finds its own balance point at a new part of the energy profile. The phase-angle control mechanism operates over an energy range of 1000 Joules.  It may be possible for this range to be considerably reduced - I have not tried to do this.
As with the original version, relevant data for power, energy, temperature and Vrms are transmitted by RF every 5 seconds. These values are also displayed at the Serial Monitor along with the minNoOfSampleSetsPerMC data. Because most of the action takes place within the ISR and its helper functions, Serial statements may only be used in a few sections of this code. Loop() is always a safe place for Serial statements.
When operating in p-a mode, there is a slight buzzing sound from the load, just as with a dimmable light. Suitable filtering is recommended.
For supply meters that have minimal tolerance to reciprocating flows of energy, the phase-angle control version may have advantages over burst-mode alternatives. I would be very interested to hear of any situations where only the p-a control version is suitable for diverting surplus power.
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
Happy to see your new sketch, Robin. Thank for your interest.
It could help someone else, like me, when the burst mode is not suitable with the meters.
Mine has well done yesterday ( today too) and seems work better than the original old one.
I'll test your's, this week-end, it 's very similar.
In my case, there is only 2 CT, so i had cut this part, but i had not cut the burst mode yet.
The algorithm part is in "checkProgress", before the triac driving, and i let it " long". (with the Robert change)
I have now my good point to start, the most important is done.
Thank again,
Franck
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
Franck,
If you wish to test my phase-angle Mk2 code and report your results, do please run the sketch without making any changes. With CT4 around either of the 'live' supply wires and an output stage connected as described in the header, this sketch should work on an emonTx V3.4 without needing any changes. If it doesn't, let me know!
Thanks, Robin
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
Ok, Robin,
i didn't have Emontx but,
i'll try it without changes, my CT (150R burden), the output stage is a moc3021 with BTA, so no problem, i think.
On mine, i'll try to reduce the range to see what is happening and i got a little surplus power between 10-20%, so i'll try to arrange that better.
Anyway, i'll give the results.
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
I'm not be able to check with your sketch, my hardware seems not working with it. It is crashing the atmega.
The problem is certainly caused by the i/o , because i'm using the D10 for the trigger, and it seems to me that it's used for the RF. (or other problem like that)
So, to do the test, I'll have to cut the rf part, like i had done on on my sketch..
I hope someone else could do that test on an Emontx, with all abilities.
On my side, i'm testing with sweet zone reduced to 3000, it's seems not affect the import meter, but reduce a little the surplus power, with a result approaching of 92% energy diverted.
During my MK2 was working today, the results of different meters are:
- import energy meter 56Wh
- export energy meter 70Wh
- diverted energy meter 886Wh
Further tests now will be with more PV power in august.
Franck
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
Franck,
I am sorry that this latest sketch is not of use to you. I thought it was exactly as you had requested. The sketch works well for me on an emonTx v3.4, including all features (RF, Serial, temperature)
The concept of a "sweet zone" is only really helpful for a burst-mode diverter. As your meter will only work with a phase-angle controlled diverter, its "sweet zone" would appear to be very small. It is certainly very much less than 3000 Joules.
While you are trying to get a diverter to work properly alongside your meter, it may be best for the processor to only be doing this one task rather than asking it to do RF datalogging as well. Then you will have no difficulties with the IO port allocations.
I do hope you will get some more sun between now and August :)
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
Robin,
i'm sure your sketch work properly, no doubt.
I had followed your advices to adapt the emontx_3_4_asMK2 sketch in phase-angle control. That works well. My hardware is just different of Emontx, no RF and different i/o, (only 2 CT). So, I'm sure, if i cut the RF part, your latest sketch will work on my MK2.
Today, my PV power is poor (only 1Kwp south), so the surplus power is very little and for testing the MK2 part, i have to turn off some consumers in the house.
Next weeks, i'll have to install more PV power, (it will be 1KWp east+ 500Wp south+1KWp west)
That will be ready in august, so more PV power, more surplus power, and a new heater tank (2000w) spécialy for that.
My MK2 is ready to use in its first function, then, I 'll have to send once per minute some data on the serial port:
- total energy diverted
- temp heater tank
- (temp triac maybe)
- index of a power energy meter / or pulses counting
That's the project.
I do not understand why only phase_Angle control works well with my energy meters.
Franck
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
"I do not understand why only phase_Angle control works well with my energy meters."
The simple answer is your energy meter is designed to work in that way.
The more complicated answer is some electronic energy meters are designed to closely replicate the behaviour of a mechanical Ferraris meter, where the reverse rotation of the disc is prevented by a ratchet mechanism, and some are like yours. We have tried to explain this in the Building Blocks article Energy Meters.
In your case, the "Energy packet" must be very small, very much smaller than the 3600 J of most energy meters, and maybe only big enough for the energy transferred in one mains cycle.
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
hi,
here again,
more PV installed in august, but the the load got a problem in that time.
The heater resistor has been broken.
Anyway, the system is now running properly. The phase angle control suit to me.
Thank again Robin and Robert to have helped a novice.
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
please post the sketch you are using.thank you.
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
Hi dansir
The Sketch for Emontx V3.4 is allready in this page, by Robin
Mine is different, because my hardware is different, but works in same way.
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
hi,for this reason i ask to you to atach the sketch.i am using arduino uno board.thanks.
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
The Mk2 Router sketch with phase-angle control for use with an Arduino Uno is included on my Summary Page. The relevant section is:
Mk2_PV_phaseAngle. A phase-angle controlled variant. This requires a trigger which acts immediately rather than a zero-crossing one. Originally posted, with full supporting information, on 01/11/12 at http://openenergymonitor.org/emon/node/841, this code is available at
http://openenergymonitor.org/emon/sites/default/files/Mk2_PV_phaseAngle....
(the links may not work here, but they should be OK in the Summary Page version)
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
thank you
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
Hi,
i'm still using the phase-angle control,
there is a problem in my datalog, the "divertedEnergyTotal_Wh" stays to 0.
In the Robin's results.txt, the "WH@CT3", it seems staying 0.
I don't really need this value now, but i'm wondering why that part seems not working.
i could need later for monitoring.
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
there is a problem in my datalog, the "divertedEnergyTotal_Wh" stays to 0.
Do you have CT3 clipped around one core of the diverted power cable in the correct orientation? Any current-carrying cable could be used to test and calibrate this part of your system.
In the Robin's results.txt, the "WH@CT3", it seems staying 0.
I don't really need this value now, but i'm wondering why that part seems not working.
The most likely explanation is that I did not have a CT3 in place when I ran that test. I would expect the CT3 sensor to support measurement of real power in exactly the same way as the original (burst-mode) version does.
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
as you know Robin, i'm using a different hardware.
(closer than yours, without display, and with other in/out)
The sketch in use is still mine, so it is probably the problem....
i will looking, but it it's not easy for me.
In my sketch, the burst mode still running (without effect, not wired),
only the phase angle is in used and works perfectly.
The datalog is as i want to, "grid power" "Vrms" "temp" are ok, just missing the total energy diverted.
I think, i have just missing something in the sketch, and maybe it's working in the burst mode and not in phase-angle. I don't know.
It 's maybe simple. But i still not be able to find.
(arduiono codes , it's like my english, i'm learning)
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
happyf, you enquired on this public forum why the results file that Robin had posted contains '0' for all the diverted power values. The answer to this question is that I did not have a CT3 sensor in place at the time. The main purpose of those results was to demonstrate the operation of my phase-angle control algorithm when running on an emonTx V3.4. For that purpose, only CT4 was needed.
If you are running your own version of my software on some other hardware, please do not post your findings on this thread which is clearly intended for the emonTx v3.4. Thanks.
Re: Using an Emontx V3.4 as a MK2 PV Router with phase angle control
Robin,
The answer to this question is that I did not have a CT3 sensor in place at the time.
yes, of course, i didn't thought at that when i asked, it's silly.
When I started that thread with that title, it's simply for staying public on the forum with hardware for most.
I know, my hardware is different, and the sketch too. But the it's really the same way to use.
I don't want open a specific thread for myself, i prefer that staying for all, the phase angle control is already specific.
I will work on my sketch, it's the only part that's not work, and it's probably just a little mistake between the burst mode and phase angle control. I will try to find. As i'm not good on that, not sure.
Sorry that it's feel out of the thread.
Franck


@import uk.gov.hmrc.govukfrontend.views.html.components._
@this(govukCharacterCount : GovukCharacterCount)
@()
@govukCharacterCount(CharacterCount(
id = "threshold",
name = "threshold",
value = Some("Type another letter into this field after this message to see the threshold feature"),
maxLength = Some(112),
threshold = Some(75),
label = Label(
isPageHeading = true,
classes = "govuk-label--l",
content = Text("Can you provide more detail?")
)
))


#include <CTimeManager.h>
Classes | |
| class | CUpdateTick |
Public Member Functions | |
| void | Init (CWindowManager *WindowManager) |
| void | Start () |
| void | Update () |
| void | SkipElapsedTime () |
| double | GetElapsedTime () const |
| Get the time elapsed between this frame and the last frame in seconds. More... | |
| double | GetActualElapsedTime () const |
| Same as ElapsedTime, except before TimeMultiplier is applied. More... | |
| double | GetRunTime () const |
| double | GetTimeMultiplier () const |
| void | SetTimeMultiplier (double const TimeMultiplier) |
| CUpdateTick * | MakeUpdateTick (double const Tick, double const MaxDuration=1.0) |
Protected Attributes | |
| double | ElapsedTime = 0 |
| double | RunTime = 0 |
| double | LastTime = 0 |
| double | TimeMultiplier = 1 |
| vector< CUpdateTick * > | UpdateTicks |
Friends | |
| class | Singleton< CTimeManager > |
Additional Inherited Members | |
| Static Public Member Functions inherited from ion::Singleton< CTimeManager > | |
| static CTimeManager & | Get () |
| static CTimeManager * | GetPointer () |
| Protected Member Functions inherited from ion::Singleton< CTimeManager > | |
| Singleton () | |
| double ion::CTimeManager::GetActualElapsedTime | ( | ) | const |
Same as ElapsedTime, except before TimeMultiplier is applied.
| double ion::CTimeManager::GetElapsedTime | ( | ) | const |
Get the time elapsed between this frame and the last frame in seconds.
| double ion::CTimeManager::GetRunTime | ( | ) | const |
| double ion::CTimeManager::GetTimeMultiplier | ( | ) | const |
| void ion::CTimeManager::Init | ( | CWindowManager * | WindowManager | ) |
| CTimeManager::CUpdateTick * ion::CTimeManager::MakeUpdateTick | ( | double const | Tick, |
| double const | MaxDuration = 1.0 |
||
| ) |
| void ion::CTimeManager::SetTimeMultiplier | ( | double const | TimeMultiplier | ) |
| void ion::CTimeManager::SkipElapsedTime | ( | ) |
| void ion::CTimeManager::Start | ( | ) |
| void ion::CTimeManager::Update | ( | ) |
|
friend |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Generated on Sun May 6 2018 for ionEngine v0.4.5


{{'Confirm you want to apply' | i18next}} {{temp.name}}
{{'This will completely change the look and feel of your site and remove any custom changes you made to the layout and styles of the site.' | i18next}}
{{'' | i18next}}
{{'Confirm you want to reset' | i18next}} {{temp.name}}
{{'This will override any custom changes you made to the Layout or Styles for the site.' | i18next}}


Dashboard
Log
Health
Settings
Patients
15
15 Notifications
4 new messages
3 mins
8 friend requests
12 hours
3 new reports
2 days
See All Notifications
Patients
Patients Profile
Statistics
{{ patient.name }}'s Statistics
Calories
Floors Climbed
Hours Slept
Steps Taken
Weight
Systolic/Diastolic
Patients Profile
Manual Edit


I'll never forget the angel
flying down with cleansing fire
fire too hot to touch.
My lips may be clean
but still there are times
when the scars smoulder with the memory.
And so on I go
your searing stamp of approval
the agony and the ecstasy
a reminder that YHWH is Salvation…


THE TOKYO EXPERIENCE
Explore the Metropolis
What are you interested in?
architecture - art - fashion - culture - experience
ARCHITECTURE
Top 3 Buildings to visit:
- Tokyo Sky Tree
- Tokyo Tower
- Toranomon Hills
ART
The Digital Art Museum is the largest museum in the world for interactive art, the exhibits tell stories and are very impressive and engaging
Visit Beyond The Art to get involved with the Art of the Metropolis for FREE. Sign up to leave YOUR interpretations of the exhibitions and get exclusive information from the artists themselves!
FASHION
Archive Store, Shibuya
'Beautiful underground store for fans of famous Japanese designers like Raf Simons. Tokyo is full of amazing clothing stores thriving with passion'
CULTURE
EXPERIENCE
To conclude, The culture is very different to ours , so you can experience a way of life that is new and inspiring. If you are worried about managing being in a culture foreign to you and you can't afford a tour guide be sure to check out the VirtualGuide app
VirtualGuide App
This app uses Artificial Intelligence to create a virtual tour guide who will answer any questions you have involving your trip to Tokyo. It will use your location to give you information about the things around you and things that you can do. It includes an in-built translator so that the language barrier will not be a problem for you.


--- layout: post status: publish published: true title: Names, ohh, Names! author: display_name: Tomas Restrepo login: tomasr email<EMAIL_ADDRESS>url: http://winterdom.com/ author_login: tomasr author_email<EMAIL_ADDRESS>author_url: http://winterdom.com/ wordpress_id: 565 wordpress_url: http://winterdom.com/2003/01/namesohhnames date: '2003-01-20 16:38:02 +0000' date_gmt: '2003-01-20 16:38:02 +0000' categories: - Personal tags: [] comments: [] ---
I feel like an idiot! After moaning about people writing my name incorrectly, Jeroen Frijters tells me I have his name written incorrectly on my blogroll! Boy, this is downright embarassing...
Now that I fixed it, I can go back and crawl under a rock....


python-microRTS¶
A python client library for microRTS.
This project is a fork of the original python-microRTS, by Chris Bramford. As per the Apache License 2.0, a copy of the license is kept in the project and changes in the code (which are still minor) are documented in the commit history of the project.
If you’re on GitHub and want to see usage examples, API documentation and message descriptions, access the project documentation here.
Installation¶
pip install python-microRTS
Overview¶
By running microRTS in client mode, it will allow an external process to
send actions to agents via a socket interface, as well as update the
external process with the current state of the game. python-microRTS makes
use of this feature, more specifically the SocketAI
interface in the
microRTS library.
By default the SocketAI library will connect to localhost:9898
. The
python client is hard-coded to use these values also.
States are received as JSON strings, which are converted to Python dict
objects. An action is created as a Python list
of dict
s, which is
converted to a JSON string for socket communication.


Created: 05/03/2014
Made in: Kastamonu, TURKEY
By: Anıl ÜNAL
Email<EMAIL_ADDRESS>Hi there! Thank you for purchasing Arwell. If you have any questions that are beyond the scope of this help file, please feel free to email via my user page contact form here or simply send me an email. Thank you!
Hi there! Thank you for purchasing Arwell. If you have any questions that are beyond the scope of this help file, please feel free to email via my user page contact form here or simply send me an email. Thank you!
Arwell uses the powerful PHP framework Laravel 4 on backend. On the front end, it uses Bootstrap 3 for styling and used jQuery for customization. Arwell template is fully responsive and it uses a completely different, open-source admin template called Charisma, that is suitable for admin tasks.
Although you can use Arwell with different databases, the de-facto standard on hostings are MySQL, so I supported it by default. If you need to use something different than MySQL (such as PostgreSQL) you can easily do the change via configuration.
Let me give you a short brief about folder system before you start using Arwell.
app: This is where the backend logic of Arwell is located. app/config: Configuration files are located here. bootstrap: Used by Laravel framework. vendor: All the backend plugins can be found here. assets/home: All the assets of Arwell Template is located here. assets/admin: All the assets of Charisma template is located here. uploads: Anything uploaded by you will be kept here. docs: Documentation of application can be found here.
Files in the main directory are not important for you. They are configuration files of different tools I used while developing this application and completely harmless.
At the time of writing this documentation, demo project is up and live in this website.
Arwell requires:
Patch 1.6
Patch 1.5
Patch 1.4.2
Patch 1.4.1
Patch 1.4
Patch 1.3
Patch 1.2
Patch 1.1
Patch 1.0
Updating
Please check `[application]/docs/updating` folder for the instructions.Open: `app/config/database.php` with your favorite text editor. Find this line:
Change it according to your database credentials. You only need to change the values on right side, and make sure you don't delete quotation marks and commas. Just change host, database, username and password fields and leave the rest as it is.
Now, open: `app/config/site.php`
This is pretty self explanatory, but I'll explain regardless.
Application name is your application's name, you can name it as your company name or anything like that.
Title seperator is the title seperator symbol, used on browsers. Best to keep as ::, or you can use symbols like - if you prefer.
Description is a short description of your website. It will be used by search engines. Write something short that describes your website.
Keywords is keywords of your website. It will be used by search engines while indexing your website. You can seperate words by commas. For example, "gags, gag website, funny" etc.
Enter your website. Installer will run automatically. Enter your administrator account's details.
When you're done, you will see this page, which means you successfully installed your application.
If you did everything correctly so far, it means application is correctly installed. Let's head on creating our facebook application now.
Before you can use Facebook Connect feature, you need to get yourself a Facebook application on https://developers.facebook.com - You may skip this if you don't want to use Facebook Connect feature on your website.
Please follow those steps to create your Facebook application.
If you did this step corretly, you can use "Facebook Connect" feature.
This is all for installing. Let's move onto the most fun part - Logging in and using our application!
Browse `yourwebsite.com`. Click user icon on the right and click login.
Login with the credentials you used previously. Upon logging in, you will be redirected to your admin control panel, which looks like this:
Using Arwell's Admin Control Panel is really easy and straightforward. Let me shortly explain the interface and tell you what you can do.
`Back to site homepage` link at the top brings you back to the website. By clicking on `admin` on the top-right side, you can choose to logout, or edit your profile information. By clicking on `Update application` on the top-right side, you can update Arwell to the newer version without any hassle. Navigation menu can be found on the left side and that is where you will be spending majority of your time.
In this section, you can manage gags on your website. You can delete them, or feature on the sidebar.
You can create categories in this section. They can be named as `Funny, Cosplay, Girls` etc. Users will add their content into those categories.
In this section, you can see messages sent to you by website's `Contact` page. You can decide to reply them or delete their message.
In this section, you can create your own html pages. Creating a page supports both WYSIWYG editor and HTML. Being able to use HTML will let you design your page however you like.
For example, you can create pages such as: "License aggrement", "Privacy", "Legal", "About Us" etc. or even a "Gallery". How cool is that?
You can manage your users in this section. You can give someone `Administrator` access or `Ban` them. You can also create users yourself. This is very useful if you disable registration but still need to give someone an account to use the application.
In this section, you can `Mass approve` `Approve`, `Disapprove` or `Delete` user's comments. By default, comments will be automatically approved. (You can change this feature on Settings Management)
If you are short on time, you can use Mass Approve tool. It will `Approve` all comments.
You can also set Auto-approve setting to `Enabled` on Settings Management, so all comments will automatically be approved upon creation.
You can manage your widgets in this section. Widgets can be used for anything. Custom blocks, advertisement blocks, etc.
In this section, you can configure your everything about your application. You can upload your website logo, set commenting to autoapprove type, change copyright text, add custom google analytics code, give facebook like url and alot more.
There are 4 permission types on Arwell.
Guests: Guests are visitors of your website. They are not logged in by default, so they can't use features like `Commenting`. They can be `Users` if they decide to register and get an account for themself.
Users: Users are visitors of your website, but unlike guests, they have an account so they can use features like `Commenting` or `Access their profile page` to set up their profile. `/profile` page is only usable when you are an User.
 They can access `/admin` page and manage the whole website. Admins are also a type of User, so they can use both `/account` and `/admin` pages until they logout. There is always at least one `Admin` on the website.
Banned: Those guys once was an `User`, but `Admin` decided to ban them (maybe they didn't speak polite enough, who knows) so they can't login anymore. `Admin` can ban or unban people in this admin control panel's `User Settings`.
Every update provided a version.txt in docs/updating folder. You can read those.
This application would not be possible without awesome developers and their open source projects. I would like to thank to: Laravel Framework, Twitter Bootstrap, jQuery and the awesome text editor I built this application with, Sublime Text 2
I really hope you like Arwell.
For any kind of bug reports, feedback, feature requests, or even if you just want to say hello, feel free to email me. I'll be really happy about it.
Anıl ÜNAL, developer of Arwell application


Consider two points, p = (px,py) and q = (qx,qy). We consider the inversion or point reflection, r = (rx,ry) , of point P across point Q to be a 180o rotation of point P around Q.
Given n sets of points P and Q, find R for each pair of points and print two space-separated integers denoting the respective values of rx and ry on a new line.
Input Format
The first line contains an integer, n, denoting the number of sets of points.
Each of the n subsequent lines contains four space-separated integers describing the respective values of px, py, qx, and qy defining points p = (px,py) and q = (qx,qy)
Constraints
Output Format
For each pair of points p and q, print the corresponding respective values of rx and ry as two space-separated integers on a new line.
Sample Input
2
0 0 1 1
1 1 2 2
Sample Output
2 2
3 3
Explanation
The graphs below depict points p, q, and r for the n=2 points given as Sample Input:
1.
Thus, we print rx and ry as 2 2 on a new line.
2.
Thus, we print rx and ry as 3 3 on a new line.


Questions about the closing process?
Are you about to close on your mortgage loan? Our checklist and interactive sample Closing Disclosure form will help you close with confidence.  Our tools help you review your documents in advance to check for errors and make sure the documents reflect the terms you agreed to.
What to do now
1. Review your Closing Disclosure
It’s important to review your Closing Disclosure before closing. Make sure everything is as you expect in advance, while you still have time to ask questions and correct any errors.
Review our interactive sample Closing Disclosure
2. Get ready for closing
Our closing checklist lets you know what to expect at closing and what questions to ask so you will be prepared.
Get our closing checklist
3. Review the rest of your closing documents
In addition to your Closing Disclosure, there are other important documents you will need to sign at closing, such as the promissory note and the deed of trust. Get a head start on reviewing these documents by asking your closing agent for a copy of your closing packet in advance. We can help you navigate these documents.
Navigate your closing documents
4. Get any errors fixed now, before closing
If you find an error in one of your closing documents, call your loan officer or settlement agent and get the error fixed right away. Even minor misspellings can delay your closing or cause big problems in the future.
Learn more about what to do if you find an error
{% include "_templates/ratings-form.html" %}


Scalable CSS Primary Template
Primary
Secondary
Tertiary
404
Page not found :(
The requested page could not be found.


Using mask attacks allows us to match common password patterns. Based on the passwords that we’ve cracked in the past, we identified the fifty most common password patterns (that our clients use). Here’s a handy perl script for identifying those patterns – http://pastebin.com/Sybzwf3K.
Due to the excessive time that some of these masks take, we’ve trimmed our list down to forty-three masks. The masks are based on the types of characters being used for the password They follow the following format:
?u?l?l?l?l?d?d?d
This is equivalent to (1 Uppercase Character) (4 Lowercase Characters) (3 Decimals). Or a more practical example would be “Netsp199”
For more information on masking attacks with oclHashcat – http://hashcat.net/wiki/doku.php?id=mask_attack
Our top forty-three masks take about fifteen minutes to run through and caught (29/326) 8% of the remaining uncracked hashes from this sample.


Incomplete voiding.
None.
The urinary bladder is morphologically normal. No free fluid is seen in the pelvis.
Pre-void bladder: cm; estimated volume ml
Post-void bladder: cm; estimated volume ml
Normal.


--- layout: post title: Respond to Custom Formats in Rails tags: - rails - Solutions - Technology status: publish type: post published: true meta: dsq_thread_id: '452040377' _edit_last: '1' _su_rich_snippet_type: none --- We usually respond some of the known formats in Rails Application like HTML, XML, JavaScript, RSS and some custom. Have you tried to use your own custom format for your Rails Application? Yes you can use your custom format in Rails Application. Here showing a simple Rails Application with responding custom formats. Get a new app
rails new music_libraryGet a scaffold into App
rails generate scaffold mp3 title:string url:string description:textOk so you are ready to serve some music on your app with some formats! Now you have to register MIME types in the Rails Application. For that open up
Rails.root/config/initializers/mime_types.rb
Mime::Type.register 'audio/mpeg' , :mp3Now you can serve
.mp3
and content
For that your respond block should look like
def show @mp3 = Mp3.find(params[:id]) respond_to do |format| format.mp3 { redirect_to @mp3.url } end endNow if you call this action with
.mp3
http://localhost:3000/mp3s/1.mp3You will redirect_to
@mp3
url.
Happy adding custom formats!!


Downlevel-hidden Conditional Comments:
Downlevel-revealed Conditional Comments:
show if IE 8
show if IE 6


@(app: App, iosBroadcastForm: Form[Tuple3[Option[Int], Option[String], Option[String]]], gcmBroadcastForm: Form[Tuple2[String, String]])(implicit flash: Flash) @import helper._ @implicitFieldConstructor = @{ FieldConstructor(fieldConstructorTemplate.f) } @stylesheets = { } @selectedTab = @{ if (gcmBroadcastForm.hasErrors || gcmBroadcastForm.hasGlobalErrors) "1" else "0" } @javascripts = { } @main("Send a broadcast notification", stylesheets = stylesheets, javascripts = javascripts) {
The message will be sent to @DeviceToken.countAllByAppKey(app.key) iOS users.
@form(routes.Push.sendBroadcast(app.key)) {Push notifications are disabled for the iOS platform. Please verify the certificate and its validity.
}The message will be sent to @Registration.countAllByAppKey(app.key) Android users.
@form(routes.Push.sendBroadcast(app.key)) {Push notifications are disabled for the Android platform. Please verify the GCM API Key.
}


{% load i18n %}
{% comment %}Translators: This email is sent to users when their application is waitlisted because there are no more accounts available. Don't translate Jinja variables in curly braces like {{ user }} or {{ partner }}; don't translate html tags either. Translate Wikipedia Library in the same way as the global branch is named (click through from https://meta.wikimedia.org/wiki/The_Wikipedia_Library).{% endcomment %} {% blocktranslate trimmed %}Dear {{ user }},
Thank you for applying for access to {{ partner }} resources through The Wikipedia Library. There are no accounts currently available so your application has been waitlisted. Your application will be evaluated if/when more accounts become available. You can see all available resources at {{ link }}.
Best,
The Wikipedia Library
{% endblocktranslate %}


--- layout: post title: 'Toma 8: 100% Taiwan' date: 2007-08-23 14:34:22.000000000 -05:00 type: post parent_id: '0' published: true password: '' status: publish categories: - English - Korea'07 tags: [] meta: {} author: login: dreamessenceonthemove email<EMAIL_ADDRESS>display_name: darribas first_name: Daniel last_name: Arribas-Bel permalink: "/2007/08/23/toma-8-100-taiwan/" ---
It's already been almost one week in the island and time keeps on running like hell. On sunday, we left Taipei and went down to Taijung, my friends's hometown. All along these days, I've visited many temples (taoist most of them, thought I've also seen confucianist and Buddhist), eaten like I never expected and taken some glimpses of taiwanese nature. It seems I'm sort of lucky because as soon as I left Taipei, it started raining up there and now they are flooding (hope there's no problem with my flight on sunday), and here there's no trace of the typhoon.
I'd write many things about Taiwan and its people, but I prefer taking it easy, writing them down on my notebook (i'm already doing so) and once I get back home, uploading them here with a bit more of "style". By now, I'll just say it's really worth coming to the island.
I still have two days left here and on sunday i'll catch a plane to Seoul, where i'll be for a night and I hope i'll meet all my Korean friends for the last time in a while. On monday after-noon, i'll cath the plane back home and i'll land in Madrid at 21:30 local time. I don't know whether i'll go back home directly or i'll spend one night in Madrid and take the bus to Zaragoza next morning yet. The adventure is coming to end...


{% extends "base.html" %} {% block title %}The Athletes{% endblock %} {% block content %}
Sport: {{ athlete.sport }}
League: {{ athlete.league }}
Team: {{ athlete.team }}
No athletes found in the database.


Firstly, download 'micro:bit program' into your micro:bit to connect Editor
micro:bit programIf your browser doesn't support Web Bluetooth, please install Scratch Link on your PC.
Scratch Link for Windows'Microbit More' is a mod programming environment from Scratch by MIT. You can code using extended blocks of 'Microbit More' in the normal Scratch's way.


A simple wrapper around the 'ical.js' library executing 'Javascript' code via 'V8' (the 'Javascript' engine driving the 'Chrome' browser and 'Node.js' and accessible via the 'V8' R package). This package enables users to parse 'iCalendar' files ('.ics', '.ifb', '.iCal', '.iFBf') into lists and 'data.frames' to ultimately do statistics on events, meetings, schedules, birthdays, and the like.
| Version: | 0.1.5 |
| Imports: | V8 (≥ 1.5) |
| Suggests: | testthat, covr |
| Published: | 2018-12-03 |
| Author: | c( person( "Peter", "Meissner", role = c("aut", "cre"), email =<EMAIL_ADDRESS>), person( "Philipp", "Kewisch", role = "cph", comment = "Ical.js file is is licences under MPL. Source: https://github.com/mozilla-comm/ical.js" ) ) |
| Maintainer: | Peter Meissner <retep.meissner at gmail.com> |
| License: | MIT + file LICENSE |
| NeedsCompilation: | no |
| Materials: | README NEWS |
| CRAN checks: | ical results |
| Reference manual: | ical.pdf |
| Package source: | ical_0.1.5.tar.gz |
| Windows binaries: | r-devel: ical_0.1.5.zip, r-release: ical_0.1.5.zip, r-oldrel: ical_0.1.5.zip |
| OS X binaries: | r-release: ical_0.1.5.tgz, r-oldrel: ical_0.1.5.tgz |
Please use the canonical form https://CRAN.R-project.org/package=ical to link to this page.


Dept No: {{department.no}}, Dept Code: {{department.code}}, Dept Name: {{department.name}}
Dept No: {{department.no}},Dept Code: {{department.code}},Dept Name: {{department.name}}
Dept No:
{{department.no}}
Dept Code:
{{department.code}}
Dept Name:
{{department.name}}


Publications
CodeBPE: Investigating Subtokenization Options for Large Language Model Pretraining on Source Code
Nadezhda Chirkova, Sergey Troshin
DL4Code workshop at ICLR 2022
On the Periodic Behavior of Neural Network Training with Batch Normalization and Weight Decay
Ekaterina Lobacheva*, Maxim Kodryan*,
Nadezhda Chirkova, Andrey Malinin, Dmitry Vetrov
NeurIPS 2021
[arxiv]
[code]
Empirical Study of Transformers for Source Code
Nadezhda Chirkova, Sergey Troshin
ESEC/FSE 2021
[arxiv]
[code]
[video]
A Simple Approach for Handling Out-of-Vocabulary Identifiers in Deep Learning for Source Code
Nadezhda Chirkova*, Sergey Troshin*
NAACL 2021
[arxiv]
[code]
[video]
On the Embeddings of Variables in Recurrent Neural Networks for Source Code
Nadezhda Chirkova
NAACL 2021
[arxiv]
[code]
On Power Laws in Deep Ensembles
Ekaterina Lobacheva,
Nadezhda Chirkova, Maxim Kodryan, Dmitry Vetrov
NeurIPS 2020 (spotlight)
[arxiv]
[code]
[video]
Structured Sparsification of Gated Recurrent Neural Networks
Ekaterina Lobacheva*,
Nadezhda Chirkova*, Alexander Markovich, Dmitry Vetrov
AAAI 2020
[arxiv]
[code]
Bayesian Compression for Natural Language Processing
Nadezhda Chirkova, Ekaterina Lobacheva, Dmitry Vetrov
EMNLP 2018
[arxiv]
[code]


Python API¶
You can use notesdir from your own Python scripts by getting an instance of notesdir.api.Notesdir
.
Example¶
As an example, here’s a script that loops through all your notes to find ones whose titles are palindromes:
from notesdir.api import Notesdir
with Notesdir.for_user() as nd:
for info in nd.repo.query():
if info.title:
title = info.title.lower()
if title == title[::-1]:
print(f'{info.title} [{info.path}]')
By default the notesdir.repos.base.Repo.query()
method returns all notes and a specific subset of available fields, but see the documentation for how to specify a query or request more/fewer fields.
The notesdir.api.Notesdir.for_user()
method loads the configuration from your ~/.notesdir.conf.py
file.
You can also create a notesdir.conf.NotesdirConf
programmatically instead and create an instance from that.
Important classes¶
notesdir.api.Notesdir
- implements the higher-level functionality that’s also available in the CLInotesdir.repos.base.Repo
- used for querying for files, retrieving metadata, and changing files; accessible vianotesdir.api.Notesdir.repo
notesdir.models.FileInfo
- holds file metadatanotesdir.models.FileInfoReq
- specifies which fields of a FileInfo should be populatednotesdir.models.FileQuery
- specifies filter and sort criteria for a query
Changing files¶
To move one or more files and also update all the links to/from those files, use notesdir.api.Notesdir.move()
.
To change file metadata, use notesdir.api.Notesdir.change()
or notesdir.repos.base.Repo.change()
.
If you’re using a SQLite cache, the cache is refreshed when notesdir.repos.sqlite.SqliteRepo
is instantiated (which happens when Notesdir is instantiated).
If your code makes direct changes to files (rather than using one of the change() methods) and also makes use of the Notesdir or Repo classes, you should make sure to call notesdir.repos.base.Repo.invalidate()
after each change.


THE ROAD TO WELLVILLE A film review by Ben Hoffman Copyright 1994 Ben Hoffman
Everyone has heard of Kellogg's Corn Flakes and almost everyone has heard of its home, Battle Creek, Michigan. But how many knew that John Harvey Kellogg was also a a doctor, a surgeon, inventor, owner of a spa and a crusader for "biological living?" Not only did he invent corn flakes but he also invented peanut butter and the electric blanket. Aside from that, he was a flamboyant flake.
Some of his proclamations are, to say the least, very much out of the mainstream of medicine. "The liver is the only thing standing between the smoker and death. Sex is the sewer drain of a healthy body." As a strict practitioner of vegetarianism he would often tell his audience at San (Sanitarium) that "My own stools are gigantic and have no more odor than a hot biscuit. An erection is a flagpole on your grave."
Will Lightbody (Matthew Broderick) who has been feeling sickly (he is not getting enough sex) is induced by his wife, Eleanor (Bridget Fonda), to come to the San for a cure. She, herself, has been there several times and it had, she says, done wonders for her. Hardly has Will been introduced to Dr Kellogg when he is whisked away to be cleansed with a series of enemas.
By this time the comedy is beginning to lose its humor, sinking more and more into childish nonsense. With a little more taste and discretion it could have been an interesting tale about Kellogg. It does have a fine cast. Anthony Hopkins as Kellogg, carrying his role with complete abandon, is aided by John Cusack, Dana Carvey, Michael Lerner as well as Fonda and Broderick and a host of others but to no avail. Director Alan Parker unfortunately did not know when to lay off the dung and get on with the main story. Too bad.
2 bytes 4 Bytes = Absolutely must see. 3 Bytes = Too good to be missed. 2 Bytes = So so. 1 Byte = Save your money.
Ben Hoffman
.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Crypto Predictor
All Coins
Bitcoin
Dogecoin
Ethereum
Litecoin
Iota
Home
(current)
Bitcoin
Ethereum
Litecoin
Predict cryptocurrency trends using real time analysis from Reddit


Births in Poland by Birth Order 2008-2017
Click on the legend items to add or remove lines on the chart.


Base abstract view class. All views MUST inherit from this one, as it has some basic features like event triggering and elements disposing.
class SystemApp.BaseView extends Backbone.View
Holds the parent view. Please note that the parent view does not necessarily the parent DOM container.
parentView: null
DOM elements and variables cache. This is set by calling and passing the selectors to domInit
.
dom: {}
Init the view and set the parent view (if the p
parameter is passed).
baseInit: (parent) =>
@parentView = parent if parent?
Dispose the view element and set it to null.
baseDispose: =>
@stopListening()
try
@remove()
catch ex
console.warn "Could not remove element. Maybe it was already removed?", this
@$el = null
@el = null
@parentView = null
Set the DOM elements. The arr should be an array containing all the selectors which
will populate the dom
property. The key will be made of the selector minus its special characters.
Example:
view.domInit ["#butCreate", "#txtCreate", ".tabs", ".tab-headers"]
domInit: (arr) =>
@addToDom selector for selector in arr
Add the specified DOM element(s) to the dom
cache.
addToDom: (selector) =>
return if not selector? or selector is ""
domId = SystemApp.DataUtil.normalize selector, true
@dom[domId] = $ selector
Set the window title and append the default app name on it.
setTitle: (value) =>
if value?
value = "#{value} - #{SystemApp.Settings.general.appTitle}"
else
value = SystemApp.Settings.general.appTitle
document.title = value
Warn the user by blinking the specified field with a red background.
warnField: (field) =>
extraMs = SystemApp.Settings.general.elementBlinkInterval / 2
redClass = "error"
@addClass field, redClass
_.delay @removeClass, SystemApp.Settings.general.elementBlinkInterval, field, redClass
_.delay @addClass, SystemApp.Settings.general.elementBlinkInterval + extraMs, field, redClass
_.delay @removeClass, SystemApp.Settings.general.elementBlinkInterval * 2, field, redClass
_.delay @addClass, SystemApp.Settings.general.elementBlinkInterval * 2 + extraMs, field, redClass
_.delay @removeClass, SystemApp.Settings.general.elementBlinkInterval * 3, field, redClass
Show a "saved" message next to the specified field, and fade it out after a few seconds.
fieldSaved: (field) =>
parent = field.parent()
parent = parent.parent() if parent.hasClass("toggle")
Do not proceed if container has the class "silent".
return if parent.hasClass "silent"
Last element of the container.
lastChild = parent.children("span:last-child")
Create alert.
alert = $(document.createElement "span")
alert.addClass "saved"
alert.html SystemApp.Messages.saved
Append the "saved" at the very end of the field container, but only if a "saved" is not present yet.
if not lastChild.hasClass "saved"
parent.append alert
Fade out and then remove from the DOM.
alert.fadeOut SystemApp.Settings.general.fadeRemoveDelay * 2, () -> alert.remove()
Remove a DOM element representing a model from the view. This will add the class "removed" and then fade the element out.
modelElementRemove: (el) =>
el.removeClass("active").addClass "removed"
el.fadeOut SystemApp.Settings.general.fadeRemoveDelay, () -> el.remove()
Add the specified class to an element.
addClass: (el, className) =>
el?.addClass className
Remove the specified class from the element.
removeClass: (el, className) =>
el?.removeClass className
Sort the specified list. The default item selector is the tag li
, but you can override this.
To sort descending, set desc
to true.
sortList: (list, selector, desc) =>
selector = "li" if not selector?
desc = false if not desc?
items = list.children(selector).get()
If desc
is true, sort descending.
if desc
sorter = (a, b) ->
a = $ a
b = $ b
keyA = a.text()
keyB = a.text()
return -1 if keyA > keyB
return 1 if keyA < keyB
return 0
items.sort sorter
else
items.sort()
Reappend each item on its correct position after sorting.
$.each items, (i, el) -> list.append el
Check if user is pressing the key combination for delete actions (when deleting a link for example). The default combination is "Ctrl + Left Click", set on the Settings.
isEventDelete: (e) =>
if not e?
return false
return @testModifierEvent(e, SystemApp.Data.userSettings.modifierDelete())
Check if user is pressing key combination for multiple selections (when selecting multiple shapes for example). The default combination is "Shift + Left Click", set on the Settings.
isEventMultiple: (e) =>
if not e?
return false
return @testModifierEvent(e, SystemApp.Data.userSettings.modifierMultiple())
Check if user is pressing the key combination for "send to back" (when reordering map shapes for example). The default combination is "Right Click", set on the Settings.
isEventToBack: (e) =>
if not e?
return false
return @testModifierEvent(e, SystemApp.Data.userSettings.modifierToBack())
Test a modifier key combination against a keyboard / mouse event.
testModifierEvent: (e, modifier) =>
hasLeftClick = modifier.indexOf("leftclick") >= 0
hasRightClick = modifier.indexOf("rightclick") >= 0
hasCtrl = modifier.indexOf("ctrl") >= 0
hasShift = modifier.indexOf("shift") >= 0
hasAlt = modifier.indexOf("alt") >= 0
hasNone = (!hasCtrl and !hasShift and !hasAlt)
keyOk = (hasCtrl and e.ctrlKey) or (hasShift and e.shiftKey) or (hasAlt and e.altKey) or hasNone
mouseOk = (hasLeftClick and e.which is 1) or (hasRightClick and e.which is 3)
return mouseOk and keyOk


12 Aug 2016
17
5
Marvel Entertainment
Daredevil: Returns to Hell's Kitchen.
Heading into Season 2, the “Devil of Hell’s Kitchen” will face challenges new and familiar to save his city!
Read More
Follow Me on:


Using Recursion in Ruby
Cutting down on endless code with nested data structures
by Becky Lehmann
November 23, 2015
Traditional Iteration in Ruby
If you've started to play around with nested data structures in Ruby (layer upon layer of arrays and hashes), you may have begun to see the limitations of standard iterative techniques for accessing inner elements of the structures. I'll give you an example. Recently, I was working on a Ruby problem where I needed to add 5 to every integer in the nested data structure. This required me to iterate through the multiple "layers" of nested structures to access each element. I came up with a solution like this:
number_array = [5, [10, 15], [20,25,30], 35]
def add_five(array)
array.map! do |element|
if element.kind_of?(Array)
element.map! { |inner| inner + 5 }
else
element + 5
end
end
end
Basically, using "map!" I am analyzing the code to say "if the element is an Array, look inside it then add five to the Integer. If it's not an Array, it's an Integer, so just add five." This certainly does the trick and because there are only two layers of nesting, I don't need a lot of code to access the inner elements. But what if I have more nesting? What if I have an array within an array within an array within an array within...you get the idea. This is where recursion can help.
Using Recursion
A method using recursion refers back to itself and essentially looks at the "internal" solutions of the method to decide whether it needs to continue executing the method. For nested data structures, recursion can be incredibly helpful because regardless of the level of nesting, you can identify a "stopping point" for the recursion. Let's look at a refactored version of the problem above, this time using recursion:
def add_five(array)
array.map! do |element|
if element.kind_of?(Array)
add_five(element)
else
element = element + 5
end
end
end
In this solution, we use "map!" again, but to achieve a different type of iteration. In this case, we are essentially saying "Evaluate each element of the code. If the element is an Array, refer back to the add_five method. If it is not an Array (in this case, if it is an Integer), add five to the element." If you run the solution, you'll see we get the same output as the solution above. However, in the refactored solution, recursion allows us to add as many layers of nesting to the data structures as we want. So even if I have an array within an array within an array...etc., add_five will continue referring back to itself until the class is not Array.


Search:
Origin:
Destination:
Reset
Loading
▲
Language:
English
Japanese
UI Theme:
Font Style:
Style 1
Style 2
Style 3
Style 4
Style 5
Style 6
Style 7
Render Mode:
2D
3D
Display Mode:
Vertical
Horizontal
Inward
Outward
Free
Connection Mode:
One-Way
Two-Way
Label Display:
Never
On Hover
On Select
Always
Size Difference:
Stack Threshold:


The page you were looking for does not exist. If you think this is a mistake and one of our pages has gone missing, throw us an email or send us a tweet. Click below to learn more about our CSS framework.


Our vision.
Epsum factorial non deposit quid pro quo hic escorol. Olypian quarrels et gorilla congolium sic ad nauseum.
Epsum factorial non deposit quid pro quo hic escorol. Olypian quarrels et gorilla congolium sic ad nauseum.
Epsum factorial non deposit quid pro quo hic escorol. Olypian quarrels et gorilla congolium sic ad nauseum.
Some great things we're working on.
We hack games.
We lower communication barriers.
This is our dream team.


Nodes of different colours represent the following:
Solid arrows point from a parent (sub)module to the submodule which is
descended from it. Dashed arrows point from a module being used to the
module or program unit using it.
Nodes of different colours represent the following:
Solid arrows point from a parent (sub)module to the submodule which is
descended from it. Dashed arrows point from a module being used to the
module or program unit using it.


The A-Team
Avery
Manager
ID: 1
Email:
<EMAIL_ADDRESS>Office Number: 101
Ashis
Engineer
ID: 2
Email:
<EMAIL_ADDRESS>Github:
AshisPatel
Alfredo
Intern
ID: 3
Email:
<EMAIL_ADDRESS>School: Sauce


An implementation of the Abnormal Blood Profile Score (ABPS, part of the Athlete Biological Passport program of the World Anti-Doping Agency), which combines several blood parameters into a single score in order to detect blood doping (Sottas et al. (2006) <doi:10.2202/1557-4679.1011>). The package also contains functions to calculate other scores used in anti-doping programs, such as the OFF-score (Gore et al. (2003) <http://www.haematologica.org/content/88/3/333>), as well as example data.
| Version: | 0.3 |
| Imports: | kernlab |
| Suggests: | testthat |
| Published: | 2018-10-18 |
| Author: | Frédéric Schütz [aut, cre], Alix Zollinger [aut] |
| Maintainer: | Frédéric Schütz <schutz at mathgen.ch> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| NeedsCompilation: | no |
| Materials: | NEWS |
| CRAN checks: | ABPS results |
| Reference manual: | ABPS.pdf |
| Package source: | ABPS_0.3.tar.gz |
| Windows binaries: | r-devel: ABPS_0.3.zip, r-release: ABPS_0.3.zip, r-oldrel: ABPS_0.3.zip |
| OS X binaries: | r-release: ABPS_0.3.tgz, r-oldrel: ABPS_0.3.tgz |
| Old sources: | ABPS archive |
Please use the canonical form https://CRAN.R-project.org/package=ABPS to link to this page.


Market of ‘fence-sitting’ shoppers delays sale of Lytton Park house
by Sydnia Yu275 Cortleigh Blvd., Toronto
Asking price: $2,849,000
Selling price: $2,745,000
Previous selling price: $810,000 (1990)
Taxes: $11,703 (2019)
Days on the market: 35
Listing agent: Marni Lokash, Harvey Kalles Real Estate Ltd.
The action
When this two-storey Georgian opened its doors to buyers this summer, turnout at the open houses was lower than usual. Requests for private showings tapered off after the first week of marketing. The sluggish response and generally spotty sales pattern in the neighbourhood made it hard to predict what this home would eventually sell for.
“There were a handful that sold around the same time and a handful that stayed on the market for a period of time after this sold,” agent Marni Lokash said.
“It was a slower time in North Toronto as buyers were ‘fence sitting’ to watch how the market would play out. That has changed since the beginning of the fall market.”
What they got
This four-bedroom residence was kept in original form with its yellow brick exterior, a traditional dining room and fireplaces in two separate entertaining areas on the main floor and one in the basement.
All four bathrooms have been retrofitted and the kitchen has been revamped and expanded with a breakfast area and an exit to the south-facing backyard and oversized garage on the 50-foot-by-134-foot lot.
The agent’s take
“It has a beautiful front façade and a custom, thoughtful garden that rivalled many in the neighbourhood,” Ms. Lokash said.
“It has a lovely front hall staircase that has a magnificent art deco appeal.”
However, buyers also appreciated the updates. “The sellers renovated the home approximately 20 years ago and finished the house in a modern standard ahead of its time,” Ms. Lokash said.
“One of the best features was the kitchen and how it had been designed for the homeowners and their love of cooking, complete with a commercial-grade oven.”
 We have a weekly Real Estate newsletter to help you stay on top of news on the housing market, mortgages, the latest closings and more. Sign up today.
Done Deals
Rush to list Allenby home reaps $455,000 premium Asking: $995,000 Selling: $1,450,000
Older North Toronto home draws seven bids Subscriber content Asking: $1,198,000 Selling: $1,320,000
Ledbury Park home buyers not frozen out by April ice storm Asking: $2,995,000 Selling: $3,136,000


This property hasn’t been registered yet. You can’t find out who owns it from this service.
Someone other than the owner (known as the ‘cautioner’) has registered a right or interest in the property. They will be told if anyone tries to register it, and can object to the registration going ahead until their claim has been looked at. You can get their name and address from this service.
Registration has only been compulsory since the 1990s. Property that hasn’t changed hands since then may not be registered.


{% extends 'base.html' %} {% block title %}Ratelimited{% endblock %} {% block content %}
Unfortunately, your request was automatically ratelimited. You should be able to repeat your request after as short while.


{% extends 'base.html' %} {% load staticfiles %} {% block content %}
Allez Race Laboratories design, develop and distribute software to assist cycling clubs all over the world to easily manage the logistics of regular cycling carnivals, events and races. Whatever racing your club members are into, Allez has the solution.


Chapter 5 Communication
Communication is critical. Whether you pursue academia or industry, you will need to be able to communicate with others about your work. We will likely have to go beyond memes in order to do this.
5.1 Lab Meetings
Regular lab meetings are essential for making sure that we move both current and future projects forward. They also help us function as a team. We will use lab meetings to discuss administrative and practical issues, solicit feedback on current analyses and code, discuss current literature, and practice conference and job talks. Our weekly lab meetings will run approximately 1-1.5 hours long. All full-time staff, graduate students and anyone leading a project will be expected to attend weekly lab meetings (unless cleared with Dr. Seaman in advance). For other lab members (e.g. some undergraduate RAs), attendance at lab meetings will be required at full, bi-weekly lab meetings.
During lab meetings, one or two presenters will be responsible for setting the agenda that day. The presenter/s will also be responsible for sharing any relevant materials (e.g. journal article) a couple of days in advance. If you’re scheduled to present and need to cancel or postpone, please give the group 72 hours notice. Everyone is expected to participate in lab meetings. That means reading relevant material beforehand and if you are easily distracted by your computer or phone, put it away.
Generally, attendance at lab meetings in person is expected, unless cleared with Dr. Seaman in advance. There may be times when lab meetings will not occur in person. In these instances, we will have lab meetings online via Zoom. Please consult the lab calendar (see below for link) or lab manager for the Zoom link.
5.2 Individual and Small Group Meetings
All mentors should have weekly meetings with their mentees, lasting between 15 minutes to an hour. For instance, as lab director, I will have weekly meetings with the lab manager, postdocs, staff scientists, and any students leading projects. Ideally, the agenda for these meetings should be set by the mentee; you should provide a quick overview of the progress you’ve made on your project and let your mentor know where you’re stuck and/or need help. You can also use individual meetings to seek feedback about new project development or professional development.
5.3 Asana
Asana is a project-management platform that we will use to track progress on various projects in the lab.
- Asana is basically an orgnaized to-do list. When adding a task, make sure to put a useful description, assign it to someone and set a tentative due date.
- Be realistic and flexible with due dates. Of course you should try to get things done in a timely manner, but sometimes, life happens and you have to adjust.
- If you’re leading a project in the lab, please make sure that your project is listed on Asana. All project-related tasks should be under your project.
5.4 Slack
Slack is a team-collaboration tool that we will use for communication.
- Try to avoid direct messages in Slack. Instead, find a home for your comment or question in an existing channel. This allows you to get answers and feedback from multiple people in the lab.
- When replying to a question or comment, try to use threads. This keeps the conversation organized and easy to navigate. To reply to a post in a thread, click on the bubble with three horizontal lines in the upper right-hand corner of the message (right next to the reaction button). Checkout this website for more info on threads.
- The lab manager, postdocs, and graduate students with UTD phone numbers will have their numbers in their profile on Slack if they need to be urgently contacted.
5.4.1 For Lab Members Running Sessions
The best way to contact the lab manager regarding your scheduled sessions is through Slack.
- Minor scheduling conflicts need to be brought up at least a week in advance, if possible.
- If you’re running late for your session but are on the way, let the lab manager know ASAP!
- Send a message on Slack to the lab manager and your project lead if:
- you have a major change in your weekly schedule.
- there is an emergency and you’re unable to attend your scheduled session on short notice. If neither respond in a timely manner, call the lab manager’s number listed in their Slack profile.
5.5 Email
When contacting me, please use Slack (or Asana) whenever possible. I will try to respond to emails, but please don’t use it for anything urgent.
Likewise, I will try to use Asana/Slack to communicate with you as much as possible. However, sometimes I will need to email you. I expect you will read all email sent to you and respond (if a response is needed) within one business day. If you will not be checking email for more than a couple of days, please consider using a vacation message so that others know you are not available on email (this suggestion also applies to holidays).
The same guideline applies to me: if I don’t respond within one business day, please feel free to follow up (but consider using Slack). If I am not available, I will put up a vacation message.
We do have a lab listserve. Use this sparingly. To send a message to the listserve, email<EMAIL_ADDRESS>If approved, the email will go out to the entire lab.
5.5.1 Calendars
Our lab manager will maintain a lab calendar, associated with our lab email account. You can access this calendar here.
5.5.2 Phone
If the phone rings in the lab, answer it. Most calls will be from potential (or current) research participants, so it is important to be professional - e.g., “Aging Well Lab, this is [your name].”
Lab policy is to check the voicemail daily and call back within one business day.
Please see the lab wiki for specific on speaking to potential research participants.
5.6 Managing Up
I (Dr. Seaman) need your help to stay organized. If you need me to do somethng for you (e.g. review a pregistration, review code), please create a task in Asana with following information:
a meaningful title (e.g. review manuscript for Colleen)
a brief description of what you need (e.g. review the manipulation check on visDM project)
a deadline, ideally a week from now (e.g. your next one-on-one meeting with me)
a location of the file/s you want me to review (or attach document if not saved on Box/GitHub)
I typically focus on non-urgent lab-related materials on MWF during the academic year. Please feel free to follow up on Slack; do not send an email.