for i in range(5): for i in range(20, 25): print("Inner", i) print("Outer", i)
with
with open("file") as f: f.read() with open("file") as f:


Kaplan–Meier survival curves of m 5C regulatory factors in GI cancer. Kaplan–Meier survival curves were drawn based on the differential expression level of m 5C regulatory factors in GI cancer. The red and green curves showed survival curves of the high and low expression groups, respectively. ∗ P < 0.05, ∗∗ P < 0.01, and ∗∗∗ P < 0.001 between the two groups.


Toggling a dynamically-embedded stylesheet's media type can cause a double request to the CSS file.
The script in this page creates a stylesheet link with a non-matching media type (media="none"), injects it into the DOM, and then toggles its media type back to "all" after a timeout. On some page loads, but not all, the stylesheet will be requested twice. This appears to be true regardless of when the media attribute is toggled (it happens via an onload handler as well, for example).
This bug exists in loadCSS and we've so far been unable to work around it.


Our conventional view of history and human progress is wrong. It is founded on pernicious myth of an achievable utopia that in the last century alone caused the murder of tens of millions. In Black Mass John Gray tears down the religious, political and secular beliefs that we insist are fundamental to the human project and shows us how a misplaced faith in our ability to improve the world has actually made it far worse.
Modern politics is a chapter in the history of religion. The greatest of the revolutionary upheavals that have shaped so much of the history of the past two centuries were episodes in the history of faith - moments in the long dissolution of Christianity and the rise of modern political religion. The world in which we find ourselves at the start of the new millenium is littered with the debris of utopian projects, which though they were framed in secular terms that denied the truth of religion were in fact vehicles for religious myths.


My name is Hilary Hamlin, I am a programmer and web developer. I enjoy working on front end applications, and user interfaces.
I spend my spare time collecting comic books,elaborately posing action figures, crocheting, marathoning shows on Netflix, pampering my two spoiled rotten cats, Felicity and Chewbacca, planning and moderating table top adventures, and playing absurd board games with friends.


Claire Williams: “It has been a brutal year for me"
by Louis ShawWilliams have really struggled this season and Claire Williams has admitted that she has had a really tough time so far this year. The team have consistently finished at the back of the grid and only have one championship point. Sir Frank Williams has taken a step down from running the team and Claire has opened up on what the relationship is like now.
“People ask me: ‘How does your dad feel about the situation?’ As if I am going to say: ‘Well he’s thrashing me every day... He’s not,” she says with a wry smile. “He understands that F1 is hard work, it’s tough,” Claire Williams said to The Guardian.
“It has been a brutal year for me, it has been a brutal year for everybody at Williams. We have all had our challenges going through this but I have always said the true test of character is how you react in difficult situations. That you don’t give up when the road gets rocky, you keep fighting.
"That’s one of the greatest lessons my dad taught me. He didn’t have easy racing and easy rides.”
The Williams family will hope that they can make progress over the winter break and that next season the team will be more competitive.


We monetize tables!
- deliver granular networks
- utilize bleeding-edge applications
- matrix cross-platform e-markets
- incubate leading-edge applications
- generate sexy e-markets
- unleash granular supply-chains
- target holistic convergence
- evolve granular niches
- mesh bricks-and-clicks portals
- enhance e-business web-readiness
- utilize sticky synergies
- orchestrate holistic communities
- facilitate dynamic markets


Dashboard
Tables
{{success}}
{{message}}
Select State
{{#each data}}
{{stateName}}
{{/each}}
Select Area
Select Center
Generate Report
Batches Schduled
Batch Name
Time
Teacher
Class Count
Class Max Limit
Classes Took Place
Batch Name
Time
Teacher
Students Present
Student ID
Student Name
Batch
Center
Check-in Time
Check-in By
Check-out Time
Check-out By
Students Absent
Student ID
Name
Batch
Center


PopSockets made an AirPods grip, and it is godawful
Nope, nope, nope
by Bijan StephenThere are some objects that spit in the face of god, either in their design or their intended use, and another such product has just entered our reality. PopSocket — the makers of the now-ubiquitous, carpal tunnel-saving doohickeys that adorn the backs of many smartphones — has now made a PopGrip (its term) that is an AirPods case.
Like the other PopGrips, the PopGrip AirPods Holder can be swapped out for other grips. It’s detachable, and it works with wireless charging. It comes in a variety of colors. It retails for $20, and you can buy it directly from PopGrip online. The only question to ask yourself before you buy it, really, is how high you’d price your pride.
Vox Media has affiliate partnerships. These do not influence editorial content, though Vox Media may earn commissions for products purchased via affiliate links. For more information, see our ethics policy .


|
OpenM++ runtime library (libopenm)
|
trace log implementation class: model event log to console and into log files. More...
Public Member Functions | |
| TraceLog (bool i_logToConsole=false, const char *i_basePath="", bool i_logToFile=false, bool i_useTimeStamp=false, bool i_usePidStamp=false, bool i_noMsgTime=false) | |
| create log instance. More... | |
| ~TraceLog (void) noexcept | |
| cleanup trace log resources | |
| void | init (bool i_logToConsole, const char *i_basePath, bool i_logToFile, bool i_useTimeStamp=false, bool i_usePidStamp=false, bool i_noMsgTime=false) noexcept override |
| re-initialize trace file name(s) and other log settings, it is also create or truncate existing trace file. More... | |
| void | logMsg (const char *i_msg, const char *i_extra=NULL) noexcept override |
| log message | |
| void | logFormatted (const char *i_format,...) noexcept override |
| log message formatted with vsnprintf() | |
| Public Member Functions inherited from openm::LogBase | |
| LogBase (bool i_logToConsole, const char *i_basePath, bool i_logToFile, bool i_useTimeStamp, bool i_usePidStamp, bool i_noMsgTime) | |
| create log instance. More... | |
| ~LogBase (void) noexcept | |
| cleanup log resources | |
| const string | timeStamp (void) noexcept override |
| return timestamp part of log file name: 2012_08_17_16_04_59_148. More... | |
| const bool | isEnabled (void) noexcept override |
| return true if log to console or to file enabled. | |
| void | init (bool i_logToConsole, const char *i_basePath, bool i_logToFile, bool i_useTimeStamp=false, bool i_usePidStamp=false, bool i_noMsgTime=false) noexcept |
| re-initialize log file name(s) and other log settings. More... | |
| void | setRank (int i_rank, int i_worldSize) noexcept override |
| use process rank as log message prefix | |
Additional Inherited Members | |
| Protected Member Functions inherited from openm::LogBase | |
| void | doLogMsg (const char *i_msg, const char *i_extra) noexcept |
| implement log message: log to console and log files | |
| bool | logFileCreate (const string &i_path) noexcept |
| void | writeToLog (ostream &i_ost, const chrono::system_clock::time_point &i_msgTime, const char *i_msg, const char *i_extra=nullptr) |
| Protected Attributes inherited from openm::LogBase | |
| recursive_mutex | theMutex |
| bool | isConsoleEnabled |
| bool | isLastEnabled |
| bool | isLastCreated |
| bool | isStampedEnabled |
| bool | isStampedCreated |
| string | tsPart |
| string | pidPart |
| string | lastPath |
| string | stampedPath |
| bool | isNoMsgTime |
| string | rankPrefix |
| bool | isMsgRank |
| char | msgBuffer [msgBufferSize+1] |
| Static Protected Attributes inherited from openm::LogBase | |
| static const size_t | msgBufferSize = 32768 |
trace log implementation class: model event log to console and into log files.
trace log is faster than "regular" log but may not be flashed on runtime errors.
log can be enabled/disabled for 3 independent streams:
console - cout stream
"last run" file - log file with specified name, truncated on every model run
"stamped" file - log file with unique name, created for every model run
"stamped" name produced from "last run" name by adding time-stamp and pid-stamp, i.e.:
trace.log => trace.2012_08_17_16_04_59_148.1234.log
|
inline |
create log instance.
| [in] | i_logToConsole | if true then log to console |
| [in] | i_basePath | path to "last" log file, if NULL or empty "" then no log file |
| [in] | i_logToFile | if true then enable log to "last" file |
| [in] | i_useTimeStamp | if true then use timestamp suffix in "stamped" file name |
| [in] | i_usePidStamp | if true then use PID suffix in "stamped" file name |
| [in] | i_noMsgTime | if true then not prefix log messages with date-time |
|
overridevirtualnoexcept |
re-initialize trace file name(s) and other log settings, it is also create or truncate existing trace file.
| [in] | i_logToConsole | if true then trace to console |
| [in] | i_basePath | path to "last" trace file, if NULL or empty "" then no trace file |
| [in] | i_logToFile | if true then enable log to "last" file |
| [in] | i_useTimeStamp | if true then use timestamp suffix in "stamped" file name |
| [in] | i_usePidStamp | if true then use PID suffix in "stamped" file name |
| [in] | i_noMsgTime | if true then not prefix log messages with date-time |
| [in] | i_logToConsole | if true then log to console |
| [in] | i_basePath | path to "last" trace file, if NULL or empty "" then no trace file |
| [in] | i_logToFile | if true then enable log to "last" file |
| [in] | i_useTimeStamp | if true then use timestamp suffix in "stamped" file name |
| [in] | i_usePidStamp | if true then use PID suffix in "stamped" file name |
| [in] | i_noMsgTime | if true then not prefix log messages with date-time |
Implements openm::ITrace.


Capacity planning tools {{version.maven}}
Capacity planning tools {{version.maven}}
Home
Employees
(current)
Episodes
Calendar
iCal Imports
Capacity
Absence
Roles
Users


@* * Copyright 2020 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 uk.gov.hmrc.bindingtariffadvicefrontend.views.forms.RadioOption @( field: Field, options: Seq[RadioOption], label: String, allowNone: Boolean = false, inputClass: Option[String] = None, hint: Option[Html] = None, labelClass: Option[String] = None, componentClass: Option[String] = None, id: String = "radio_option_group" )(implicit messages: Messages)


When Liliuokalani, the last queen of Hawai`i, consolidated her lands into a trust, she intended that the funds advance the progress of Native Hawaiians amidst their marginalization by foreigners. As she envisioned the heirs of her legacy enacting such progress, I can hardly imagine that she thought of me - a gangly, idealistic engineer from Illinois - as a steward of her vision. Teach For America, however, brought me to the indigenous town of Waianae, Hawaii, to devote myself to the challenge of educating underserved Hawaiians against a tide of historic underperformance.
In the two years that I worked in Waianae, I witnessed how systems of disadvantage limit the educational success of children. Seeing such systems impact my own students, whom I had grown to care deeply for, invigorated within me a passion to combat educational inequality. When I achieved results with my students, it equipped me with an unwavering sense of possibility, a quality that has shaped my life and that continues to drive my work. What matters most to me is leveraging this sense of possibility to ensure that circumstances that children are born into do not dictate their educational success.
In childhood, I developed a nascent sense of possibility through witnessing the work of my mother. She is a physical therapist who devotes her life to helping children with disabilities. Families come to her believing their child may be wheelchair-bound, but unbeknownst to them, my mom has a propensity to bend reality to align with her unyielding conviction: her kids walk. It doesn't stop there, either. Her kids play hockey, drive cars, and run for political office.
In Waianae, too, a child's fate may seem predetermined. Contrary to Liliuokalani's vision, over 30% of Waianae students drop out, and less than 10% earn a bachelor's degree in 4 years.
My time in Waianae began with a bang - literally when my car exploded on my first commute and figuratively when my student 'Kahikukuokalani' linguistically derailed my Day 1 roll call. The Hawaiian Creole dialect was undecipherable, and my presence as a 'haole' evoked sentiments of distrust.
Compounding the effects of culture shock, my socioeconomic background had not exposed me to systems of disadvantage that work against select groups of people. As a Caucasian in Waianae, I experienced such a system through the subtle but damaging effects of latent racism. I was constantly aware of my skin color and often doubted my acceptance. An example was how I felt preordained to the 'white man in Waianae' stereotype - someone with selfish motivations who doesn't really understand the struggles of the community. This made me feel that no matter how genuinely I cared for my students that my efforts would always be tainted by my skin color.
Growing up in the middle class also shielded me from another system at work in Wai'anae: poverty. I am not referring to poverty's salient effects -kids not owning shoes - but instead to its suppressive social expectations. These expectations manifested themselves anywhere from the 'OMG!' reactions of telling non-Waianae colleagues where I worked, to rental car insurance covering anywhere on Oahu except Waianae. The expectation was always: Waianae is not good. I wondered how my students, contrary to this branding, could internalize the belief that they can be great.
While I tolerated the personal racism, I could not help but rebel against the oppression my students encountered. I worked tirelessly with my students to have 100% of them pass the state assessment compared to the school's 30%. I could not stop there, either. I formed a nonprofit to prepare Waianae students for college that has since grown to support 75 students through the help of 22 mentors and over $125,000 in scholarships. Whenever I see these efforts translate into student progress, I feel a passionate force channeled through me, reaffirming my conviction that this work matters.
The experiences of my time in Hawaii continue to push the boundaries of my thinking to encompass a sense of possibility that educational inequality can be beaten. Whereas my past efforts have supported classrooms and communities, I see before me the greatest opportunity of all - to develop a means to support the millions of students across the country who, like Waianae students, helplessly fall victim to the grip of poverty. What matters most to me is fostering a further-reaching sense of possibility that can commensurately address this nationwide plague of disparity, and that lives up to my mother's legacy of overcoming circumstance to realize each child's full potential.


773-955-1145 | 1453 e. 53rd st. Chicago, IL 60653
| Menu | Delivery | Directions | Postcards
Welcome to Rajun Cajun. Come on in and try our unique dishes like the Alu Bengan or the Sambharo curry - you won't find them anywhere else.


Accepted
:
Declined
:
Pending
:
Tentative
:
Available Car Seats
:
Soprano
:
Alto
:
Tenor
:
Bass
:
of
people come by car
Soprano
:
Alto
:
Tenor
:
Bass
:
Tentative
:
Declined
:


This interface can provide you with all behavior records of VHW platform. If you find any bad behavior records, you can click the button below to report them anonymously!
Anonymous Reporting
Number of Platform Vulnerability Submissions Real-time Data
Number of Platform Patch Submissions Real-time Data


Instead of asking others to write a function, I thought that I'd try and learn a little programming myself, and add a useful addition to the input process list. But thought that I'd start by replicating one of the existing functions to establish how it all works, and build it from there!
I edited the process_model.php to include the menu item;
$list[27] = array(
_("My test"),
ProcessArg::FEEDID,
"my_test",
1,
DataType::REALTIME
);
and added the function to the process_model.php (which should just log the value to the feed);
public function my_test($feedid, $time_now, $value)
{
$this->feed->insert_data($id, $time, $time, $value);
return $value;
}
I also added a description to custom-table-fields.js
case 27:
key = 'test'; type = 2; break;
Everything looked good at this stage, I could add the 'My test' to an input process, and the new feed was created, however the values recorded were not as expected, instead of recording the exact value (as log to feed does) it recorded a very small value (0.00023) which incremented over time. ie just one row in the database with the value incrementing.
What's gone wrong! is there another file somewhere which determines how list [27] processes and records the data in mysql?
Paul
Re: Programming help
Not sure what it implies, but if you want to start with a clone of the log to feed function, you may want to change the parameters list in there:
See:
Re: Programming help
Thanks for the reply Jerome, however with the changes you suggest, I still get a very low value recorded in the database;
0.00813195 instead of the feed value of approx 244 (Mains voltage). The database contains just one row of data and the number increments with each update.
A quick check of the figure recorded suggest that mysql is interpreting the data as 'power to kwh', as after 15 minutes the database is showing 0.0608 (0.244kW / 4 = 0.61kWh) - Coincidence?
How does the database determines how to process the feed value, or should this be determined in the module process_model.php?
Thank you for your patience!
Paul
Re: Programming help
Silly question, you did use your test function on a new input without, say, applying the log to feed an power to kwh/d processes before, did you ?
As it is explained in the input configuration page:
Input processes are executed sequentially with the result being passed back for further processing by the next processor in the input processing list.
Re: Programming help
Mattia, the input processes on the feed are:
x 0.01
Log to feed
My test (this process)
....and I am comparing 'Log to feed' with 'My test', which should be the same??
Paul
Re: Programming help
Hi Paul, my guess is that there's something weird with your config.
The code you originally posted shouldn't have generated any value any time, since as Jerome pointed out you were using the wrong names for the parameters.
I replicated what I think is your setup:
Change process_model.php and add
$list[26] = array(
_("My test"),
ProcessArg::FEEDID,
"my_test",
1,
DataType::REALTIME
);
(the latest entry in my version of process_model is 25, I guess you have more than one experiment going on ...)
Add the method my_test:
public function my_test($id, $time, $value){
$this->feed->insert_data($id, $time, $time, $value);
return $value;
}
Choose an input and add the new process:
In the input list table:
100 2 TEST-CMD-2 x log test
In the Input config table:
1 x 0.01
2 Log to feed TEST-INPUT-2
3 My test TEST-TEST
In my setup feed TEST-INPUT-2 has id 27 (mysql table feed_27) and feed TEST-TEST has id 60 (table feed_60)
Update feed:
curl -n "http://myurl.com/emoncms/input/post.json?node=100&apikey=myapikey&csv=0,22000,0"
(this is a test node in my emoncms, the relevant part is that I am sending the value 22000 for node 100 id 2, the one I set up previously)
And if I check both in emoncms and the db I have the correct value (22000x0.01 =220 ) in both feeds TEST-INPUT-2 and TEST-TEST
My guess is that you are mixing up feed names/looking at the wrong feeds when checking, or you changed something else that is having a side effect on your values .... is that the only change you made to your emoncms setup ? or else, are you experimenting with a live feed that is fed directly through the rfm12php script ? If so, did you restart it after changing the code ?
Mattia
Re: Programming help
Mattia thanks for your patience,
I've deleted out the test feed & input config, returned back to the original modules, so everything is as downloaded from Git.
Rebooted, and made a fresh start using the changes that you have detailed, and yes, now it works, and is logging the value correctly! I don't know where I had gone wrong, but it's obviously working fine now, and I can use this as a template to try and add a few functions that seem to be missing from emoncms, such as 'maximum value' & 'minimum value', which are present in the the emonGLCD but not emoncms, and would be useful not just for temperatures, but also solar generation levels, usage etc.
Paul
Re: Programming help
Hi Paul,
next time you feel like you want to experiment some more in the software development field (pun intended :) you could try a git diff instead of deleting and reloading:
root@raspberrypi:/var/www/emoncms/Modules/input# git diff -w process_model.php
diff --git a/Modules/input/process_model.php b/Modules/input/process_model.php
index d17f0ac..619b149 100644
--- a/Modules/input/process_model.php
+++ b/Modules/input/process_model.php
@@ -216,10 +216,27 @@ class Process
0,
DataType::UNDEFINED
);
+ $list[26] = array(
+ _("My test"),
+ ProcessArg::FEEDID,
+ "my_test",
+ 1,
+ DataType::REALTIME
+ );
+
+
return $list;
}
+ public function my_test($id, $time, $value){
+
+ $this->feed->insert_data($id, $time, $time, $value);
+
+ return $value;
+
+ }
+
public function input($time, $value, $processList)
{
$process_list = $this->get_process_list();
These are the changes I made to process_model.php with respect to the master version
a plus in front means you added a line, a minus means you removed it, the garbage at the beginning is an indicator of where in the file you made the change
If you need to check changes to more than one file, just omit the file name and move to the appropriate folder level to include all the directories in which you made changes:
root@raspberrypi:/var/www/emoncms/Modules# git diff -w
diff --git a/Lib/tablejs/custom-table-fields.js b/Lib/tablejs/custom-table-fields.js
index 3be2f15..5a839fe 100644
--- a/Lib/tablejs/custom-table-fields.js
+++ b/Lib/tablejs/custom-table-fields.js
@@ -113,7 +113,8 @@ var customtablefields = {
key = '- inp'; type = 1; break;
case 23:
key = 'kwhkwhd'; type = 2; break;
- }
+ case 26:
+ key = 'test'; type = 2; break; }
switch(type)
{
diff --git a/Modules/feed/feed_model.php b/Modules/feed/feed_model.php
index 113d48e..f22bd23 100644
--- a/Modules/feed/feed_model.php
+++ b/Modules/feed/feed_model.php
@@ -276,10 +276,11 @@ class Feed
$this->mysqli->query("UPDATE feeds SET value = '$value', time = '$updatetime' WHERE id='$feedid'");
//Check feed event if event module is installed
- // if (is_dir(realpath(dirname(__FILE__)).'/../event/')) {
- // require_once(realpath(dirname(__FILE__)).'/../event/event_model.php');
- // check_feed_event($feedid,$updatetime,$feedtime,$value);
- // }
+ if (is_dir(realpath(dirname(__FILE__)).'/../event/')) {
+ require_once(realpath(dirname(__FILE__)).'/../event/event_model.php');
+ $event = new Event($this->mysqli);
+ $event->check_feed_event($feedid,$updatetime,$feedtime,$value);
+ }
return $value;
}
@@ -308,10 +309,11 @@ class Feed
$this->mysqli->query("UPDATE feeds SET value = '$value', time = '$updatetime' WHERE id='$feedid'");
//Check feed event if event module is installed
- // if (is_dir(realpath(dirname(__FILE__)).'/../event/')) {
- // require_once(realpath(dirname(__FILE__)).'/../event/event_model.php');
- // check_feed_event($feedid,$updatetime,$feedtime,$value);
- // }
+ if (is_dir(realpath(dirname(__FILE__)).'/../event/')) {
+ require_once(realpath(dirname(__FILE__)).'/../event/event_model.php');
+ $event = new Event($this->mysqli);
+ $event->check_feed_event($feedid,$updatetime,$feedtime,$value);
+ }
return $value;
}
diff --git a/Modules/input/process_model.php b/Modules/input/process_model.php
index d17f0ac..619b149 100644
--- a/Modules/input/process_model.php
+++ b/Modules/input/process_model.php
@@ -216,10 +216,27 @@ class Process
0,
DataType::UNDEFINED
);
+ $list[26] = array(
+ _("My test"),
+ ProcessArg::FEEDID,
+ "my_test",
+ 1,
+ DataType::REALTIME
+ );
+
+
return $list;
}
+ public function my_test($id, $time, $value){
+
+ $this->feed->insert_data($id, $time, $time, $value);
+
+ return $value;
+
+ }
+
public function input($time, $value, $processList)
{
$process_list = $this->get_process_list();
... if it looks like it is too complicated .. trust me, once you get used to it it isn't, and it's waay better then deleting everything and restarting from scratch ...
Mattia
Re: Programming help
I totally agree with Mattia about the use of git.
If you want to develop a feature, a bugfix, whatever, here's a possible workflow:
Start from latest revision
Create a branch and move to that branch
After a development step, commit your changes.
While developping, you can check what you modified:
If you did a git add on a file, its changes are "staged", and won't be indicated by a git diff or difftool, you can do an explicit
When your changes are committed, you can checkout any other branch
then come back
You are not supposed to change branch with uncommitted changes. But you can do it by "stashing" your work.
When back to your dev branch, unstash
I'm realizing you already sent pull requests so you probably know a good part of it already.
Re: Programming help
Thanks for the advice Mattia/Jerome.
I've spent tonight switching between commits for familiarity, and surprised how powerful 'Git' is, but I don't think that I possess the necessary programming skills to yet positively contribute to OEM at the standard expected.
But I appreciate the encouragement and in time, I will learn... (but don't hold your breath!)
Paul
Re: Programming help
I've now successfully added a new function to the process_model.php module - 'max value' which record the daily highest value of a particular feed. For example, to record the highest temperature that a particular feed reaches during that day, and resets at midnight. (Similar to facility offered in emonGLCD)
I've had it successfully running on a development branch (thanks Mattia/Jerome!) for a couple of days, and it appears to work well, but would be grateful if you could have a quick look at this section of the code, to ensure there are no obvious mistakes which may cause problems for people later.
Next job - to add a 'min value' to record the lowest daily feed value, which is more problematic, as on first run the database entry is 0, so the present value must be lower than 0 to meet the 'IF' condition, otherwise the new value would remain 0.... hmmm......
Thanks
Paul
--------------------------------------><--------------------------------------
public function max_value($feedid, $time_now, $value)
{
$new_max = 0;
// Get last value
$last = $this->feed->get_timevalue($feedid);
$last_max = $last['value'];
$last_time = strtotime($last['time']);
// Check if we have a new max
if ($last_time) {
if ($value > $last_max)
{
$new_max = $value;
}
else
{
$new_max = $last_max;
}
}
$feedtime = mktime(0, 0, 0, date("m",$time_now), date("d",$time_now), date("Y",$time_now));
$this->feed->update_data($feedid, $time_now, $feedtime, $new_max);
return $value;
}
Re: Programming help
Hi Paul.
Glad you're going down to it !
Here are my comments. Note that I didn't try your code and I don't have an extensive knowledge of the existing code, so I may be wrong.
- You're writing in the database every time, even when the max is unchanged. Why not do the writing only when it was changed ?
- AFAIU, ['time'] is the time when the sample was recorded. When writing in the DB, you are writing the present time, not the time of the max sample. Anyway, if you write only when max changed (see comment above), then it is correct.
- I don't see the daily reset in your code. (You wouldn't notice that in your tests if the max has been increasing each day.) Can you explain me how it is meant to reset ?
- I think (but I may be totally mistaken) that if($last_max)) ensures that a sample is there already, so it could take care of the first run issue.
It could look like this (absolutely not tested !!) :
--------------------------------------><--------------------------------------
public function max_value($feedid, $time_now, $value)
{
// Get last value
$last = $this->feed->get_timevalue($feedid);
$last_max = $last['value'];
$last_time = strtotime($last['time']);
// Check if we don't have a higher value already
if (! ($last_time and ($value <= $last_max))) {
$feedtime = mktime(0, 0, 0, date("m",$time_now), date("d",$time_now), date("Y",$time_now))
$this->feed->update_data($feedid, $time_now, $feedtime, $value);
}
return $value;
}
--------------------------------------><--------------------------------------
This does not address the daily reset issue.
From a quick investigation in process_model.php, I'd be tempted to use something like in the average function :
$result = $this->mysqli->query("SELECT * FROM $feedname WHERE time = '$feedtime'");
if (!$result), then don't define last_time, to force new max being written.
--------------------------------------><--------------------------------------
public function max_value($feedid, $time_now, $value)
{
$feedname = "feed_" . trim($feedid) . "";
$feedtime = mktime(0, 0, 0, date("m",$time_now), date("d",$time_now), date("Y",$time_now));
// Search for a previous value for today
$result = $this->mysqli->query("SELECT * FROM $feedname WHERE time = '$feedtime'");
if (!$result) {
// No value, set variables to 0 to force new value as the max
$last_time =0;
$last_max = 0;
} else {
// There is a value for today
// Get last value (not optimal, we're fetching the DB again for the same line, we'd better use $result, no time to investigate this right now)
$last = $this->feed->get_timevalue($feedid);
$last_max = $last['value'];
$last_time = strtotime($last['time']);
}
// Check if we don't have a higher value today already
if (! ($last_time and ($value <= $last_max))) {
$feedtime = mktime(0, 0, 0, date("m",$time_now), date("d",$time_now), date("Y",$time_now))
$this->feed->update_data($feedid, $time_now, $feedtime, $value);
}
return $value;
}
--------------------------------------><--------------------------------------
OK, this was my 2 cent feedback. Gotta go. Sorry for the crappy code indentation.
I hope I'm not confusing. Things are a bit blurry to me and it is quite possible that I imagine problems where your implementation was correct already.
Good luck !
Re: Programming help
Hi Jerome
I've used the format used by the 'power to kwh/d' function, and added;
$list[27] = array(
_("max value"),
ProcessArg::FEEDID,
"max_value",
1,
DataType::DAILY
);
....to the process_model.php file.
By setting it to 'DAILY', only one row is created per day in the database, and the value is updated on each cycle, with a fresh row being created at midnight., and which will contain that 'new' day's max reading. So the database looks like this, with just one row for each 24hrs period.
I thought that this would be OK, as it doesn't significantly add to the database size, yet provides an historical daily record for later processing. Unfortunately, I don't fully understand how this works under the hood - just copied it by example & desperation!
Paul
Re: Programming help
Oh right, I missed the "DataType::DAILY" part. I had the feeling there was something I didn't understand. I don't know how this works under the hood either. I shall look into it. Someday...
It is possible that my other points apply. For instance, if value is less than max, you don't have to write anything, so I believe it is useless to do $new_max = $last_max, then write $new_max. Just a hint. I could be wrong.


Event Location:
Jose Rizal University
80 Shaw Boulevard
Mandaluyong City, , Philippines
Abstract:
In this session I'll discuss about the differences between SQL and NoSQL, what roles these data stores play in IT, social media, and mobile, and how to figure out which one you need to learn and use for your applications.
Speaker(s): Jon Limjap,
Abstract:
Indexes allow SQL Server to access your data in the most efficient manner. Understanding how SQL Server indexes work under-the-hood will give you insights on how to design effective indexing strategies. In this session, you will learn what indexes are, how they work, basic indexing strategies and how query performance is affected by indexes.
Speaker(s): Edwin Sarmiento,
Abstract:
Windows PowerShell is becoming the scripting language of choice for managing Microsoft servers and workstations. And while T-SQL is still the scripting language for DBAs to administer and manage SQL Server, there are tons of stuff that can be easily done with Windows PowerShell. In this session, learn Windows PowerShell from the ground up and how you can use it with SQL Server Management Objects (SMO) to administer and manage a SQL Server instance.
Speaker(s): Edwin Sarmiento,
Abstract:
It will discuss a different ways of doing an automated backup and restoring database based in a real world scenario.
Speaker(s): Jennifer Osorio,
Abstract:
When choosing the appropriate SQL Server HA/DR solutions, it is important to understand the SQL Server Transaction Log as it affects any solution you choose. In this session, we will look at transaction log basics, how logging and recovery works and how it affects all of the HA/DR solutions available in SQL Server. You'll be surprised to know that the transaction log is the most important part of your database.
Speaker(s): Edwin Sarmiento,
Abstract:
SQL Window Functions Overview SQL Server 2008 Functions SQL Server 2012 Functions Wrap Up
Speaker(s): Mark Nathaniel Ortigas,
Abstract:
Protect the data consistency using all of the tools you have available that is usually in a behind-the-scenes manner that the client doesn’t really have to worry about. Upon the end of the presentation, audience will be able to learn and decide what type of protection to use and where it is applicable.
Speaker(s): Henry Hutalle,
This is a list of speakers from the XML Guidebook records. The details and URLs were valid at the time of the event.
Contact: http://bassplayerdoc.wordpress.com
Edwin Sarmiento is a SQL Server MVP from Ottawa,Canada specializing in high availability,disaster recovery system infrastructures running on the Microsoft server technology stack.He is very passionate about technology but has interests in music,professional organizational development,leadership management matters when not working with databases.He lives up to his primary mission statement -“To help people and organizations grow and develop their full potential as God has planned for them."
Contact: http://dotnet.kapenilattex.com
Jon is a senior software developer for ITRS and Microsoft MVP for C#. Jon has been writing software professionally for more than a decade. Earlier in his career he made enterprise Microsoft .NET applications for desktop and web, but recently has been developing web and mobile applications using iOS, Java, HTML and Javascript. Jon has been active in the development community since the mid-2000s and is a member of PHINUG, PHISSUG, and the Devcon Foundation.
Contact: http://bassplayerdoc.wordpress.com
Edwin Sarmiento is a SQL Server MVP from Ottawa,Canada specializing in high availability,disaster recovery system infrastructures running on the Microsoft server technology stack.He is very passionate about technology but has interests in music,professional organizational development,leadership management matters when not working with databases.He lives up to his primary mission statement -“To help people and organizations grow and develop their full potential as God has planned for them."
Jennifer is currently working as an Enterprise Database Administrator of Takecare Insurance Company, Inc. prior to that, she has worked under developer capacity on J2EE and ABAP systems with MySQL and SAPDB before she joined Fortune Tobacco Corporation where she gained experience working in SQL Server.
Contact: http://bassplayerdoc.wordpress.com
Edwin Sarmiento is a SQL Server MVP from Ottawa,Canada specializing in high availability,disaster recovery system infrastructures running on the Microsoft server technology stack.He is very passionate about technology but has interests in music,professional organizational development,leadership management matters when not working with databases.He lives up to his primary mission statement -“To help people and organizations grow and develop their full potential as God has planned for them."
Implementation Project Manager for SAS Institute Philippines Data Management. Analytics. Visualization Robotics Process Automation Director and Technology Evangelist for SQL Technologies of www.phil-it.org.ph
Principal Developer with Magenic Manila
The following is a list of sponsors that helped fund the event.


--- layout: default ---
Cognitive science and artificial intelligence (AI) have a long-standing shared history. Early research in AI was inspired by human intelligence and shaped by cognitive scientists (e.g., Elman, 1990; Rumelhart and McClelland, 1986). At the same time, efforts in understanding human learning and processing used methods and data borrowed from AI to build cognitive models that mimicked human cognition (e.g., Anderson, 1975; Tenenbaum et al., 2006; Lieder & Griffiths, 2017; Dupoux, 2018). In the last five years the field of AI has grown rapidly due to the success of large-scale deep learning models in a variety of applications (such as speech recognition and image classification). Interestingly, algorithms and architectures in these models are often loosely inspired by natural forms of cognition (such as convolutional architectures and experience replay; e.g. Hassabis et al., 2017). In turn, the improvement of these algorithms and architectures enabled more advanced models of human cognition that can replicate, and therefore enlighten our understanding of, human behavior (Yamins & DiCarlo, 2016; Fan et al., 2018; Banino et al., 2018; Bourgin et al., 2019). Empirical data from cognitive psychology has also recently played an important role in measuring how current AI systems differ from humans and in identifying their failure modes (e.g., Linzen et al., 2016; Lake et al., 2017; Gopnik, 2017; Nematzadeh et al., 2018; Peterson et al., 2019; Hamrick, 2019).
The recent advancements in AI confirm the success of a multidisciplinary approach inspired by human cognition. However, the large body of literature supporting each field makes it more difficult for researchers to engage in multidisciplinary research without collaborating. Yet, outside domain-specific subfields, there are few forums that enable researchers in AI to actually connect with people from the cognitive sciences and form such collaborations. Our workshop aims to inspire connections between AI and cognitive science across a broad set of topics, including perception, language, reinforcement learning, planning, human-robot interaction, animal cognition, child development, and reasoning.
| Adam Marblestone | Aishwarya Agrawal | Andrea Banino |
| Andrew Jaegle | Anselm Rothe | Ari Holtzman |
| Bas van Opheusden | Ben Peloquin | Bill Thompson |
| Charlie Nash | Danfei Xu | Emin Orhan |
| Erdem Biyik | Erin Grant | Jon Gauthier |
| Josh Merel | Joshua Peterson | Kelsey Allen |
| Kevin Ellis | Kevin McKee | Kevin Smith |
| Leila Wehbe | Lisa Anne Hendricks | Luis Piloto |
| Mark Ho | Marta Halina | Marta Kryven |
| Matthew Overlan | Max Kleiman-Weiner | Maxwell Forbes |
| Maxwell Nye | Michael Chang | Minae Kwon |
| Pedro Tsividis | Peter Battaglia | Qiong Zhang |
| Raphael Koster | Richard Futrell | Robert Hawkins |
| Sandy Huang | Stephan Meylan | Suraj Nair |
| Tal Linzen | Tina Zhu | Wai Keen Vong |


Hello everyone and welcome to my website
- My name is Afraa Othman
- A 24 years old female
- I'm Jordanian and I live in my beloved Amman
- I'm intrested in learning new things and to improve my skills and that is the reason behind entring the software development field
- High school at alaqeeq school
- Bachelor degree in medical analysis from the university of Jordan
- Worked as a content writer at Telescope productions 4-9/2019
- Worked as a content profreader at Mawdoo3.com 10/2019-9/2020
- Software development course 3-2021
I like watching series in my free time and below is my top 10 series:
- Vampire diaries
- CSI Miami
- CSI NY
- Emily in paris
- Between
- Good girls
- Designated Survivour
- Anne with an E
- Software development course 3-2021
- Phi


I'm a software engineer living outside Portland, ME, USA.
During my working hours I build things for the web with the wonderful folks at US Squash and Club Locker.
JavaScript and the front end in general are particular passions of mine but I do enjoy other areas of development as well.
Mostly, I like learning new things and building great software.


Editing Dynamic Tree
[ File Path: exedit/async_edit.html ]
1, Explanation of editing dynamic tree
- 1) This Demo is based on the "Advanced Edit Nodes" to modify, and open to drag and drop functionality, can be compared with that demo.
- 2) At the same time set the editing mode and dynamic mode can be achieved editing dynamic tree.
- 3) zTree improved editing capabilities in dynamic mode, if the parent node hasn‘t loaded the child nodes, it will first load the child nodes before it add child node.
2, Explanation of setting
- 1) Use editing features, please refer to "Normal Drag Node Operation" & "Basic Edit Nodes" demo of the instructions.
- 2) Use dynamic loading, please refer to "Dynamic Tree with Ajax" demo of the instructions.
3, Explanation of treeNode
- No special requirements on the node data, please refer to "Dynamic Tree with Ajax" & "Normal Drag Node Operation" & "Basic Edit Nodes" demo of the instructions


Operational Status: [Status]
sslip.io is a DNS (Domain Name System) service that, when queried with a hostname with an embedded IP address, returns that IP Address. It was inspired by xip.io, which was created by Sam Stephenson.
Here are some examples:
| Hostname / URL | IP Address | Notes |
|---|---|---|
| <IP_ADDRESS>.sslip.io | <IP_ADDRESS> | dot separators |
| https://52-0-56-137.sslip.io | <IP_ADDRESS> | dash separators, sslip.io website mirror (IPv4) |
| www.<IP_ADDRESS>.sslip.io | <IP_ADDRESS> | subdomain |
| www.192-168-0-1.sslip.io | <IP_ADDRESS> | subdomain + dashes |
| https://www-78-46-204-247.sslip.io | <IP_ADDRESS> | embedded, sslip.io website mirror (IPv4) |
| –1.sslip.io | ::1 | IPv6 — always use dashes |
| https://2a01-4f8-c17-b8f--2.sslip.io | 2a01:4f8:c17:b8f::2 | sslip.io website mirror (IPv6) |
sslip.io can be used to brand your own site (you don’t need to use the sslip.io domain). For example, say you own the domain “example.com”, and you want your subdomain, “xip.example.com” to have xip.io-style features. To accomplish this, set the following three DNS servers as NS records for the subdomain “xip.example.com”
| hostname | IP address | Location |
|---|---|---|
ns-aws.nono.io. |
<IP_ADDRESS> | USA |
ns-gce.nono.io. |
<IP_ADDRESS> | USA |
ns-azure.nono.io. |
<IP_ADDRESS> | Singapore |
Let’s test it from the command line using dig
:
dig +short 169-254-169-254.xip.example.com @ns-gce.nono.io.
Yields, hopefully: [connection timed out]
<IP_ADDRESS>
If you want to run your own DNS server, it's simple: you can compile from source or you can use one of our pre-built binaries. In the following example, we install & run our server within a docker container:
docker run -it --rm fedora curl -L https://github.com/cunnie/sslip.io/releases/download/1.3.1/sslip.io-dns-server-linux-amd64 -o dns-server chmod +x dns-server ./dns-server 2> dns-server.log & dnf install -y bind-utils dig +short 127-0-0-1.sslip.io @localhost # returns "<IP_ADDRESS>"
If you have a wildcard certificate for your sslip.io-style subdomain, you may install it on your machines for TLS-verified connections.
When using a TLS wildcard certificate in conjunction with your branded sslip.io style subdomain, you must use dashes not dots as separators. For example, if you have the TLS certificate for *.xip.example.com, you could browse to https://52-0-56-137.xip.example.com/ but not https://<IP_ADDRESS>.xip.example.com/.
For a real-world example of a TLS wildcard cert and sslip.io domain, browse https://52-0-56-137.sslip.io.
VMware employees can download the *.sslip.io TLS private key here.
[Status] A status of “build failing” rarely means the system is failing. It’s more often an indication that when the servers were last checked (currently every six hours), the CI (continuous integration) server had difficulty reaching one of the three sslip.io nameservers. That’s normal. [connection timed out]
DNS runs over UDP which has no guaranteed delivery, and it’s not uncommon for the packets to get lost in transmission. DNS clients are programmed to seamlessly query a different server when that happens. That’s why DNS, by fiat, requires at least two nameservers (for redundancy). From IETF (Internet Engineering Task Force) RFC (Request for Comment) 1034:
A given zone will be available from several name servers to insure its availability in spite of host or communication link failure. By administrative fiat, we require every zone to be available on at least two servers, and many zones have more redundancy than that.


Made specifically for Gonzofest 2014. Earthenware and acrylic paint. The shroom cap is actually a lid, and the stalk has the top third as storage space. It's an ode to Hunter S. Thompson and his artistic partner in crime, Ralph Steadman. I'm proud to say, that it was displayed, sandwiched between two of Mr. Steadman's prints at OPEN gallery during Gonzofest 2014. It was also featured in the 2015 "Fear And Loathing" show at the Carnegie Center in Lexington, KY.
If you do a Google search of "Spirit of Gonzo" by Ralph Steadman, you'll find my inspiration for the top to my shroom.
Stalk, complete with 6 fingered freak fist holding a peyote button, that was so associated with Hunter S. Thompson. It first appeared on campaign posters designed by artist Tom Benton, for Hunter's run for Sheriff of Aspen, Colorado in 1970. There are also 2 Fleur Di Lis on the stalk as a nod to Hunter's Louisville roots. I chose black to refer to the ink used to write Hunter's words.
Inside view of the stalk's storage area. At the bottom is another type of Steadman style bat. I call it an "ink blot bat".
My little shroom, nestled proudly between two genuine and signed Steadman prints!


|
| def | __init__ (self, A, B, Q, R, const, g=None) |
| |
|
def | evaluate (self, time, state) |
| |
|
def | get_closed_loop_A (self) |
| |
|
def | get_closed_loop_g (self) |
| |
|
def | get_P (self) |
| |
|
def | get_Q (self) |
| |
|
def | get_R (self) |
| |
|
def | get_p (self) |
| |
|
def | get_uss (self) |
| |
|
def | get_xss (self) |
| |
|
def | set_const (self, time, target_id, const) |
| |
| def | cost_to_go (self, time, state1, const_state) |
| |
|
|
| A |
| |
|
| B |
| |
|
| Q |
| |
|
| R |
| |
|
| P |
| |
|
| K |
| |
|
| Bt |
| |
|
| RBt |
| |
|
| BRBt |
| |
|
| g |
| |
|
| p |
| |
|
| const |
| |
|
| Acl |
| |
|
| g_cl |
| |
|
| tracking |
| |
|
| xss |
| |
|
| uss |
| |
Class for linear quadratic tracker for constant state tracking
◆ __init__()
| def DOT_assignment.controls.LinearFeedbackConstTracker.__init__ |
( |
|
self, |
|
|
|
A, |
|
|
|
B, |
|
|
|
Q, |
|
|
|
R, |
|
|
|
const, |
|
|
|
g = None |
|
) |
| |
LinearFeedbackConstTracker constructor
Input:
- A: linear time-invariant state matrix
- B: linear time-invariant input matrix
- Q: control weighting matrix for state
- R: control weighting matrix for control inputs
- const: constant state to track
- g: state to track in error dynamics system
◆ cost_to_go()
| def DOT_assignment.controls.LinearFeedbackConstTracker.cost_to_go |
( |
|
self, |
|
|
|
time, |
|
|
|
state1, |
|
|
|
const_state |
|
) |
| |
Computes cost_to_go for a agent/target to track a single agent/target
The documentation for this class was generated from the following file:
- DOT_assignment/controls.py


Tutorial for the SpacePyLibrary
This is the tutorial for the SpacePyLibrary. It shall provide useful examples
for representative use cases of the SpacePyLibrary:
General
Example_1: Getting started
Example_2: Logging
Example_3: Configuration
Example_4: More configuration
CCSDS Telemetry Frames
Example_5: Decode Telemetry Frame
Example_6: Extract Packets from Telemetry Frame
Example_7: Read Telemetry Frames from a file
All examples in this tutorial are available in the SpacePyLibrary GIT
repository in directory Tutorial
. The environment for these
examples must be set, before they can be executed. Depending on the platform,
this shall be done in the Tutorial folder with the following command:
on Windows:
env.bat
on Unix with c-shell:
source env.csh
on Unix with bourne-shell:
source env.sh
The first example is a simple program that prints a
"hello, world"
message:
from UTIL.SYS import LOG
LOG("hello, world")
The program shall be started from the command line:
on Windows:
python3 Example_1.py
on Unix:
python3 Example_1.py
or
./Example_1.py
During the execution the following is printed:
hello, world
In Example_1 the logging function
LOG(...)
has been used. Beside this function there are other
functions that can be used as well:
LOG
: logs a message
LOG_INFO
: logs an info message
LOG_WARNING
: logs a warning message
LOG_ERROR
: logs an error message
These functions shall be used in preference to the standard Python
print
statement, because it passes the information to a logging
framework which is more powerfull and flexible. Another advantage is the
portability between Python 2 and Python 3.
Below is an example code for using the different logging functions:
from UTIL.SYS import LOG, LOG_INFO, LOG_WARNING, LOG_ERROR
LOG("this is a simple message")
LOG_INFO("this is an info message")
LOG_WARNING("this is a warning message")
LOG_ERROR("this is an error message")
The program shall be started from the command line:
on Windows:
python3 Example_2.py
on Unix:
python3 Example_2.py
or
./Example_2.py
During the execution the following is printed:
this is a simple message
INFO: this is an info message
WARNING: this is a warning message
ERROR: this is an error message
This examples shows how configuration items are used in the library. The
configuration items ENV_VAR_1
and ENV_VAR_2
are
defined in the program for this purpose:
import UTIL.SYS
SYS_CONFIGURATION = [
["ENV_VAR_1", "123"],
["ENV_VAR_2", "second configuration variable"]]
UTIL.SYS.s_configuration.setDefaults(SYS_CONFIGURATION)
The program shall be started from the command line:
on Windows:
python3 Example_3.py
on Unix:
python3 Example_3.py
or
./Example_3.py
During the execution the following is printed:
INFO: configuration variables
ENV_VAR_1 = 123 (default)
ENV_VAR_2 = second configuration variable (default)
The system prints automatically all the configuration items that are defined
in the SYS_CONFIGURATION
list. The suffix (default)
indicates that the value is hardcoded default value defined in the program.
It is possible to overwrite the hardcoded value via setting of a related
environment variable before the program is started, e.g.:
on Windows:
set ENV_VAR_1=10203040
on Unix with c-shell:
setenv ENV_VAR_1 10203040
on Unix with bourne-shell:
export ENV_VAR_1=10203040
When the program is re-started from the command line, then the following is
printed:
INFO: configuration variables
ENV_VAR_1 = 10203040 (env)
ENV_VAR_2 = second configuration variable (default)
The overwritten value is marked with the suffix (env)
.
This examples is an enhancement of Example_3. It
shows how configuration items can be used in the application code:
from UTIL.SYS import LOG
import UTIL.SYS
SYS_CONFIGURATION = [
["ENV_VAR_1", "123"],
["ENV_VAR_2", "second configuration variable"]]
UTIL.SYS.s_configuration.setDefaults(SYS_CONFIGURATION)
LOG("ENV_VAR_1 = " + UTIL.SYS.s_configuration.ENV_VAR_1)
LOG("ENV_VAR_2 = " + UTIL.SYS.s_configuration.ENV_VAR_2)
The program shall be started from the command line:
on Windows:
python3 Example_4.py
on Unix:
python3 Example_4.py
or
./Example_4.py
During the execution the following is printed:
INFO: configuration variables
ENV_VAR_1 = 123 (default)
ENV_VAR_2 = second configuration variable (default)
ENV_VAR_1 = 123
ENV_VAR_2 = second configuration variable
The configuration items can be accessed with their name as attribute of
the object in UTIL.SYS.s_configuration
.
Note: The program is also using the logging function
LOG(...)
, which has been discussed in
Example_1 and
Example_2.
Note: All configuration items are provided in the application code as
strings. If the item contains in fact a number which shall be used for
numerical calculations, then it must be converted, e.g.:
myNumber1 = int(UTIL.SYS.s_configuration.ENV_VAR_1)
A common use case is the processing of telemetry frames that are sent from
the spacecraft. The SpacePyLibrary provides the required functionality to
encode and decode telemetry frames which shall be compliant to the CCSDS
standard. This example shows a simple way to perfrom the decoding:
from UTIL.SYS import LOG
import CCSDS.FRAME
TM_FRAME = [
0x2F, 0x61, 0x00, 0x00, 0x18, 0x00, 0x0C, 0xD2,
0xC0, 0x00, ................, 0x01, 0x00, 0x00,
0x00, 0xBB, 0xD6]
tmFrame = CCSDS.FRAME.TMframe(TM_FRAME)
LOG("versionNumber = " + str(tmFrame.versionNumber))
LOG("spacecraftId = " + str(tmFrame.spacecraftId))
LOG("virtualChannelId = " + str(tmFrame.virtualChannelId))
LOG("operationalControlField = " + str(tmFrame.operationalControlField))
LOG("masterChannelFrameCount = " + str(tmFrame.masterChannelFrameCount))
LOG("virtualChannelFCountLow = " + str(tmFrame.virtualChannelFCountLow))
LOG("secondaryHeaderFlag = " + str(tmFrame.secondaryHeaderFlag))
LOG("synchronisationFlag = " + str(tmFrame.synchronisationFlag))
LOG("packetOrderFlag = " + str(tmFrame.packetOrderFlag))
LOG("segmentLengthId = " + str(tmFrame.segmentLengthId))
LOG("firstHeaderPointer = " + str(tmFrame.firstHeaderPointer))
The example contains a binary telemetry frame which is hardcoded in the array
TM_FRAME
. The size of this array is according to the CCSDS
standard 1115 bytes.
Note: The code above does not show the full array, only the first 10
bytes and the last 6 bytes are shown. The full array is in the example file
Example_5.py
.
The frame object is initialized with this binary array and stored in the
variable tmFrame
. Access to the frame fields is then done
via qualifying the fields as object attributes:
tmFrame.ATTRIBUTE
.
The program shall be started from the command line:
on Windows:
python3 Example_5.py
on Unix:
python3 Example_5.py
or
./Example_5.py
During the execution the following is printed:
versionNumber = 0
spacecraftId = 758
virtualChannelId = 0
operationalControlField = 1
masterChannelFrameCount = 0
virtualChannelFCountLow = 0
secondaryHeaderFlag = 0
synchronisationFlag = 0
packetOrderFlag = 0
segmentLengthId = 3
firstHeaderPointer = 0
CCSDS Telemetry Frames are used to store CCSDS Telemetry Packets inside. In
the most simple case a Telemetry Frame contains several Telemetry Packets
that occupy exactly the avaialable space of the Frame. In our example, which
is an enhancement of Example_5 this is the case:
There are 2 Packets in the Frame. The code picks out these Packets:
from UTIL.SYS import LOG
import CCSDS.FRAME
import UTIL.DU
TM_FRAME = [
0x2F, 0x61, 0x00, 0x00, 0x18, 0x00, 0x0C, 0xD2,
0xC0, 0x00, ................, 0x01, 0x00, 0x00,
0x00, 0xBB, 0xD6]
tmFrame = CCSDS.FRAME.TMframe(TM_FRAME)
leadingFragment, tmPackets, trailingFragment = tmFrame.getPackets()
LOG("leadingFragment = " + str(leadingFragment))
for i, tmPacket in enumerate(tmPackets):
LOG("tmPacket_" + str(i) + " = " + UTIL.DU.array2str(tmPacket))
LOG("trailingFragment = " + str(trailingFragment))
The method tmFrame.getPackets()
is used to pick out the
Packets and the function UTIL.DU.array2str
is used to format the
binary packet into a hex dump for printing.
Note: Beside the Packets also a possible leading fragment and
trailing fragment are returned by tmFrame.getPackets()
. Such
fragments occur when Packets do not exactly fit into Frames.
The program shall be started from the command line:
on Windows:
python3 Example_6.py
on Unix:
python3 Example_6.py
or
./Example_6.py
During the execution the following is printed:
leadingFragment = None
tmPacket_0 =
0000 0C D2 C0 00 00 1A 10 03 19 16 92 5E 92 00 00 00 ...........^....
0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 89 ................
0020 E4 .
tmPacket_1 =
0000 07 FF C0 00 04 27 00 00 00 00 00 00 00 00 00 00 .....'..........
:
0420 00 00 00 00 00 00 00 00 00 00 00 00 C9 48 .............H
trailingFragment = None
In Example_6 only a single Telemetry Frame has been
used that was hardcoded in the program. In real scenarios the Telemetry
Frames are recorded in files. There is no standard for CCSDS Telemetry Frame
files and this example uses one possible format which is an ASCII format
with hexadecimal values for the raw Frame data. Each Frame is defined in a
single line of this file and the file name is: Example_7.hex
.
The code of this example is:
import sys
from UTIL.SYS import LOG, LOG_ERROR
import CCSDS.FRAME
import UTIL.DU
FRAME_FILE_NAME = "Example_7.hex"
try:
frameFile = open(FRAME_FILE_NAME, "r")
except:
LOG_ERROR("cannot read " + self.frameDumpFileName)
sys.exit(-1)
for h, hexFrame in enumerate(frameFile.readlines()):
LOG("--- fmFrame_" + str(h) + " ---")
binFrame = UTIL.DU.str2array(hexFrame)
tmFrame = CCSDS.FRAME.TMframe(binFrame)
leadingFragment, tmPackets, trailingFragment = tmFrame.getPackets()
LOG("leadingFragment = " + str(leadingFragment))
for i, tmPacket in enumerate(tmPackets):
LOG("tmPacket_" + str(i) + " = " + UTIL.DU.array2str(tmPacket))
LOG("trailingFragment = " + str(trailingFragment))
frameFile.close()
The Frame file Example_7.hex
contains two Telemetry Frames with
the same contents as the hardcoded Frame in
Example_6. Therfore the output of the program shows
the same information of Example_6 but twice.
The program shall be started from the command line:
on Windows:
python3 Example_7.py
on Unix:
python3 Example_7.py
or
./Example_7.py
During the execution the following is printed:
--- tmFrame_0 ---
leadingFragment = None
tmPacket_0 =
0000 0C D2 C0 00 00 1A 10 03 19 16 92 5E 92 00 00 00 ...........^....
0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 89 ................
0020 E4 .
tmPacket_1 =
0000 07 FF C0 00 04 27 00 00 00 00 00 00 00 00 00 00 .....'..........
:
0420 00 00 00 00 00 00 00 00 00 00 00 00 C9 48 .............H
trailingFragment = None
--- tmFrame_1 ---
leadingFragment = None
tmPacket_0 =
0000 0C D2 C0 00 00 1A 10 03 19 16 92 5E 92 00 00 00 ...........^....
0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 89 ................
0020 E4 .
tmPacket_1 =
0000 07 FF C0 00 04 27 00 00 00 00 00 00 00 00 00 00 .....'..........
:
0420 00 00 00 00 00 00 00 00 00 00 00 00 C9 48 .............H
trailingFragment = None


News
Documentation
Reference Screenshots FAQ History
Reference
Screenshots
FAQ
History
Downloads
Links


{% extends "base.html" %} {% block title %}
Medieval catalogues > UNIVERSITY AND COLLEGE LIBRARIES OF CAMBRIDGE > Clare College > Leland, c. 1535
{% endif %}53 identified entries found.
All data was derived from the List of Identifications by Professor Richard Sharpe.
{% if not printing %}
A key to codes used in the List is available (opens in new tab).{% endif %}


Lorem ipsum dolor sit amet, consectetur adipisicing elit. Alias, voluptate.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Alias, voluptate.
Formative Research
- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Alias, voluptate.
Formative Research
- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Alias, voluptate.
The Toolkit
8 steps of the creative development research journey
The Toolkit provides a guide to the eight essential elements of any successful creative development research project, as well as a few exercises and resources to help steer you through a successful project
8 building blocks of creative development research projects:
If you are new to research or just fancy some fresh inspiration or new ideas then this toolkit should have something for you.
Good creative development research is the product of collaboration and common sense. Many of the things we describe will come naturally to you. Use this guide to help you through the bits that are harder; it’s a resource for you when you need it, not a drill that must be followed step by step.
6 things to bear in mind for concept development research
-
1
Be prepared for ideas to fail and to learn from
failure
At this stage, you’re still exploring the basic hypotheses – you’re trying to understand what will potentially work for your audiences, before you bring your creative to life. At this stage you may learn just as much from why a creative route doesn’t work, as from why it does.
-
2
Test your assumptions and don’t be wed to
them
You have a brand strategy, based on clear insights from formative research - but you are still learning. This research is an opportunity to confirm, challenge, reframe, refine and deepen your existing knowledge and hypotheses. For example, we may know that girls want more opportunities to hear from girls their own age, but when we test a concept that lets them do this directly we may learn that in fact they want the sharing to be mediated by an expert figure. Good formative research identifies opportunities for change; good concept development research shows which opportunities are most achievable.
-
3
Test your assumptions and don’t be wed to
them
You have a brand strategy, based on clear insights from formative research - but you are still learning. This research is an opportunity to confirm, challenge, reframe, refine and deepen your existing knowledge and hypotheses. For example, we may know that girls want more opportunities to hear from girls their own age, but when we test a concept that lets them do this directly we may learn that in fact they want the sharing to be mediated by an expert figure. Good formative research identifies opportunities for change; good concept development research shows which opportunities are most achievable.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cum eum facilis fugiat molestiae optio repudiandae!
1. A clear brief
Define your challenge and objectives.
What is it
Traditionally a brief would be defined as “information given to a researcher outlining the client’s reasons for requiring research” (Association for Qualitative Research). At Girl Effect we see this stage as a collective effort to develop clear, focused objectives for the project.
Getting to a clear, well focused research brief can be a challenging process, and often involves having challenging conversations at the start of the research. However, it’s critical to the success of the project and if you get it right - you’ll be able to design a better methodology and get more helpful insights.
What does it involve
Define your challenge and objectives. At its essence, your research brief comes down to 3 big questions:
- What are you trying to learn?
- How will this learning inform and influence the creative idea?
- What would success look like?
Sum up all your thinking into a written document or research brief.
There is a research brief template in the Resources section.
A few practical tips:
- Keep it simple: a common mistake is to include too much internal detail which can overcomplicate. Your brief is a starting point for conversation with people outside of your team or organisation, and should plainly state your need for research
- A honest brief: try to approach it in a collaborative way, if there are tough political decisions to be made or choices you’re not sure about – spell them out in the brief: be clear about what’s unclear.
- Iterate: the brief is your current best thinking on the need and approach for research, and it should be an evolving document. Leave space for others to challenge, build on and respond to your brief in unexpected ways
- Be aware of your own assumptions: remember you’ll also bring all of your own assumptions to the table. Write them down, see if they contain a point of view. If not, put them to one side, but just be aware of them.
A brief is more than a document. It requires dialogue between researchers and stakeholders.
To get to the clearest set of objectives it’s important to stress-test and challenge the thinking you’ve laid out in the brief. You need to check you’ve considered all options, that you’re not missing anything and that you have good idea of what the top priorities for the research are.
Need help? A simple way of doing this is to run your brief through a few filter questions. There are three key questions to make sure you’re on the right track.
See the “3 steps to challenging your brief” exercise sheet
In creative development research it’s vital to understand and immerse yourself in the creative work. As a researcher, if you understand the thinking behind the creative you’ll have a much better idea of what to look out for and how to help.
There are a couple of different ways to get to this: a briefing meeting between the teams, a creative briefing document (or any background on the creative - creative see Yegna TV series creative brief), or even interviewing members of the creative and production to team about the idea(s).
Questions you might cover with the creative team include:
- The rationale behind each creative idea
- What hypotheses the team have about how the idea should work
- What reactions and opinions are they hoping to get from audience
- What they’re unsure about or decisions they’re hoping research can inform
Tip: we recommend the researchers write a creative hypothesis sheet which covers key questions and hypotheses to explore around the creative ideas. This is a useful way of ensuring alignment with the creative team ahead of the research. Later in the process it will also help you design a guide and do better analysis. See the ’8 questions for developing a hypothesis checklist’ exercise sheet.
Be aware of your own biases: you may find, as a researcher, that you have your own (sometimes strong) reactions to the creative ideas. Think about why you’re reacting this way – what assumptions and hypotheses are you brining to the research? Put these aside, but be aware of them as you continue the process.


Simple text
Inside another web component
tst
Inside Div
Dynamically added svg-textarea
Dynamically added svg-textarea2


Combines two input sources by replacing zero-amplitude partials in Source A with the lowest-frequency non-zero-amplitude partials of Source B.


background-image: url("http://thenewcode.com/assets/images/spiral-galaxy-m106-2x.jpg");
Burak Gülbol
powered by Burak Gülbol 2018
original article
Hakkımda ...
İstanbul Üniversitesi
Pause


{@boolean renderSection1=true} {#include Common/insightsEmailBody} {#content-title} Cost Management - OpenShift {/content-title} {#content-title-section1} Cost Management has received data {/content-title-section1} {#content-body-section1}
OpenShift source {action.context.source_name} has received a new payload and processing should begin shortly.
{/content-body-section1} {/include}


The batch-get-item operation returns the attributes of one or more items from one or more tables. You identify requested items by primary key.
A single operation can retrieve up to 1 MB of data, which can comprise as many as 100 items. batch-get-item will return a partial result if the response size limit is exceeded, the table's provisioned throughput is exceeded, or an internal processing failure occurs. If a partial result is returned, the operation returns a value for UnprocessedKeys . You can use this value to retry the operation starting with the next item to get.
For example, if you ask to retrieve 100 items, but each individual item is 50 KB in size, the system returns 20 items (1 MB) and an appropriate UnprocessedKeys value so you can get the next page of results. If desired, your application can include its own logic to assemble the pages of results into one dataset.
If no items can be processed because of insufficient provisioned throughput on each of the tables involved in the request, batch-get-item throws ProvisionedThroughputExceededException .
By default, batch-get-item performs eventually consistent reads on every table in the request. If you want strongly consistent reads instead, you can set ConsistentRead to true for any or all tables.
In order to minimize response latency, batch-get-item fetches items in parallel.
When designing your application, keep in mind that Amazon DynamoDB does not return attributes in any particular order. To help parse the response by item, include the primary key values for the items in your request in the AttributesToGet parameter.
If a requested item does not exist, it is not returned in the result. Requests for nonexistent items consume the minimum read capacity units according to the type of read. For more information, see Capacity Units Calculations in the Amazon DynamoDB Developer Guide.
batch-get-item
--request-items <value>
[--return-consumed-capacity <value>]
A map of one or more table names and, for each table, the corresponding primary keys for the items to retrieve. Each table name can be invoked only once.
Each element in the map consists of the following:
- Keys - An array of primary key attribute values that define specific items in the table.
- AttributesToGet - One or more attributes to be retrieved from the table or index. By default, all attributes are returned. If a specified attribute is not found, it does not appear in the result.
- ConsistentRead - If true , a strongly consistent read is used; if false (the default), an eventually consistent read is used.
JSON Syntax:
{"string": {
"Keys": [
{"string": {
"S": "string",
"N": "string",
"B": blob,
"SS": ["string", ...],
"NS": ["string", ...],
"BS": [blob, ...]
}
...}
...
],
"AttributesToGet": ["string", ...],
"ConsistentRead": true|false
}
...}
--return-consumed-capacity (string)
If set to TOTAL , ConsumedCapacity is included in the response; if set to NONE (the default), ConsumedCapacity is not included.


In parallel to the global measurements, we are also computing the value of the M4, M6 and M8 metrics as seen by cooperating partners:
| Partner | Partner only pages |
|---|---|
| UNLP, Argentina | M4: Recursive Server Analysis for UNLP |
| UNLP, Argentina | M6: DNS parameters at UNLP |
| UCC, Ghana | M4: Recursive Server Analysis for UCC, Ghana |
| UCC, Ghana | M6: DNS parameters at UCC, Ghana |
| DNS Nawala, Indonesia | M4: Recursive Server Analysis for Nawala |
| DNS Nawala, Indonesia | M6: DNS parameters at Nawala |
| IIFON, India | M4: Recursive Server Analysis for IIFON |
| IIFON, India | M6: DNS parameters at IIFON |
| KazNIC Organization, Kazakhstan | M8: Authoritative Servers Analysis for KazNIC |
| KazNIC Organization, Kazakhstan | M6: DNS Parameters at KazNIC |
| TWNIC, Taiwan | M8: Authoritative Servers Analysis for TWNIC |
| TWNIC, Taiwan | M6: DNS Parameters at TWNIC |


WikiStart
Attachments (7)
- sdss4collaborationmeeting_liuchao_20140727.key.zip (3.0 MB) - added by liuchao 2 years ago.
- presentation file in SDSS IV collaboration meeting
- jborissova_APOGEEII_28072017_final.zip (1.8 MB) - added by jura 2 years ago.
- smao-apogee-2014.pdf (10.3 MB) - added by shudemao 2 years ago.
- carigi.apogge2.lr.utah.pdf (4.0 MB) - added by carigi 2 years ago.
- carigi talk
- carigi.apogge2.lr.utah.2.pdf (4.0 MB) - added by carigi 2 years ago.
- carigi talk
- rcarrera_parkcity2014.pdf (863.6 KB) - added by rcarrera 2 years ago.
- Thakar_CAS_DataReview.pdf (1.9 MB) - added by thakar 22 months ago.
- CAS presentation, Wednesday PM
Download all attachments as: .zip


I first started using computers in 2007, when I was 8 years old. My first computer was a Windows desktop. Soon after, my I started using an iMac. Besides classwork, I used my computers for programming, gaming, listening to music and communication. As a Computer Scientist I would like to design and develop software that makes a difference in our lives. After participating in a hackathon and later coming up with ideas for some interesting projects, I thought the skills taught in this course would be useful for creating elegant, simple and impressionable products. I feel knowledge of server side development (database, web services, sql etc.) front end development (javascript, html, css) and software engineering skills are necessary to build great web products. Computers will become much more ubiquitous going forward and I see myself using them the same way I've always had except maybe that will change through brain machine interfaces in the future.
Tennis is one of my hobbies!


Core classes for flow manipulation and synchronization.
Package Specification
This package contains the {@link org.lightwolf.Flow} class and the
{@link org.lightwolf.FlowMethod} annotation, which are used to build
flows in Java. A flow is very similar to a thread:
- Each flow have a stack frame, like a thread.
- A flow, like a thread, can run Java methods. Such methods can
be interpreted but also just-in-time compiled.
- Flows can access heap objects. The heap space is the same used
by threads. Flows and threads can shared such objects in a transparent
way.
- Flows can be suspended or interrupted.
The following summarizes the differences between flows and threads:
- A flow can be suspended, have its state removed from memory,
then restored to memory and then resumed, possibly on another JVM
instance or machine.
- When a flow is suspended, it does not consume a Java thread,
and not even a system thread. This makes flows more friendly to
thread-pools.
- The {@link org.lightwolf.Flow} is a final class. To create a
flow, one must write and call a {@link org.lightwolf.FlowMethod
flow-method}.
Related Documentation
Please refer to the Lightwolf website at:
@author Fernando Colombo


Welcome to AT
What's new?
Version 2.0 (March 3, 2018)

ABOUT THE TOOLBOX
TO BE COMPLETED
The toolbox can be downloaded here.
Accelerator Toolbox (AT) is a collection of tools to model storage rings and beam transport lines in Matlab.
With AT it is possible to:
- create and manipulate accelerator lattice elements, which are stored in Matlab structures
- track particles through the lattice, selecting the appropriate integrator to represent the physics
- compute accelerator parameters and beam properties, generating new scripts or taking advantage of the existing ones
Examples of things AT enables are: create a lattice structure that links to the integrators, and then to track through the lattice
including non-linear elements, analyze the non-linear motion, change settings to affect parameters, compute equilibrium beam sizes
with radiation, and so on.
ABOUT THE DOCUMENTATION
The bulk of this documentation was produced automatically from the
Matlab m-files of the toolbox using m2html.
Disclaimer: AT is made freely available for research
and educational purposes only, and may not be redistributed for
commercial profit. The toolbox is distributed "as is" without
warranty as to the accuracy of the software.


Former royal commander calls for police to investigate Prince Andrew
A former royal commanding officer has called police officers to investigate Prince Andrew following his BBC interview with Emily Maitlis.
Dai Davies made his feelings clear that he believes the Duke Of York’s friendship with convicted paedophile Jeffrey Epstein should be looked into by law enforcers.
Joining Holly Willoughby and Phillip Schofield on This Morning via a live video link from North Wales, Dai began: ‘My thoughts are with the 35-40 victims who didn’t appear to be mentioned in this documentary, so that’s my first thought.
Advertisement Advertisement
‘The second thought is thatgt anyone who has material evidence should come forward and give it to the appropriate authorities. That’s also crucial.
‘Prince Andrew, like everybody else, is entitled to the fact that he is innocent of anything until proof says otherwise, but I do feel, having read some of the testimonies, that there is a credible case of why he should be interviewed [by police].’
He added: ‘And if that evidence points to any criminality, then it should be under caution. That’s all I’m saying.’
Dai went on to say that although Emily did a ‘great job’ putting the Andrew through his paces, she isn’t a police officer.
When discussing Andrew staying at Epstein’s house for four days – two years after the sex offender’s first conviction for soliciting a minor for prostitution – Dai continued: ‘What else has he [Epstein] got on Prince Andrew, I wonder? All of this will come out, trust me.’
In his questioning on Saturday, Andrew was grilled on allegations that Virginia Roberts – now named Virginia Giuffre – was made to have sex with the prince three times between 2001 and 2002.
Advertisement Advertisement
The prince ‘categorically’ denied having sex with her, but admitted he did not regret his relationship with the disgraced financier as it gave him the opportunity to meet people and help prepare for his role as a trade envoy.
Morning television has been dominated by Andrew’s interview, with Piers Morgan slamming the prince for telling ‘demonstrable lies’.
This Morning airs weekdays at 10.30am on ITV.
Got a showbiz story?
If you've got a story, video or pictures get in touch with the Metro.co.uk Entertainment team by emailing us<EMAIL_ADDRESS>calling 020 3615 2145 or by visiting our Submit Stuff page - we'd love to hear from you.


Crosser Protocol
The Crosser Protocol
is very simple and text-based. It was very much inspired by the protocol written by the people at NATS.IO
, especially the idea about using a zero allocation byte parser.
The simplicity of the protocol makes it easy to write new clients or just connect via TELNET
to test functionality.
Although the protocol is inspired by NATS they are much different in functionality. The Crosser Protocol supports RPC/RMI as well as PUB/SUB pattern.
Crosser Protocol Operations
This table provides an overview for each protocol operation in the Crosser Protocol
.
The PUB/SUB operations are case sensitive.
The RPC/RMI operation are NOT case sensitive.
| OPERATION | SENDER | DESCRIPTION | PATTERN | PROTOCOL |
|---|---|---|---|---|
| INFO | Server | Information about the server sent when a TCP/IP connection is established | - | V1,V2 |
| HI | Client | Set information about the connection | - | V1,V2 |
| BYE | Client | Close the connection | - | V1,V2 |
| CALL | Both | Call a controller/method on server/client | RPC/RMI | V1,V2 |
| CALLACK | Both | Confirmation that the CALL operation was received | RPC/RMI | V2 |
| CB | Server | A callback to the client after the client doing a CALL to the server with a callback-id attached | RPC/RMI | V1,V2 |
| SUB | Client | A subscription sent from the client to the server. | PUB/SUB | V1,V2 |
| SUBACK | Server | Confirmation that the SUB was received | PUB/SUB | V2 |
| PUB | Client | A publish message sent to the server from a client | PUB/SUB | V1,V2 |
| PUBACK | Server | Confirmation that the PUB was received | PUB/SUB | V2 |
| MSG | Server | A message sent to subscribing client(s) from the server | PUB/SUB | V1,V2 |
| MSGACK | Client | Confirmation that the MSG was received | PUB/SUB | V2 |
| UNSUB | Client | A client unsubscribe by sending a UNSUB message to the server | PUB/SUB | V1,V2 |
| UNSUBACK | Server | Confirmation that the UNSUB was received | PUB/SUB | V2 |
| PING | Both | Heartbeat, PING | - | V1,V2 |
| PONG | Both | Heartbeat, PONG | - | V1,V2 |
| +OK | Server | Confirmation that the message sent from the client was accepted by the protocol (sent only when Endpoint was started in Interactive mode) | - | V1,V2 |
| -ERR | Server | Protocol Error, will terminate the connection | - | V1,V2 |
INFO
Syntax
INFO {<key>:<value>,<key>:<value>,...}\r\n
TODO: Add list of parameters sent back from the server.
Description
INFO
is sent from the server when a client connects to a Crosser Endpoint
. This message will not be sent to half-duplex endpoints such as HTTP.
Example
INFO {"Id":"320a4a6e-c382-4a1d-8336-bafd56314970","Version":"<IP_ADDRESS>","Framework":".NETSTANDARD_1_6","Location":"localhost","Port":"6661","PingTimeout":"0","AuthRequired":"False","AuthTimeout":"1000","SecureRequired":"False","Interactive":"False","ProtocolVersions":"V1","CertificateRequired":"False","SslProtocols":"Tls12"}
HI
Syntax
HI {<key>:<value>,<key>:<value>,...}\r\n
You can add custom key/value parameters, but the ones below wil lbe automatically populated by the server-side if provided. All values passed will be found on the server-side under ConnectionContext.Vars dictionary
- interactive: if true the server will confirm every valid operation parsed.
- todo: ...
- todo: ...
- todo: ...
Description
If the client INFO
message states that the client have to authenticate the client have to send the HI
message before anything else is sent to the server.
Example
TODO: Show example output from telnet
BYE
Syntax
BYE
Description
BYE
will gracefully close the connection and cleanup resources.
Example
The following will send the close operation to the server
BYE\r\n
CALL
Syntax V1
CALL <controller> <method> <payload-length> [callback-id]\r\n[payload]\r\n
Syntax V2
CALL <controller> <method> <payload-length> <call-id> [callback-id]\r\n[payload]\r\n
Description
CALL
will let you call a server-side method on a specific controller.
Example
V1
This example will call the method Bar
on the controller Foo
with the payload Hello World
.
CALL foo bar 11\r\nHello World\r\n
V2
This example will call the method Bar
on the controller Foo
with the payload Hello World
and the call-id c1
.
CALL foo bar 11 c1\r\nHello World\r\n
CALLACK
Syntax
CALLACK <call-id>\r\n[payload]\r\n
Description
CALLACK
is sent from the server-side to the client as a response to the client doing a CALL
with a call-id included.
The CALLACK
will be sent back as soon as the server has parsed the message sent form the client.
Example
This is an example where the client sends a CALL
to the controller foo
and method bar
with call-id c1
. The payload is hello world
CALL foo bar 11 c1\r\nHello World\r\n
CALLBACK
Syntax
CB <controller> <method> <payload-length> <callback-id>\r\n[payload]\r\n
Description
CB
is sent from the server-side to the client and includes the result of the method called on the server-side. The CALLBACK
is only executed if the client has passed in a callback-id
in the CALL
Example
This is an example where the client sends a CALL
to the controller foo
and method bar
with callback-id cbid1
. The payload is hello world
.
The method does not return anything and therefor this example has the length 0
in the callback.
CALL foo bar 11 cbid1\r\nHello World\r\n
CB foo bar 0 cbid1\r\n\r\n
SUB
Syntax
SUB <topic> [max-messages]\r\n
Description
SUB
is sent from the client-side to the server. Note that topics are case sensitive. The topic can contain wild-cards, +
for level wild-card and #
for full wild-card.
If the optional [max-messages] is sent the client will be unsibscribed by the server after receiving a number of messages equivalent to [max-messages].
Example
This is an example where the client sends a SUB
to the server with topic foo
.
SUB foo\r\n
This is an example where the client sends a SUB
to the server with topic a level wild-card foo/+/bar
.
SUB foo/+/bar\r\n
SUBACK
TBD (V2)
PUB
Syntax
PUB <topic> <payload-length>\r\n[payload]\r\n
Description
PUB
is sent from the client-side to the server. Note that topics are case sensitive.
Example
This is an example where the client sends a PUB
to the server with topic foo
.
SUB foo\r\n
This is an example where the client sends a PUB
to the server with a topic that will match the wild-card subscription shown in the SUB
section.
PUB foo/boo/bar 5\r\nHello\r\n
PUBACK
TBD (V2)
MSG
Syntax
MSG <topic> <payload-length>\r\n[payload]\r\n
Description
MSG
is sent from the server-side to the clients. This is the server sending a message to all subscribers found when a client sent a PUB
to the server
Example
This is an example where the server sends a MSG
to the clients with topic foo
and payload Hello
.
MSG foo 5\r\nHello\r\n
MSGACK
TBD (V2)
UNSUB
Syntax
UNSUB <topic>\r\n
Description
UNSUB
is sent from the client-side to the server to remove a subscription.
Example
This is an example where a client removes a subscription for the topic foo
UNSUB foo\r\n
UNSUBACK
TBD (V2)
PING
TBD
PONG
TBD
OK
Syntax
+OK
If the Endpoint of the connection has interact+ set, the server acknowledges each successfully parsed operation from the client with a +OK message.
ERR
Syntax
-ERR <error message>
The -ERR message is used by the server indicate a protocol, authorization, or other runtime connection error to the client. These errors result in the server closing the connection.
Protocol error messages:
-ERR 'Protocol Violation'
-ERR 'Controller/Method Not Found'
-ERR 'Maximum Payload Length Exceeded'
-ERR 'Authentication Timeout'
-ERR 'Authentication Failed'
-ERR 'Security Violation'
-ERR 'Dead Connection'


Your search term matched multiple locations. Please select your desired location from the list below.


Conflicts are part of our lives and everyone experiences them.  We might have conflicts with our neighbor that plays loud music at night, with our siblings that make a mess in your room, or with that friend that asks you for a favor, but never does one back to you. In this blog I will be talking bout a comflict that I had before and the emotions that i felt. I will also talk about how things can change or be influenced if we analyze the conflict.
So, that being said I will talk about a conlfict I have had in the past and I will talk about the emotions I found myself being influenced by when facing it.This conflict is not necessary a big conflict, but I will talk about this particular one to medidate now about how I could have reacted or responded instead if I would have broken down and understood what exactly I was feeling. When I was younger, my older brother and I would share rooms. My brother was the messy kind of roommate. That would always make me very angry and we would always argue a lot even if it wasnt about the room being messy.
At a young age I could not think of a good way to try to resolve the issue. I would just be mad at my brother and I treated him bad in certain ways. Maybe subsconsciously, I would treat him bad hoping that he would not like it so that he would change and clean his part. Unfortunately things dont work like that. If I could go back in time, I would explain to my brother that when he does not clean his side of the room, I feel disrespected and ignored and it causes me to get angry.


NEWS.md
First release on CRAN! All issues included in this release can be found here.
get_param()
added as new function to get parameters from scan (#132).
download_basemap()
now uses Stamen basemaps by default (parameter source
), so users do not need to request an API key for the previous default Google Maps (#163).
download_vpfiles()
and select_vpfiles()
now use 5 letter radar codes (parameter radars
instead of radar
and country
), allow to skip already downloaded files (parameter overwrite = TRUE
) and have improved download and error messages (#176).
read_pvolfile()
, nexrad_to_odim()
and calculate_vp()
(all Docker dependent) can now read files from directories containing a space (#162).
Details for deprecated functions mt()
, mtr()
, cmt()
are now displayed with function (#166).
Get started vignette is now based on figure and workflow from Dokter et al. (#168).
Introductory exercises vignette renamed to rad_aero_18.Rmd
since it is based on the 2nd Radar Aeroecology Training School.
bioRad now has a code of conduct and contributing guidelines (#145).
Release consistent with and in preparation of the bioRad methods paper (https://doi.org/10.1111/ecog.04028). All issues included in this release can be found here.
Functions (#84), arguments (#112) and objects (#80) have been renamed to be consistent (#51). Deprecated functions will remain functional for now, but we will trigger a warning: we advise to use the new functions names. See the lists for current functions and deprecated functions.
integrate_profile()
replaces the functionality of cmt()
(#75) and mt()
(#76).
plot()
can now be used for scans (#71), e.g. plot(example_scan)
.
Functions are organized in sections on the website (#110).
Changelog section (this page) has been added to website (#144).
Package R code is reorganized as one function = one file for easier maintenance (#50).
First tests are included for some functions.
bioRad now has a hex logo (#137). ✨


The Salon App
{% if user.is_authenticated %}
Account
Change Password
Logout
{% else %}
Login
{% endif %}
My Town
Profile
(current)
Update Profile
(current)
Add Post
Add Town
Change Town


WebXR examples
Simple Babylon.js example
(Adapted from Babylon.js's example with slight changes)
Basics of WebXR in Bablyon.js
(Adapted for simplicity)


SlideBar / Navigation Buttons
In this sample you can show/hide navigation buttons in SlideBar directive. By clicking on check box on the right, you can change the built-in properties:
- showNavigationPanel - determines whether navigation buttons are visible or hidden
To navigate among slides, click on buttons. The order of buttons corresponds with the order of slides.
Whenever a button is clicked, the animation is interrupted.


Mode
Edit
Play
Retract next
White
Black
White
Black
Moves
Captures
W
B
T
Pawn
?


Hi, I've a pre-built SD-card image and I'm trying to load the i2c-bcm2708 and i2c-dev modules but they fail to load. I get an exec format error.
The pre-built sd-card I bought says: Read Only IPE FS OEM Gateway 22Oct1x (can't read the last digit) RFM12PI > emoncms.org
How can I get these modules loaded?
Cheers,
Alex
Re: can't load the i2c-bcm2708 and i2c-dev modules from pre-built SD image
Hi Alex, You may not find much support for doing anything beyond 'normal' operation with that OS. Although it is raspbian based it is not raspbian enough to make any assumptions.
We have since progressed onto using a lightly converted genuine raspbian OS that retains all its features and has a huge community for support and development.
oem gateway has also progressed to emonhub. I am pretty sure you could spend far more time and effort trying to get what you want from that image than it would take to make the switch to the latest image.
Off the top of my head I think you would just need to move your oemgateway.conf settings across to the new emonhub.conf (the files a quite alike but not directly interchangeable so beware of typos etc)
I've used I²C on raspbian so I know the modules can be loaded and work as expected but wouldn't know how to help you with I²C on IPE-R1 or even know if its possible.
Paul
Re: can't load the i2c-bcm2708 and i2c-dev modules from pre-built SD image
Hi Alex,
As Paul says, you'd be much better off switching to the latest version of the SD card software.
The reason you're getting the error is IPE is in Read-Only mode. To switch it to Read-Write mode, issue the command ipe-rw. Once you've done that, you can try loading the i2c modules. To put it back in RO mode, issue the command ipe-ro.
Again, the current software is a big improvement over IPE.
Re: can't load the i2c-bcm2708 and i2c-dev modules from pre-built SD image
Thanks for your replies.
Ok, so I've downloaded and burnt this image https://github.com/emoncms/emoncms/blob/bufferedwrite/docs/setup.md and now the pi won't boot normally.
It boots really slow and whenever it gets stuck I need to press ctrl-c a couple of times for it to move on. Once that's finished it's so slow that there's like a second delay per key stroke. However if I reboot from the terminal it then boots up fast with no issue. Can get the modules loaded with the new image no probs.
Any ideas what might be wrong with it?
Cheers,
Alex
[There is no need for 5 copies. If your post does not appear, please watch for a message that tells you that it has been queued for moderation. Posting multiple copies only wastes everybody's time. Moderator (RW)]
Re: can't load the i2c-bcm2708 and i2c-dev modules from pre-built SD image
The latest (beta) version, it's precursors and a discussion about the changes that it incorporates, is linked in this thread: http://openenergymonitor.org/emon/node/10163
Re: can't load the i2c-bcm2708 and i2c-dev modules from pre-built SD image
Ok so using the latest version gave me the same results as using the feb release.
So I am now following this guide https://github.com/emoncms/emoncms/blob/bufferedwrite/docs/install.md
and when I get to this line:
sudo cp /var/www/emoncms/run/feedwriter /etc/init.d/
I notice that the /var/www/emoncms/run directory doesn't exist
where could of I gone wrong to not have this directory?
Re: can't load the i2c-bcm2708 and i2c-dev modules from pre-built SD image
Well .... now for some reason the latest release image works fine on every boot.
So .... I don't see any feeds from the rfm12pi receiving messages from the emonTx. So is there a guide to set this up or should it already be doing this?
Thanks
Re: can't load the i2c-bcm2708 and i2c-dev modules from pre-built SD image
Ok so now the SD-card with the latest release is not working anymore. After like 10 successful boots as I was typing in the terminal it became extremely slow again (1 second per character typed). And I can't get it to boot up fast anymore.
So I'm back looking at the SD-card I build using this guide https://github.com/emoncms/emoncms/blob/bufferedwrite/docs/install.md
and I've noticed that on boot there's a few fails, here's what I get:
[....] starting OpenEnergyMonitor emonHub: emonhubstart-stop-daemon: unable to start /usr/share/emonhub/emonhub.py (permission denied)
[ ok been started okLog is turned off
Error: file not found : ' /var/www/emoncms/run/feedwriter.php'
... ...
[Fail] startpar: service(s) returned failure: feedwriter ... failed!
Cheers,
Alex
Re: can't load the i2c-bcm2708 and i2c-dev modules from pre-built SD image
A common reason for a Pi to slow down is lack of space, either the filesystem grows too big for the partition or more likely on a read-only image is the RAM being filled with runaway log entries for a unhandled issue. the latter is harder to detect since once it slows to a stop a reboot will reset memory use and the logs.
use df -h to check filesystem size and free to check ram use, check whilst all is good for a comparison to when it slows.
The current image should be trouble free, if the image fits onto the SD card ok and you edit the emonhub.conf using details from your oemgateway.conf the image should "just work" if it doesn't then that should be addressed before enabling emoncms etc.
The run folder is only present in the "bufferedwrite" branch of emoncms.
Yes it should work, is the led on the rfm2pi flashing? what do you see in the emonhub.log file? did you define a serial baud in emonhub.conf or is emonhub auto-detecting?
2 overlapping issues here emonhub apparently won't start due to a permission issue, and separately the afore mentioned run folder isn't found so cannot start the feed writer.
Paul
Re: can't load the i2c-bcm2708 and i2c-dev modules from pre-built SD image
Ok Thanks, I was having a memory issue there, it was getting full, not sure of what but it was full. I unplugged the tp-link wifi dongle and it boots up fine now (so far) no memory issues no more.
Thank you!


{% extends 'base_tabs.html' %} {% load bootstrap3 %} {% block head_title %}Team{% endblock %} {% block panel %} {% if team %}
{{ team.team_code }}
Send this to whoever you want to join this team. Remember that teams have a maximum size of {{ h_max_team }} hackers
| Name | Finished application? | |
|---|---|---|
| {{ hacker.name }} | {{ hacker.email }} |
Do you have a team already? Join it below. Otherwise you can create a new team.
You can also form teams at the beginning of the hackathon, so don't worry about this unless you already have a team.
{% endif %} {% endblock %}


Welcome to Brian Biggar's Personal Webpage!
Aviation Professional | Program Technical Lead | Aspiring Software Developer
I'm currently a Program Technical Lead for an aerospace company located in St. Louis, MO. I'm aspiring to become a full stack developer by the end of 2020. I have a strong GIS analyst, software quality assurance, and professional aviation background which includes aerial mapping and charter flight operations in Cessna 206H, King Air 200, and Citation CJ3 aircraft. I intend to enhance my personal webpage as I increase my coding knowledge and capabilities.