My hobby is playing video games on PC and one of the most popular ways to get games on that platform is to use Steam. Steam is a digital distribution marketplace for PC games. It provides gamers with a vast library of new and old games that can be downloaded at varying price points. This is a great way for people like me with limited time and budget to get access to games because there are many independently made games that cost little and are not vastly time consuming, and they often have sales that drop game prices to as low as 90% off. The vast library also can cause problems though.  My app is a suite of tools to help the steam gamer organize and make decisions about what games to buy.


UART
public final class UART
UART is a two-wire serial communication protocol used to communicate with serial devices. The devices must agree on a common transmisson rate before communication.
-
Initialize an interface for UART communication.
Usage Example
// Initialize a UART interface UART0. let uart = UART(Id.UART0)
Declaration
Swift
public init(_ id: IdName, baudRate: Int = 115200, dataBits: DataBits = .eightBits, parity: Parity = .none, stopBits: StopBits = .oneBit, readBufferLength: BufferLength = .small)
Parameters
id
REQUIRED The name of the UART interface.
baudRate
OPTIONALThe communication speed. The default baud rate is 115200.
dataBits
OPTIONALThe length of the data being transmitted.
parity
OPTIONALThe parity bit to confirm the accuracy of the data transmission.
stopBits
OPTIONALThe bits reserved to stop the communication.
readBufferLength
OPTIONALThe length of the serial buffer to store the data.
-
Set the baud rate for communication. It should be set ahead of time to ensure the same baud rate between two devices.
Declaration
Swift
public func setBaudrate(_ baudRate: Int)
Parameters
baudRate
The communication speed.
-
Clear all bytes from the buffer to store the incoming data.
Declaration
Swift
public func clearBuffer()
-
Return the number of received data from the serial buffer.
Declaration
Swift
public func checkBufferReceived() -> Int
Return Value
The number of bytes received in the buffer.
-
Write a byte of data to the external device through the serial connection.
Declaration
Swift
@inline(__always) public func write(_ byte: UInt8)
Parameters
byte
One 8-bit binary data to be sent to the device.
-
Write a series of bytes to the external device through the serial connection.
Declaration
Swift
@inline(__always) public func write(_ data: [UInt8])
Parameters
data
A byte array to be sent to the device.
-
Write a string to the external device through the serial connection.
Declaration
Swift
@inline(__always) public func write(_ string: String)
Parameters
string
A string to be sent to the device.
-
Read a byte of data receiving from the external device.
Declaration
Swift
@inline(__always) public func readByte() -> UInt8
Return Value
One 8-bit binary data read from the device.
-
Read a series of bytes receiving from the external device.
Declaration
Swift
@inline(__always) public func read(_ count: Int) -> [UInt8]
Return Value
A byte array read from the device.
-
The parity bit is used to ensure the data transmission according to the number of logical-high bits.
See moreDeclaration
Swift
public enum Parity : UInt8
-
One or two stops bits are reserved to end the communication.
See moreDeclaration
Swift
public enum StopBits : UInt8
-
This indicates the length of the data being transmitted.
See moreDeclaration
Swift
public enum DataBits : UInt8
-
This indicates the storage size of the serial buffer.
See moreDeclaration
Swift
public enum BufferLength : Int32


"Wales Euro 2020 qualification one of the best days of my life"
by BeSoccerRyan Giggs is one of the most decorated players in football history but, as a manager, Wales have given him one of his best days.
A delighted Ryan Giggs hailed one of the best days of his life after Wales secured a place at Euro 2020 with a 2-0 win over Hungary.
Aaron Ramsey was the hero in Cardiff, scoring a goal in each half as Wales clinched the second qualifying spot behind Croatia in Group E – earning a shot at matching their Euro 2016 exploits following a semi-final run.
An uneven start to his first campaign in charge meant Giggs' men needed to win both of their closing matches to progress.
Victory in Azerbaijan over the weekend before success before their fervent home support saw them come good when it mattered.
"It's doesn't get any better," Wales manager Giggs told Sky Sports. "It's amazing. From where we were in the summer with those two defeats [away to Croatia and Hungary], credit to the lads the way they've come back.
"They've show grit, determination and quality. It's one of the best days of my life."
Featured links
- BREAKING NEWS: Mourinho replaces Pochettino at Tottenham
- The latest football transfers news and rumours
- Wales, golf, Madrid... in that order
- Luis Enrique returns to Spain national team
Ramsey's injury problems meant the Juventus star was making his first start of qualification on Tuesday.
"He's just showed that quality, that class," Giggs said. "The finishes… we missed him, but better late than never, I suppose."
Having never managed to represent Wales at a major tournament as a player, Manchester United great Giggs will revel in leading his country on such a grand stage.
"To be honest I haven't really thought about that," he added, referencing those playing disappointments.
"It's one of the greatest days of my life. There was a lot of hard work put in. Not only am I blessed with a good set of players but also the best staff I could ask for.
"The atmosphere every time we play in Cardiff… the fans are part of it. I was watching it in 2016 – you could tell the fans loved it then and they'll love this even more."


At MAVAJ SUN CO we excel in combining innovation and practicality to deliver unique solutions to our clients. Applied Innovation is the ability to infuse newer ideas and newer ways of doing things into all parts of the organization, and improve business outcomes, often without major disruptive change. It is a 360-degree business approach covering process, delivery, business and technology Innovations that help MAVAJ SUN CO to work collaboratively with clients for cost take-outs, speed to market and new business opportunities.
MAVAJ SUN CO was founded in 1978 and has grown to be premier website design , online marketing , web hosting and domain name provider company.
We are located in ... , with capabilities to service clients across the world. Since 1999 , the professional team at MAVAJ SUN CO have designed and built websites for a diverse range of organisations across many industry groupings , provide hosting server , domain name registration and help them to running their online business seamlessly .
MAVAJ SUN CO will provide you with an innovative, attractive and professional web design that will assist you to open new markets for your business. MAVAJ SUN CO and its high calibre designers will craft the perfect look and feel for your website, our skilled programmers will implement the latest technologies in developing your website and our experienced marketing managers and consultants will drive qualified, targeted sales leads from the major search engines to your website
MAVAJ SUN CO strives to create professional web sites that will effectively promote our clients products or services to their target audience. We listen to our clients and develop a custom made web site that will enhance your overall corporate image. Unlike your standard newspaper or phone book ad, a web site can contain an unlimited amount of information at a fraction of the price, and is accessible by millions world wide. Any aspect of your site can be updated monthly, weekly, or even daily, to have current information for your readers. This information can be accessed with a click of a button from around the entire globe, 24 hours a day. Statistics show that there are over 300 million people on the Internet today. Those numbers speak for themselves.
At MAVAJ SUN CO, we are developing your ideas into reality.


randRange( 0, 1 )
[ [ school(1), school(2), school(3), school(4) ], [ person( 1 ), person( 2 ), person( 3 ), person( 4 ) ] ][ INDEX ]
[ [ "3rd grade", "4th grade", "5th grade", "Total" ], [ "January", "February", "March", "Total" ] ][ INDEX ]
(function() {
var enrollments = [];
var classMin = 60;
var classMax = 80;
for ( var i = 0; i < SCHOOLS.length; i++ ) {
var enroll = randRange( classMin, classMax, COLUMNS.length - 1 );
var total = 0;
jQuery.each( enroll, function( i, e ) {
total += e;
});
enroll.push( total );
enrollments.push( enroll );
}
return enrollments;
})()
randRange( 0, COLUMNS.length - 1 )
randRange( 0, SCHOOLS.length - 1 )
ENROLLMENTS[ SCHOOL_INDEX ][ COL_INDEX]
[ "the enrollment at four different elementary schools that have 3rd through 5th grade students", "the number of chickens sold by four friends from January to March" ][ INDEX ]
(function() {
if ( COL_INDEX === COLUMNS.length - 1 ) {
return [ "How many students does " + SCHOOLS[ SCHOOL_INDEX ] + " Elementary School have in total?",
"How many chickens did " + SCHOOLS[ SCHOOL_INDEX ] + " sell in total?" ][ INDEX ];
} else {
return [ "How many " + COLUMNS[ COL_INDEX ] + " students does " + SCHOOLS[ SCHOOL_INDEX ] + " Elementary School have?",
"How many chickens did " + SCHOOLS[ SCHOOL_INDEX ] + " sell in " + COLUMNS[ COL_INDEX ] + " ?" ][ INDEX ];
}
})()
[ "students", "chickens" ][ INDEX ]
[ "the student enrollment at " + SCHOOLS[ SCHOOL_INDEX ] + " Elementary School",
"the number of chickens sold by " + SCHOOLS[ SCHOOL_INDEX ] ][ INDEX ]
(function() {
if ( COL_INDEX === COLUMNS.length - 1 ) {
return [ "the total number of students at each school",
"the total number of chickens sold by each person" ][ INDEX ];
} else {
return [ "the number of " + COLUMNS[ COL_INDEX ] + " students at each school",
"the number of chickens sold in " + COLUMNS[ COL_INDEX] ][ INDEX ];
}
})()
[ "There are " + ANSWER + " " + COLUMNS[ COL_INDEX ].toLowerCase() + " students at " + SCHOOLS[ SCHOOL_INDEX] + ".",
SCHOOLS[ SCHOOL_INDEX ] + " sold " + ANSWER + " chickens in " + ( COL_INDEX === COLUMNS.length - 1 ? "total" : COLUMNS[ COL_INDEX ] ) + "." ][ INDEX ]
The table below shows PROBLEM.
QUESTION
schoolenrollment
ANSWER UNIT
The blue row shows ROW_HINT.
jQuery( ".fake_row" ).eq( SCHOOL_INDEX ).find( "span" )
.css( "background", KhanUtil.BLUE );
The orange column shows COL_HINT.
var nth = ":nth-child(" + ( COL_INDEX + 2 ) + ")";
jQuery( ".fake_row span" + nth )
.css( "background", KhanUtil.ORANGE );
jQuery( ".fake_header span" + nth )
.css( "background", KhanUtil.ORANGE );
jQuery( ".fake_row" ).eq( SCHOOL_INDEX ).find( "span" + nth )
.css( "background", "#aaa" );
FINAL_HINT


JUMANJI A film review by James Berardinelli Copyright 1995 James Berardinelli
RATING (0 TO 10): 4.9
United States, 1995 U.S. Availability: 12/15/95 (wide) Running Length: 1:40 MPAA Classification: PG (Mayhem) Theatrical Aspect Ratio: 1.85:1
Cast: Robin Williams, Kirsten Dunst, Bradley Pierce, Bonnie Hunt, David Alan Grier, Bebe Neuwirth, Jonathan Hyde Director: Joe Johnston Producers: Scott Kroopf and William Teitler Screenplay: Jonathan Hensleigh, Greg Taylor, and Jim Strain based on the book by Chris Van Allsburg Cinematography: Thomas Ackerman Music: James Horner U.S. Distributor: TriStar Pictures
Apparently, the producers of JUMANJI wanted this film to be a JURASSIC PARK for 1995's holiday season. If so, it's a badly misplaced, and ultimately futile, hope. For, although no one would suspect Steven Spielberg's 1993 dino-picture of having a plot worthy of great literature, at least it had a storyline -- something this film is lacking. JUMANJI takes approximately one-hundred minutes for four people to play a board game. The result isn't much more fun or involving than watching a few friends play Monopoly. Even the Robin Williams manic humor can't save JUMANJI, at least not entirely.
The film's biggest claim to fame are its special effects. Unfortunately, they don't look as impressive in extended scenes on the big screen as they do in short clips on TV. In fact, there are times when the sequences of charging rhinos, elephants, and zebras look downright cheesy. The monkeys certainly aren't convincing and the LITTLE SHOP OF HORRORS Audrey II-type man-eating plant would have been more effective had it broken into a song. ("Feed Me"?) JURASSIC PARK showed how amazing computer-generated creatures can be when properly handled; JUMANJI shows what happens when less care is given to the technology.
The film opens with a brief segment in 1869, where two children furtively take a board game called Jumanji into the dark depths of a forest, where they bury it, uttering a quick prayer for the soul of whoever digs it up. Switch to Brantford, New Hampshire in 1969, where with a boy named Alan Parrish is getting ready to run away from home. Before he leaves, however, he decides to play one round of a game -- called Jumanji -- that he recently found near his father's work site.
Twenty-six years later, Judy (Kirsten Dunst) and Peter (Bradley Pierce) move into Alan's old house. They find the Jumanji game and start to play. Judy goes first, and her move causes surprise, real-life appearances by lions and monkeys. Then, when it's Peter's turn, Alan mysteriously re-appears, much older and looking suspiciously like Robin Williams with a lot of excess facial hair. A grown-up Sarah (Bonnie Hunt) soon joins the trio, so all the players are assembled. From then on, it's a race to finish the game before rampaging safari rejects destroy Brantford.
The movie goes something like this: someone makes a move, then the characters spend the next ten minutes running away from whatever animals they unleash. Then it's the next player's turn. And so on... until the game (and the movie) ends. JUMANJI comes across more as a blueprint for some deluxe amusement park ride than a legitimate film. It's a pointless trek. The "adventure" is repetitive, he thrills are brief, and the moments of character-building drama are effete. Only the comedy works, but there's not enough of it to justify an entire motion picture.
This is the kind of embarrassing dud that results when Hollywood places special effects and a neat concept over a well-told story. The children's book JUMANJI, written by Chris Van Allsburg, makes for good reading for a young audience, but it's hardly the sort of material upon which to base a major motion picture. The men and women behind JUMANJI didn't just lose a turn; they lost their way.
- James Berardinelli<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Hello World
I'm hosted with GitHub Pages. This is day one of my 100 webpages in 100 days.
Day 5
Don't like it?
Day 4
Listen to some music
Day 3
Can you guess which?
Day 2
Mother's Day Tribute
Day 1
Homepage


---
layout: post
title: portobello cheeseburgers
date: 2012-02-12 01:59:59.000000000 -05:00
type: post
published: true
status: publish
categories:
- dinner
- recipes
- savory
- vegetarian
tags:
- cheeseburger
- mushroom
- portobello
- vegetarian
meta:
_edit_last: '1'
author:
login: sophie
email<EMAIL_ADDRESS>display_name: Pika
first_name: ''
last_name: ''
---
I love mushrooms and have been meaning for the longest time to try my hand at making Portobello burgers!
The results, as suspected, were fantastic--the mushrooms are meaty and juicy and full of flavor from the marinade, a great contrast to the melty cheese.
Portobello Cheese Burgers
adapted from All Recipes
makes 4 burgers
- 4 portobello mushroom caps
- 1/4 cup balsamic vinegar
- 2 tablespoons olive oil
- 1 teaspoon dried basil
- 1 teaspoon dried oregano
- 1 tablespoon minced garlic
- salt and pepper to taste
- 4 (1 ounce) slices pepper jack or other semi-soft cheese
- 4 whole wheat hamburger buns
- Place the mushroom caps, smooth side up, in a shallow dish. In a small bowl, whisk together vinegar, oil, basil, oregano, garlic, salt, and pepper. Pour over the mushrooms. Let stand at room temperature for 15 minutes or so, turning twice.
- Preheat a large saucepan on medium-high heat. (Alternatively, you can grill burgers for a more traditional taste!)
- Place mushrooms on the pan, reserving marinade for basting.
- Grill uncovered for 5 to 8 minutes on each side, or until tender and sauce is reduced, frequently basting by spooning over leftover marinade.
- Meanwhile, lightly toast the hamburger buns.
- As soon as portobellos are ready, quickly top with a slice of cheese, and sandwich with desired toppings in hamburger bun.
- Enjoy warm!


New Restaurant
Food Types
{{foodType}}
Select Location
Downtown
Southwest
Southeast
Northwest
Northeast
Select Price Range
$0-15
$15-30
$30+
Submit
Add New Restaurant
Search Restaurants
Type in a the restaurant name, food type, location, or price range.
Restaurant list
No matches
Click on a restaurant name, type, location, or price range to edit.
{{item.name}}
Delete
Save
-- Food Type:
{{item.food}}
Save
-- Location:
{{item.location}}
Save
-- Address:
{{item.address}}
Save
-- Price Range:
{{item.price}}
Save


Chaos Critters
select your character by clicking on one of the images below! (note: if a character has already been chosen it will be greyed out and unavailable)
SELECT ONE
SELECT TWO
START GAME


PSYC 2317: Statistical Methods for Psychology
Contact info
- Professor: Thomas J. Faulkenberry, Ph.D
- Office: Math 319
- Office hours: MF 8-11 am; MWF 1-3pm (or by appointment)
- Email<EMAIL_ADDRESS>- Website: http://tomfaulkenberry.github.io
- Phone:<PHONE_NUMBER>
Course description
Statistical methods are the primary tool for research in psychology. They are what allow us as researchers to make consistent, data-driven decisions. As such, this is an extremely important course and one that I take very seriously as your professor. The topics we will cover this semester will include descriptive statistics (how we describe data) and inferential statistics (how we make decisions about data). Specifically, this includes central tendency, variability, the distinction between populations and samples, estimation and hypothesis testing, and a variety of inferential techniques that we can apply to data, including \( t \)-tests and analysis of variance.
- Textbook: There are many very good textbooks on statistical methods (e.g., Howell, Gravetter, etc.) You can pick up used copies from Amazon for relatively low cost). However, I do not lecture directly from any specific textbook. I do recommend the following as a good reference to follow this semester, as I think it is a readable textbook that does a good job of bridging theory with hands-on, practical examples.
- Learning Statistics with JASP: A Tutorial for Psychology Students and Other Beginners, by Navarro, Foxcroft, and Faulkenberry (2019), freely downloadable from www.learnstatswithjasp.com
- Calculator: you will need a basic scientific calculator to perform various calculations on homework and exams. I use a TI-84 (mine is over 20 years old and still works!), but any calculator with square roots and logarithms will suffice.
- JASP statistical software: some of the exercises we do this semester will be done on the computer, and we will use JASP, which is freely downloadable from www.jasp-stats.com. JASP should be installed on all campus computers, but if you have a personal computer/laptop, go ahead and install it there…it is free, so why not?
Student learning outcomes
- Compute appropriate measures of descriptive statistics from data
- Calculate probabilities for normally distributed data
- Understand sampling distributions and their relationship to statistical inference
- Estimate population parameters using confidence intervals
- Understand the basic structure of hypothesis tests
- Select and perform appropriate hypothesis tests for given data sets
Requirements and grading
- Exam 1 (100 pts)
- Exam 2 (100 pts)
- Final exam (100 pts)
- Weekly quizzes (100 pts)
- Homework exercises (100 pts)
- Total = 500 points
Grades will be assigned based on the percentage of points you accumulate out of these 500 points. I will use the standard grading scale of A=90%, B=80%, etc.
Exams
There will be three total exams throughout the semester, occurring approximately once every three to four weeks. They will cover material from lectures, quizzes, and homework exercises. Exams are closed book with short answer questions (you'll a Bluebook for each exam) and will be completed in class. Note: after March 23, exams will be given online in Canvas in "take-home" format.
Exam dates:
- Exam 1 (Thursday, February 20)
- Exam 2 (due Sunday, April 5, 11:59 pm)
- Final exam (due Sunday, April 29, 11:59 pm)
Weekly quizzes
I will administer a short in-class multiple choice quiz at the beginning of class on Tuesday of each week (excluding Tuesdays immediately following exam weeks). The quiz will cover content from the previous week's lecture and homework exercises. Each quiz counts for 10 possible points. There will be 10 of these quizzes, so you will earn up to 100 points for your overall quiz grade. Note: after March 23, weekly quizzes will no longer be given.
Homework exercises
In order to practice the statistical concepts you learn this semester, you will complete a short homework assignment every week. A set of homework exercises (usually between 5 and 10 problems) will be provided to you each week. You may work collaboratively on the homework exercises, but any work submitted must reflect your own understanding of the material (in other words, don't just copy someone else's work to submit). Completed exercises should be handwritten neatly on clean paper. Each homework assignment will be due at the beginning of class on Tuesday of the week after it is assigned. Note: after March 23, homework will be submitted online via Canvas.
Course Communication
Email is the primary means of official communication for this course. If you have questions about the course, always feel free to send me an email at<EMAIL_ADDRESS>I only ask that you adhere to two guidelines:
- please include the course number (PSYC 2317) in the subject line. For example, one good way to do this is: Subject: [PSYC 2317] Question about Exam 2
- please use proper email etiquette.  You might be surprised how many times I get an email from a nondescript email address with no indication from WHOM the email was sent!
Also, I will send periodic class announcements via email. Thus, it is imperative that you check your Tarleton email address regularly so that you don't miss any of these messages.
CV Points for Psychology Majors
All Tarleton psychology majors will be required to accumulate a certain number of "CV points" as a pass/fail component of their senior capstone course. CV is an acronym for "curriculum vitae", which is the traditional name of an academic resume. Because it is a requirement of senior capstone, no psychology major will be able to graduate without completion/verification of the required 15 CV points. Some classes may build in CV point assignments, but ultimately it is the students’ responsibility to monitor their participation and acquire points during their time at Tarleton. More information on pre-approved CV points, submission, and tracking of these points can be found in the CV Point Canvas site. Please note that submissions are graded, and may not be approved for points if they do not meet the CV standard. If a student has a question about CV points, they should send an email to<EMAIL_ADDRESS>University Policy on "F" Grades
Beginning in Fall 2015, Tarleton will begin differentiating between a failed grade in a class because a student never attended (F0 grade), stopped attending at some point in the semester (FX grade), or because the student did not pass the course (F) but attended the entire semester. These grades will be noted on the official transcript. Stopping or never attending class can result in the student having to return aid monies received. For more information see the Tarleton Financial Aid website.
Academic Honesty
Tarleton State University expects its students to maintain high standards of personal and scholarly conduct. Students guilty of academic dishonesty are subject to disciplinary action. Cheating, plagiarism (submitting another person’s materials or ideas as one’s own), or doing work for another person who will receive academic credit are all disallowed. This includes the use of unauthorized books, notebooks, or other sources in order to secure of give help during an examination, the unauthorized copying of examinations, assignments, reports, or term papers, or the presentation of unacknowledged material as if it were the student’s own work. Disciplinary action may be taken beyond the academic discipline administered by the faculty member who teaches the course in which the cheating took place.
In particular, any exam taken online must be completed without the aid of any unauthorized resource (including using any search engine, Google, etc.). Authorized resources are limited only to the official textbook and any lecture notes from the course. Any other authorized resources will be provided to you before the exam. The minimum sanction for violation of this policy is a grade of 0 on the affected exam.
Each student’s honesty and integrity are taken for granted. However, if I find evidence of academic misconduct I will pursue the matter to the fullest extent permitted by the university. ACADEMIC MISCONDUCT OR DISHONESTY WILL RESULT IN A GRADE OF F FOR THE COURSE. Students are strongly advised to avoid even the appearance of academic misconduct.
Academic Affairs Core Value Statements
Academic Integrity Statement
Tarleton State University's core values are integrity, leadership, tradition, civility, excellence, and service. Central to these values is integrity, which is maintaining a high standard of personal and scholarly conduct. Academic integrity represents the choice to uphold ethical responsibility for one’s learning within the academic community, regardless of audience or situation.
Academic Civility Statement
Students are expected to interact with professors and peers in a respectful manner that enhances the learning environment. Professors may require a student who deviates from this expectation to leave the face-to-face (or virtual) classroom learning environment for that particular class session (and potentially subsequent class sessions) for a specific amount of time. In addition, the professor might consider the university disciplinary process (for Academic Affairs/Student Life) for egregious or continued disruptive behavior.
Academic Excellence Statement
Tarleton holds high expectations for students to assume responsibility for their own individual learning. Students are also expected to achieve academic excellence by:
- honoring Tarleton’s core values, upholding high standards of habit and behavior.
- maintaining excellence through class attendance and punctuality, preparing for active participation in all learning experiences.
- putting forth their best individual effort.
- continually improving as independent learners.
- engaging in extracurricular opportunities that encourage personal and academic growth.
- reflecting critically upon feedback and applying these lessons to meet future challenges.
Students with Disabilities Policy
It is the policy of Tarleton State University to comply with the Americans with Disabilities Act (www.ada.gov) and other applicable laws. If you are a student with a disability seeking accommodations for this course, please contact the Center for Access and Academic Testing, at<PHONE_NUMBER> or<EMAIL_ADDRESS>The office is located in Math 201. More information can be found at www.tarleton.edu/caat or in the University Catalog.
Note: any changes to this syllabus will be communicated to you by the instructor!
Semester Schedule
| Unit | Dates | Topic |
|---|---|---|
| Jan 13-17 | (no class – I will be at Joint Mathematics Meetings) | |
| 1 | Jan 20-24 | Measures of central tendency |
| 2 | Jan 27-31 | Measures of variability |
| 3 | Feb 3-7 | The normal distribution |
| 4 | Feb 10-14 | Distributions of sample means |
| Feb 17-21 | Exam 1 | |
| 5 | Feb 24-28 | Estimation and hypothesis testing |
| 6 | Mar 2-6 | Introduction to the \( t \)-test |
| Mar 9-13 | (no class – Spring Break) | |
| Mar 16-20 | (no class – extended break due to COVID-19) | |
| 7 | Mar 23-27 | \( t \)-tests for independent samples |
| Mar 30 - Apr 3 | Exam 2 due Sunday, 4/5, 11:59 pm | |
| 8 | Apr 6-10 | Confidence intervals for \( t \)-tests |
| 9 | Apr 13-17 | Analysis of variance |
| Apr 20-24 | Final exam due Sunday, 4/26, 11:59 pm |
Note: Beginning March 23, all course activities are shifted to online format on Canvas. See course Canvas page for detailed instructions.


 Actually I played with callbacks. Here ist what I did:
console.log("FIRST WAY:") var fn = (function(param) { console.log("param in fn (first way): " + param); }('bla')); var action = function(callback) { callback; } console.log("calling action:"); action(fn); console.log("action is a: " + typeof action); console.log("fn is a: " + typeof fn); console.log(" ") console.log("OTHER WAY:") var fn = function(param) { console.log("param in fn (other way): " + param); } var action = function(callback) { var param = 'other way'; callback(param); } console.log("calling action:"); action(fn); console.log("action is a: " + typeof action); console.log("fn is a: " + typeof fn);
Result:
FIRST WAY: param in fn (first way): bla calling action: action is a: function fn is a: undefined OTHER WAY: calling action: param in fn (other way): other way action is a: function fn is a: function
Hm - what’s that? Yeah - just playing around. Actually there are two things which are kind of interesting. First, the anonymous function is called immediately after it was built. Even though it is held in a variable (fn).
The second thing is, that the typeof fn is undefined. Hm … I don’t know why at the moment I am writing this. I would expect it is a string. I will examine this further.
One side note: you have to call the callback in action() in the first approach as a string because it’s not a function - that’s why I assume it should be typeof string.
The conclusion is: don’t use the first way because it does not work and does not make sense at all.


-- Second Apparition(4.1.79)
Men, of course, are mortal. And that plays a huge role in how we all percieve the characteristics of men. Being mortal, a man's power is limited. Being mortal, a man's courage is limited. Being mortal, a man's greatness is limited. Indeed, death is a limit to everything mortal and therefore anything related to man. This is a theme in many plays, even Antigone: after Creon orders the sentry to find out who buried Eurynices, the chorus exclaims: "Only Death, from Death alone he will find no rescue but from desperate plagues he has plotted his escapes."
Yet death is not the only characteristic of mortality. In Macbeth, a key theme of mortality is the state of being "of woman born." For mortals are all born from mortals, and Macbeth is no such exception. And being mortal, he is subject to the lusts and ambitions that mortals have. But there is an exception, of course. Macduff is not of woman born, which makes him less or greater than a man. This also explains his deviation from standard definitions of man, as is discussed on the next page.
Despite guaranteeing Macbeth invinicibility, however, the apparition's prophecy also seems to be some kind of warning. "Laugh to scorn the power of man" implies that although men might seem great and powerful, their power is an illusion that is bound by their mortality."


VSL // Maps On Maps On Maps
* Railfan Atlas
today’s Very Short List:
culture 20 Apr 2015
Diane Pham is the founder and editorial director of 6sqft.com, a new site tracking NYC’s architecture, design, and real estate news. Diane created the blog as a way to document and celebrate the city’s rich history, vibrant present, and exciting future. See more awesome maps
Subscribe
* According to this map


In this example we have custom status defined on the application level. We need to provide a approvalStatusTemplate template to tell the ApprovalFlow component how to handle these different states
approvalStatusTemplate
ApprovalFlow


#include <DCGMDevicePoolImp.hpp>
|
| | DCGMDevicePoolImp () |
| |
| virtual | ~DCGMDevicePoolImp () |
| |
| virtual int | num_device () const override |
| | Number of GPUs that support DCGM on the platform. More...
|
| |
| virtual double | sample (int gpu_idx, int field_id) const override |
| | Get the value for the provided geopm_field_id. More...
|
| |
| virtual void | update (int gpu_idx) override |
| | Query DCGM for the latest value for an GPU. Note that this is the last value DCGM cached. This updates the DCGM device pool stored value that is provided via the sample_field_value function. More...
|
| |
| virtual void | update_rate (int field_update_rate) override |
| | Set field update rate for DCGM devices. This is the rate. More...
|
| |
| virtual void | max_storage_time (int max_storage_time) override |
| | Set maximum storage time for for DCGM devices. This is the maximum time a DCGM sample will be kept. More...
|
| |
| virtual void | max_samples (int max_samples) override |
| | Set maximum samples to store for for DCGM devices. This is the maximum number of DCGM samples that will be kept. 0 indicates no limit. More...
|
| |
| virtual void | polling_enable (void) override |
| | Enable DCGM data polling through setting the watch fields. More...
|
| |
| virtual void | polling_disable (void) override |
| | Disable DCGM data polling through calling unwatchfields. More...
|
| |
| | DCGMDevicePool ()=default |
| |
| virtual | ~DCGMDevicePool ()=default |
| |
◆ DCGMDevicePoolImp()
| geopm::DCGMDevicePoolImp::DCGMDevicePoolImp |
( |
| ) |
|
◆ ~DCGMDevicePoolImp()
| geopm::DCGMDevicePoolImp::~DCGMDevicePoolImp |
( |
| ) |
|
|
virtual |
◆ max_samples()
| void geopm::DCGMDevicePoolImp::max_samples |
( |
int |
max_samples | ) |
|
|
overridevirtual |
Set maximum samples to store for for DCGM devices. This is the maximum number of DCGM samples that will be kept. 0 indicates no limit.
- Parameters
-
| [in] | max_samples | maximum number of samples to store |
Implements geopm::DCGMDevicePool.
◆ max_storage_time()
| void geopm::DCGMDevicePoolImp::max_storage_time |
( |
int |
max_storage_time | ) |
|
|
overridevirtual |
Set maximum storage time for for DCGM devices. This is the maximum time a DCGM sample will be kept.
- Parameters
-
| [in] | max_storage_time | maximum storage time in seconds |
Implements geopm::DCGMDevicePool.
◆ num_device()
| int geopm::DCGMDevicePoolImp::num_device |
( |
| ) |
const |
|
overridevirtual |
Number of GPUs that support DCGM on the platform.
- Returns
- Number of GPUs supported by DCGM.
Implements geopm::DCGMDevicePool.
◆ polling_disable()
| void geopm::DCGMDevicePoolImp::polling_disable |
( |
void |
| ) |
|
|
overridevirtual |
◆ polling_enable()
| void geopm::DCGMDevicePoolImp::polling_enable |
( |
void |
| ) |
|
|
overridevirtual |
◆ sample()
| double geopm::DCGMDevicePoolImp::sample |
( |
int |
gpu_idx, |
|
|
int |
field_id |
|
) |
| const |
|
overridevirtual |
Get the value for the provided geopm_field_id.
This value should not change unless update_field_value has been called
- Parameters
-
| [in] | gpu_idx | The index indicating a particular GPU. |
| [in] | field_id | One of the m_field_id_e values |
- Returns
- The value for the specified field
Implements geopm::DCGMDevicePool.
◆ update()
| void geopm::DCGMDevicePoolImp::update |
( |
int |
gpu_idx | ) |
|
|
overridevirtual |
Query DCGM for the latest value for an GPU. Note that this is the last value DCGM cached. This updates the DCGM device pool stored value that is provided via the sample_field_value function.
- Parameters
-
| [in] | gpu_idx | The index indicating a particular GPU. |
Implements geopm::DCGMDevicePool.
◆ update_rate()
| void geopm::DCGMDevicePoolImp::update_rate |
( |
int |
field_update_rate | ) |
|
|
overridevirtual |
Set field update rate for DCGM devices. This is the rate.
- Parameters
-
| [in] | field_update_rate | DCGM update rate in microseconds. |
Implements geopm::DCGMDevicePool.
The documentation for this class was generated from the following files:


Jesse Sessler & Bruno Barbieri
Started in October with version ~0.11
iOS Only - Integrated into our existing app
Previous Android app was Phonegap
Helpful Scripts
Other helpful links
Structure:
Views(redux) → Components
We're using the legacy Navigator
Experimental was brand new and unstable when we started
Pass navigator into every route
Use InteractionManager.runAfterInteractions for transitions to heavy scenes (docs)
Add a background color to every scene, even if it's white
The "Fake Nav Bar" Hack
Tradeoff between rows loaded & time spent
Alternative: react-native-sglistview
Custom modules we've created:
2 JAVA FILES
Your Native Module Package
Your Native Module Class
Synchronous Method
Asynchronous Method
DATATYPES
JS CODE
Import your native module
Synchronous Method
Asynchronous Method
A few things to remember:
More info:
https://facebook.github.io/react-native/docs/native-modules-android.html
First thought: ScrollView + onScroll + setState
Choppy, setState() is too expensive
Use Animated library instead
Bypass setState, call setValue directly on Animated Values
or
More:
Programmatic scrolling is easy and performant
measureLayout + findNodeHandle (docs)
Problem: react-native/issues/3219
Web, IOS, Android teams all now use React / React Native + Redux
Keep most non-component code in a shared Git repository, which is a dependency through npm
41% of Javascript files written for the app are shared
We're now sharing developers across teams as well!
If you find a bug, open a github issue
Check first if it's known, then upvote
Use stack overflow for questions (tag react-native)
REALLY good way to learn
No need to know Obj-C or Java to contribute
We've had 5 Android contributions so far
Use icons over images when possible
react-native-vector-icons has been really easy to use
Fontello for custom icons
React Native moves FAST
Testing perfomance / animations with dev=true?
Hot reloading? Awesome (most of the time)
Test your release APK early and often
https://play.google.com/apps/testing/com.deliverycom/
Email us at<EMAIL_ADDRESS>and get 10% off all your beta app orders!
Slides: http://bit.ly/dcom-android-rn


Hiking in Georgia – from Mestia to Zardlashi and Murshkeli villages
by Monika Suchoszek
Sunny days finally arrived and we used our chance for another trek, this time it was first part of 4-days trek to Ushguli. At the beginning, the path passes Hotel Tetnuldi, where we could already seen stunning view of Mt.Ushba in a distance!
In comparison to the last day, a perfectly clear sky gave us a chance to see multiple mountain ranges. After a while, we have seen wild herd of horses who did not pay attention to us at all. They look magnificent with the mountains and Mestia village in the background.
Wide path guided us few kilometers through the fields until it reached wooden sign marking the direction to the near villages. We kept going straight, path became very narrow, muddy and steep. Branches of the trees and dense bushes made this part the most difficult. After that part path again became easy and pleasant, branching into few variants which were leading into the same direction.
We could see in a distance the only road leading to Ushguli with heavy trucks on it. Few villages in the valley looked pretty old and destroyed, however the characteristic for this region towers were still on their places. At on point we decided to start heading back to Mestia, from curiosity choosing the way through one of the villages located in the lower part of the valley. Buildings seemed to be abandoned and we haven’t seen anyone there, besides one, barking dog. We got trapped in 10 cm deep mud while passing the narrow paths in the village, luckily no one fall into it! We decided to return mostly the same way as we came to avoid more muddy and unpleasant surprises :) We have met only few tourists, horses and a dog during this really nice, 20 km walk on that bright and warm day.
As always we finished the hike in one of the restaurants in Mestia, waiting for a great meal to compensate the toils of the day. This time as a appetizer zucchini rolls with garlic-walnut paste as a filling, served cold :)
Practical info:
On the map below you can see our hike and the distance. It took us almost 3h to get there and almost the same (including breaks) to get back. We were not rushing, just enjoying the day.
Subscribe via RSS


Calcular TimeStamp
Date to TimeStamp
Data:
Data:
TimeStamp:
Gerar
TimeStamp To Date
TimeStamp:
Data:
Gerar


|
SDK
Release 1.1.4
Communications, logger, and bootloader libraries.
|
#include <ISStream.h>
Public Member Functions | |
| cISStream (cISStreamReader *reader, cISStreamWriter *writer, bool ownsReader=true, bool ownsWriter=true) | |
| virtual | ~cISStream () |
| int | Read (uint8_t *buffer, int count) OVERRIDE |
| int | Write (const uint8_t *buffer, int count) OVERRIDE |
| int | Close () |
| bool | CanRead () |
| bool | CanWrite () |
Protected Member Functions | |
| cISStream () | |
Interface to read and write data using stream interfaces
Definition at line 69 of file ISStream.h.
|
inlineprotected |
Constructor for derived classes that have custom read / write logic
Definition at line 83 of file ISStream.h.
| cISStream::cISStream | ( | cISStreamReader * | reader, |
| cISStreamWriter * | writer, | ||
| bool | ownsReader = true , |
||
| bool | ownsWriter = true |
||
| ) |
Constructor
| reader | the reader to read from or NULL for no reading |
| writer | the writer to write from or NULL for no writing |
| ownsReader | whether this instance owns (and deletes on destruction) reader |
| ownsWriter | whether this instance owns (and deletes on destruction) writer |
Definition at line 39 of file ISStream.cpp.
|
virtual |
Destructor If this instance owns the reader and/or writer streams, they are deleted
Definition at line 59 of file ISStream.cpp.
|
inline |
Gets whether this stream can read
Definition at line 127 of file ISStream.h.
|
inline |
Gets whether this stream can write
Definition at line 133 of file ISStream.h.
|
virtual |
Close the stream
Reimplemented from cISStreamClose.
Definition at line 72 of file ISStream.cpp.
|
inlinevirtual |
Read n bytes from the stream
| buffer | the buffer to read into |
| count | the max count of bytes to read |
Reimplemented from cISStreamReader.
Definition at line 107 of file ISStream.h.
|
inlinevirtual |
Write n bytes from the stream to buffer
| buffer | the buffer to write into |
| count | the max count of bytes to write |
Reimplemented from cISStreamWriter.
Definition at line 115 of file ISStream.h.


This session is responsible for developing significant cycling strength – we will be doing it or very similar strands of it all year round. It is a typical sutto session. Essentially it teaches you to recruit dormant muscle fibres. It also does a great job at mitigating the catabolic (breaking down) effects of the longer endurance training done on the weekend. Monday/Tuesday is a perfect day for this session after a big aerobic block over the weekend. Because it’s repeatable it’s very useful as a benchmark week on week. Last week your felt great, this week not so. Why not? Sleep, stress, not into it?
Bonus, this session can be done on a gym or spin bike when traveling.
The intervals themselves are done at around 40-45rpm with VERY HARD resistance/ 1′ very easy recovery. We can use FTP as a guide here, but by all means adjust if it’s too hard or easy. My last FTP test was 276. I tend to do these at 130%. So thats an idea. Like I say, it may go up or down. If using Zwift for these, set it to 130 but dial down if need be. I use the Wahoo fitness App for these, I can adjust on the fly to whatever I want.
We don’t want to be limited by watts or FTP for this. We want to go as high as we can without bouncing in the saddle. Do not do these intervals in a TT position. Very important.
Since 50% of this session is recovery, your aerobic system is not taxed by the session. As muscularly challenging and hard as it is.
STOMP those pedals!! We don’t care about perfect power throughout each pedal rotation. Stomp as hard as you can on the downstroke. Athletes need to focus more on the stomping than trying to smooth out pedal stroke or worse pull up on the pedal stroke which can injure hamstring. All the best time trialists stomp on the pedals from the 1 o’clock to the 5 o’clock. The stomp is key. It works.
CUE: Push through your big toes to activate the glutes


Landing Page
Special Projects
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.
LIZ MOUGHON
Left to right, Saumya Pant and her daughters Paavni Pant-Rao and Suhaani Pant-Rao purchase a Christmas tree from Big Lots in Athens, OH, on Dec. 5, 2016. Originally from India, they have also lived in Abu Dhabi and New Mexico.
02.09.17
Clarification: A photo below has been updated to better explain the photo.
Nagesh Rao, 54, and Saumya Pant, 42, met at Ohio University in 1998. At the time, Rao was an interpersonal communication professor, and Pant was working toward a doctorate in communication studies.
Rao, from southern India, and Pant, from northern India, faced disapproval from their parents while dating due to the age gap of almost 13 years and their cultural differences.
Rao and Pant dated for four years before having a traditional Indian wedding in a Hindu temple in Chicago, though they still lived in Athens.
Liz Moughon / Photo Editor
Husband and father, Nagesh Rao, jokingly places a red Christmas ribbon on his sweatshirt while he pulls Christmas decorations out of shopping bags with his daughter, Paavni, in their Athens home on Dec. 6, 2016. They plan to only be back in Athens for a year as they hope to start an organization for empowering women, called “Siya,” after an Indian god who is a powerful woman known for sacrifice.
Liz Moughon / Photo Editor
Chicken Curry, Dal, Pulao, Okra and Saag Paneer are conventional North Indian dishes that the Pant-Rao family enjoy. South Indians traditionally use more mustard seed in simpler dishes, while North Indians cook lavish meals with a lot of cumin.
Liz Moughon / Photo Editor
Saumya "jhootas" the spoon while adding spices to one of her Indian dishes on Nov. 21, 2016. The concept of jhoota originates from the caste system. Someone from a higher caste would never share germs with an untouchable, so tasting from a community dish like this is still looked down upon at most Indians gatherings, especially where elders are present. However, it has become a personal preference that is not an issue for most families. There is no equivalent English word for jhoota.
Liz Moughon / Photo Editor
The Pant-Rao family eats pizza as they watch the election results roll in on Nov. 8, 2016 in their home. The girls requested to stay up until the new president was revealed. Saumya said, "I'll wake you up if Hillary wins." A few days later Suhaani said, "No one woke me up in the night so I kind of knew that Trump had won. It was sad...I had this feeling that Hillary would really win, but she really did not."
Liz Moughon / Photo Editor
While Paavni fills her backpack on Friday afternoon, Nov. 18, 2016, Nagesh ties his shoes. They are preparing to go to Columbus, for the night to celebrate a birthday party with their family friends, the Chandnas, of 18 years.
Their daughters are Paavni, 12, and Suhanni, 10.
The family has lived in Abu Dhabi, India, New Mexico and Athens. Rao and Pant hope Paavni and Suhaani will be able to live in any type of environment.
Liz Moughon / Photo Editor
"It was pretty good! I really liked it," Suhaani said after eating a Rice Krispy Treat for her first time at her elementary school on Nov. 15, 2016.
They left Abu Dhabi, where they lived in 2005, because they found few research opportunities and disagreed with the restrictions on women’s freedoms.
“Empowerment is not just about rubbing shoulders with men and working with men; it’s about what kind of dignity and self-respect you live your life, what agency you have in life, the capacity to make changes and influence change,” Pant said about the women she taught. “These women have found ways to feel empowered and independent in their domestic spaces.”
Both Rao and Pant taught a racially diverse population of students at the University of New Mexico in 2008.
After Rao’s mom was diagnosed with cancer in 2009, the family moved to India in 2010. While there, Rao served as president of MICA University. During his time as president, monkeys often camped outside their windows and peered into their home for entertainment.
Having returned to Athens in 2016 in search of better employment, Pant holds a one-year teaching position at Ohio University, and Rao is a consultant for the Heritage College of Osteopathic Medicine.
“I look different from all of you … Are you curious about the dot I wear or the clothes I wear?” Pant said to her students. “It’s perfectly OK to not know, but it’s also OK for you to ask me rather than (be) uncomfortable around me the whole term.”
Liz Moughon
Saumya kisses Suhaani after picking her up from school on Nov. 15, 2016. In Indian culture people don't usually show public displays of affection, but that's a custom that the Pant-Rao family has dropped since moving back to America and raising their children here.
Liz Moughon
Saumya is a professor of communication studies at Ohio University. On Nov. 4, 2016 she lectured on hijras, male-to-female transgender individuals living mostly in India and Pakistan. At the end of class, she showed a video demonstrating their persecution and how people hire them for all the main holidays and celebrations yet discriminate against them the rest of the time.
Keep scrolling to see the rest of the photos in this photo story.
Liz Moughon / Photo Editor
Saumya rings the bell at Sri SaiBaba Temple on November 19, 2016. Ringing the bell signifies awaking the goodness in one's soul.
Liz Moughon / Photo Editor
Paavni applies bright red lipstick at Ulta on Nov. 19, 2016 in Columbus, when she went for her first make-up tutorial.
Liz Moughon / Photo Editor
After school on Dec. 5, 2016 Paavni and Suhaani look through photos of their old classmates at Mahatma Gandhi International School back in India.
Liz Moughon / Photo Editor
The Pant-Rao family lingers with the Chandnas and their friends on Nov. 18, 2016. Large and loud gatherings of people are common in Indian culture.
Liz Moughon / Photo Editor
Arianna and Suhaani watch "Mighty Med" TV show after Arianna's birthday party celebration. The Chandnas used to live in Athens, but they moved so the girls don't often have sleepovers anymore.
Liz Moughon
Paavni catches her first snowflakes with her tongue on Nov. 19, 2016 in the Chandna’s neighborhood in Columbus.
Liz Moughon
Paavni was very young when they moved abroad, so on November 19, 2016 in the Chandna’s neighborhood, she saw snow for the first time in her life.
Landing Page
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.


{% import "_includes/forms" as forms %} {% includeCssResource 'supertable/css/SuperTableInput.css' %}


Following a couple of discussions about interfacing "hive" and "nest" to emonHub and a couple more about fetching feed data from emoncms for glcd etc plus the fact I have several of my own custom scripts like a weather retrieval script and a PC /Pi performance monitor and more recently a request for a data generating test script, I wonder if it was easier to interface and experiment with emonHub without interfering with it's normal running more users would be tempted to construct custom scripts.
Does anyone have any thoughts on this?
I'm currently thinking along the lines of a folder that emonhub will check for files and launch each one without prior knowledge of what is in there. A custom script would need to conform to a loose template but would be helped by a single import eg "from emonhub import modules" this would include as much as could be pre determined so that a script could just provide data somehow, either contacting a website or doing some calculations or reading a file or just generating random numbers as long as it ends with a "nodeid val1 val2 etc" emonhub could pick it up and process it,
If the script runs slow or fails etc emonhub will carry on regardless (maybe notify or log something) but the main thing being it is protected from being crashed by a experimental script and it allows a communication or process to be developed alongside emonHub maybe becoming a permanent or optional "official" interfacer down the line.
An excellent candidate for the is packetgen, not yet implemented (although it will be at some point) but in the mean time if you could just "drop" a packetgen.py script into the modules folder and it works, that must be easier way to share, easier to implement and wouldn't be effected by future updates to emonhub as it would all be done via a fairly standard socketinterfacer which will continue to work regardless of any changes to emonHub structure.
worth pursueing?
Paul
Re: emonhub modules "sandbox"
The elephant in the room seems to be the lack of MQTT support from emoncms.
3 months ago, Trystan had a working model which appeared to work well, albeit there was no automatic daemon for it to function independently.
If MQTT was implemented, it would open the door for much greater integration with other data sources as it is a commonly accepted standard, and would help focus emoncms on it's core functionality, instead of being all things to all people.
My personal opinion is that if Trystan & Glyn could clearly define what emoncms 'is' and 'isn't', then development could concentrate in key areas, to make it a clearly defined, rock solid solution.
Paul
Re: emonhub modules "sandbox"
Hi Paul, I can't really disagree with anything you've said, although I do think the lack of MQTT is holding things back a bit it's not the whole picture, ideally emonhub and emoncms would use a similar standard and the bigger elephant is control, to which MQTT will play a large part. certainly emonhub needs considerable reworking to implement control properly (and maybe the same for emoncms).
The reason I'm finding it difficult to get the control side going on emonHub is because it was built to collect data full stop. now I find myself trying to adapt it, the same could be said for other elements of the project so rather than implement MQTT optimised for collecting data and then try and bend it to fit control I would like to get a good grasp of what we need for control first.
What is clear is the detail needs to be discussed openly with several perspectives so that time and effort isn't wasted on parallel and overlapping but incompatible ideas.
This is important but not directly linked to the point I was raising here though. the idea behind this is to provide a simple drop in facility that does away with thinking about MQTT, file structures and protocols ( as best we can) so that if someone has an idea or some weird sensor or website data etc they can take a blank file add a import statement to make it "emonhub compatible" and write anything that results in a string of values, no complexity, no conforming, no configuration files just get the idea to work, any sensor connected to the gpio or any website, cron, internal files, weird and wonderful calculations, the end result is passed to emonhub as a simple string of values via a socket and processed, which yes could mean publishing it to MQTT (in time),
I was hoping this could speed up development of more exotic interfaces as users could create scripts without needing a knowledge of emonhub and the scripts (or modules) would be single files that can be passed around the forum like sketches until perfected and then maybe become a in-built emonhub_interfacer by adjusting it to fit.
Paul
Re: emonhub modules "sandbox"
Paul (pb66) has asked for members thoughts on this suggestion.
Out of courtesy to Paul, can we have a little feedback please? otherwise he may take the view that nobody wants it and therefore not worth his time developing...
Paul
Re: emonhub modules "sandbox"
Quote: "This is important but not directly linked to the point I was raising here though. the idea behind this is to provide a simple drop in facility that does away with thinking about MQTT, file structures and protocols ( as best we can) so that if someone has an idea or some weird sensor or website data etc they can take a blank file add a import statement to make it "emonhub compatible" and write anything that results in a string of values, no complexity, no conforming, no configuration files just get the idea to work, any sensor connected to the gpio or any website, cron, internal files, weird and wonderful calculations, the end result is passed to emonhub as a simple string of values via a socket and processed, which yes could mean publishing it to MQTT (in time), "
The way I would consider (I have not as yet had a look at the code, I have been lurking only for a while), would be similar to what you describe, but I would not have it write to a socket, there is a risk that a process might kill/hang the emoncms daemon.
What I have seen in the past, would be a daemon running the main emon get process. A second daemon would run, periodically spawning scripts from the 'plugin' dirt. These would import the main module, and then 'register' a name, and their outputs, descriptions and types. This would back off to a database store. The user would then do their stuff, and have two main functions, a get("module",item/all) which would retrieve an item (latest) from the db, where "module" is emoncms or plugin.name, and item is the variable.
Conversely, a put function, which DOESN'T take the module name, just the variable and data.
To display, a template could be stored in the plugin/html directory that the webserver parses and inserts the variables.
It is possible that this could also be powerful enough to publish variables across the network.
Personally, I would have a third daemon which is almost identical, but performs control functions.
Re: emonhub modules "sandbox"
Thanks Paul for asking about this! Paul Reed what do you think is the ambiguity about what emoncms is and isnt (before I try and second guess) I need to do some more work on communicating my recent developments and ideas. Been doing a lot, https://github.com/emonhub/emonhub/issues/134 but need to write more about it
(this is probably a bit off-topic for the discussion topic of modules sandbox though)
I like the idea of making it possible to add/remove modules
Re: emonhub modules "sandbox"
Creating a sustainable world is a aspiration, and which oem admirably contributes to, but not something which can be achieved by oem alone.
But it's unclear where the boundaries are (as pb66 has mentioned above), because emoncms started as data logging/display software, yet it has evolved into a multi-faceted system which is becoming ever-increasingly hard to develop, to maintain, and not reaching full potential in many areas.
I hoped (being the 10th initial member of this forum) that emoncms would eventually become a fully fledged graphical interface to energy data, and thereby educate users how to reduce wasted energy, but the focus appears to have shifted to energy models, add-ons, etc. which to the majority of users are disregarded.
Many of the additional functions could have been more admirably be performed by other software which is being developed within their own confines & expertise, but they need the conduit to communicate - hence my drive towards a common standard - MQTT.
Paul
Re: emonhub modules "sandbox"
Thanks for the "bump" Paul.
@Trystan - Its always been a goal to add/remove modules one day, as in properly coded interfacers. The emphasis here is on the sandbox idea. to try and make a simple way of trying stuff with hardcoded variables rather than a config file etc.
@coldpenguin - thanks for your input, this is targeting emonhub rather than emoncms, the use of sockets was to keep it simple as in a "testmodule" type interfacer could be used, so quite literally a test script would consist of an "from emonhub import modules" for example at the top and a "send_to_emonhub(string_of_values)" at the bottom what happens in the middle can be anything, as long as it doesn't crash the host machine it shouldn't effect emonhub or emoncms because of the strict(ish) conditioning/filtering/sanitation done by the "send_to_emonhub()" before dispatching the string to emonhub "modules" port (ModulesInterfacer).
If that's any clearer? probally not :-)
Paul
Re: emonhub modules "sandbox"
Feeding Hive data to emoncms
'works with nest' functionality feasible?
How to simulate data sent from EmonTx to EmonHub in order to debug a reporter?
3 current examples that could use something like this, even if just during development until a working solution is found but one of scripts can remain in a prototype form perhaps.
Re: emonhub modules "sandbox"
Thanks @PaulReed, Il start another forum topic with my ideas for what I would like to include within emoncms. Where I see it going. I think its definitely going to get a lot better and yes making it more maintainable is crucial :)


Storm Sebastien to lash UK with high winds and heavy rain for days
Waves could be up to 22ft in places
by Neil ShawStorm Sebastien is set to bring gale-force winds and torrential rain to the UK for days on end this week, according to the latest forecast.
Waves could by 22ft in places as the remains of the tropical storm lash the UK.
Three weather warnings have been issued by the Met Office for the first three days of the week, forecasting heavy rain across parts of the country.
The first, which ends at 10am today, was for up to 25mm of rain across the South West and South Wales.
The second, tomorrow, covers South Wales, the South West and the South East and lasts until 3pm on Wednesday.
We could see up to two weeks of rain in a few hours.
And a final warning will be in place in Yorkshire from midnight on Tuesday to 6pm on Wednesday.
As much as 60mm of rain could hit parts of the region, almost half of the 121mm average total for November.
Met Office forecaster Marco Petagna told The Sun : “Remnants of Tropical Storm Sebastien mean it will be windy on Tuesday into Wednesday with gales in the South and South-West, and high spring tides.
“It's not a pretty picture, with warnings for rain for the next few days after some places had three times their normal rain in the first half of the month."
Tropical Storm Sebastien was feared to be on the verge of becoming a hurricane, with swirling 60mph winds.
It has broken up as the last storm of the season crossed the Atlantic, but will still bring foul weather to the country over the next few days.
Latest Met Office forecast for the south of the UK
Monday 25 Nov - Friday 29 Nov
Headline:
Breezy and wet with some drier interludes.
Today:
Blustery showers throughout the day with plenty of dry interludes and breaks in the cloud, particularly during the afternoon. Also the potential for some patchy hill fog. Maximum temperature 14 °C.
Tonight:
A mostly dry and clear first part to the night. However, a band of heavy rain pushing in from the southwest during the early hours and into the morning. Minimum temperature 7 °C.
Tuesday:
A wet and windy start on Tuesday, however, the heaviest rain will push through and clear by late morning. Heavy showers and strong winds will remain. Maximum temperature 14 °C.
Outlook for Wednesday to Friday:
A wet and windy day throughout on Wednesday. Blustery showers on Thursday. Brighter weather arriving on Friday with dry and mostly clear skies, but feeling cold.No problem


Activate the "Code" button in the header to view the html file and edit. Select example files from the sidebar to get started with interactive demos.
d3.js / live is an open-source, in progress experiment.
This tool is built using React and Redux. The code block is created with react-codemirror, built on top of the awesome
CodeMirror project. Other dependencies (and big props!) can be found on the github repo.
This is the D3.js version of the code editing tool used with threejs.live. Just like three.js, I've been working with D3 for a few years and have found that the best educational resource is the set of example files created by Mike Bostock and other members of the community. This site is built mostly off of Mike Bostock's gists, but there are a good deal of other examples borrowed from bl.ocks.
I made this site for two main reasons. For one, while the robust set of example files are inspiring, it's difficult to sift through them all. This site looks to curate the examples to a simpler set with the bare necessities. Also, I've found that the best method for learning the elegant/obscure D3 API is through interaction, so this site adds the ability to edit the file in-session. Users can modify example files without having to clone the repo and run them locally.
There are more substantial tools out there like Block Builder, so have a look at that if you'd like to create your own blocks. Also, if you'd like to add gists to the site, please submit a PR by editing this file. Thanks!


| AdAccount
|
| AdAccountGroup
|
| AdAccountGroupAccount |
| AdAccountGroupUser |
| AdCampaignFrequencyControlSpecs
|
| AdCampaignGroup
|
| AdCreative
|
| AdCreativeLinkData
|
| AdCreativeLinkDataAppLinkSpec |
| AdCreativeLinkDataCallToAction
|
| AdCreativeLinkDataCallToActionValue
|
| AdCreativeLinkDataChildAttachment |
| AdCreativeObjectStorySpec
|
| AdCreativeOfferData |
| AdCreativePhotoData |
| AdCreativeTextData |
| AdCreativeVideoData |
| AdDeliveryCheck
|
| AdgroupPlacementSpecificReviewFeedback |
| AdgroupReviewFeedback |
| AdLabel
|
| AdPromotedObject
|
| AdRecommendation |
| AdRecommendationData |
| AdsActionStats
|
| AdSet
|
AdsImageCrops
Represents the
AdsImageCrops Marketing
API type
Every field is following the crops specification, in the format of [[{left},{top}],[{right},{bottom}]].
|
| AdsImageCrops.AdsImageCropsSpec |
| AdsPixel |
| AdsPixelStats |
| AgencyClientDeclaration
|
| AndroidAppLink |
| AppLinks
|
| BaseAdsObject
Basic Ads type that provides an id field.
|
| Business
|
Campaign
Represents the Campaign
Marketing API type
|
| ConversionActionQuery
|
| CustomAudience
|
| CustomAudienceDataSource |
| CustomAudiencePermission
|
| CustomAudienceStatus
|
| DayPart |
| FieldData |
| FlexibleTargeting |
| FundingSourceDetails
|
| FundingSourceDetailsCoupon |
| IDName |
| IosAppLink |
| LeadGenQualifier |
| LookalikeSpec |
| LookalikeSpec.Origin |
| NamedAdsObject
Almost basic ad-type that provides a name and a id field.
|
| ProductCatalog |
| ProductFeed
|
| ProductFeedSchedule
|
| ProductFeedUpload
|
| ProductItemCommerceInsights |
| ProductVariant
|
| ReachFrequencySpec
|
| Rule |
| RuleOp |
| Targeting |
| TargetingDynamicRule |
| TargetingGeoLocation |
| TargetingGeoLocationCity |
| TargetingGeoLocationCustomLocation |
| TargetingGeoLocationElectoralDistrict |
| TargetingGeoLocationMarket |
| TargetingGeoLocationPlace |
| TargetingGeoLocationRegion |
| TargetingGeoLocationZip |
| TargetingProductAudienceSpec |
| TargetingProductAudienceSubSpec |
| TargetingResponseGeographic |
| WebAppLink |
| WindowsAppLink |
| WindowsPhoneAppLink |


Language::Farnsworth - A Turing Complete Language for Mathematics
use Language::Farnsworth; my $hubert = Language::Farnsworth->new(); my $result = $hubert->runString("10 km -> miles"); my $result = $hubert->runFile("file.frns"); print $result;
THIS IS A BETA RELEASE, perpetually so! There are typos in the error messages and in the POD. There are also probably plenty of bugs. While it is not ready for production use, it is most certainly usable as a toy and to see a pure interpreter written in perl. Not every feature is documented yet (This 0.7.x series will be striving to fix that) and a future release will fix the hairier parts of the internal API (scheduled for 0.8.x).
Modules and Libraries you need before this will work
The PARI library
DateTime the DateTimeX::Easy manpage
The following are optional
For the Google Translation library
For the currency support
the Finance::Currency::Convert::XE manpage
NOTE: For the currency units to work you currently need to call C<updatecurrencies[]> before they will be available, this will change
ALL of the methods here call die
whenever something doesn't go right. This means that unless you want bad input to them to cause your program to fail you should wrap any calls to them with eval {}
.
This method takes a string (or multiple strings) and executes them as Language::Farnsworth expressions. For more information on making Language::Farnsworth expressions, see the Language::Farnsworth::Docs::Syntax manpage.
This takes a file name and executes the entire file as a single Language::Farnsworth expression.
This takes a Language::Farnsworth::Value and turns it into a string for perl to be able to display. This method WILL disappear in a future version.
None by default.
At the moment all known bugs are related to badly formatted output, this will be rectified in a future release. And there are a number of unfinished error messages, and a few issues with the way arrays work.
There is also a known issue with the size of scopes. I do not know if I will be able to fix it, and until then i recommend NOT using recursive algorithms because it will cause everything to balloon way up in memory usage.
The following features are currently missing and WILL be implemented in a future version of Language::Farnsworth
Better control over the output
Adjustable precision of numbers (this includes significant digits!)
Better defaults for certain types of output
Syntax tree introspection inside the language itself
Better Documentation
Objects!
Language::Farnsworth is a programming language originally inspired by Frink (see http://futureboy.homeip.net/frinkdocs/ ). However due to creative during the creation of it, the syntax has changed significantly and the capabilities are also different. Some things Language::Farnsworth can do a little better than Frink, other areas Language::Farnsworth lacks. And while ostensibly the language may appear to be named in a similar vein after another cartoon professor that brings good news to everyone, it is in fact named after the famous physicist Philo T. Farnsworth.
the Language::Farnsworth::Docs::Syntax manpage the Language::Farnsworth::Docs::Functions manpage
Please use the bug tracker available from CPAN to submit bugs. There are also things to be
Ryan Voots<EMAIL_ADDRESS>Copyright (C) 2010 by Ryan Voots
This library is free software; It is licensed exclusively under the Artistic License version 2.0 only.


|
Perl Weekly
Issue #108 - 2013-08-19 - Another YAPC, another release of Perl
latest | archive | by Gabor Szabo
|
|
Summer is almost (but not quite) over. This year's edition of YAPC::EU came and went and, if the Twitter feeds are to be believed, a good time was had by all. As it is typical, it left a heap of slidedecks and videos in its wake that should keep us entertained for a few weeks still. A new maintenance release of Perl also made its appearance. Beside that, it was a fairly mundane week in the Perl world; Reini Urban smoking the whole of CPAN via a one-liner, miyagawa fatpacking fatpacked fatpackers, y'know, the usual suspects doing the usual things... ~ Yanick
Summer might be almost over for Yanick in Canada, but for me, we have 2 more months of hot weather... ~ Gabor
Enjoy...
|
|
|
|
Sponsors
|
We're Hiring Telecommuters - Grant Street Group
We're a growing software company using open source software/modern Perl practices to build innovative e-payment, auction, and tax collection web applications. We're looking for talented, motivated professionals committed to flawless work and customer service. Email resume<EMAIL_ADDRESS>|
|
Headlines
|
|
|
|
|
Testing
|
Smoking CPAN in one line
This one is already mentioned in the Barbie testing overview, but it deserves an entry of its own. Reini Urban shows how he smoke tests the whole of CPAN. From a single line of code. Amazing feat or terrifying bend of what the human mind can withstand. I'll let history decide...
|
|
|
|
Code
|
|
|
Using exception classes in Perl
Of course, we all know the classic "die 'uurgh'". dakkar reminds us that there are ways to have more... articulated last words, via objects.
|
|
|
|
Fun
|
Meta-fatpacking
For us, it's the movie Inception, but with Leonardo's role played by Fat Bastard from the Austin Powers movies. For miyagawa, it was last Sunday.
|
|
You are in a forest ...
Remember those good ol' text games of yore? Ovid does too, and he wrote a Perl engine to run those vintage adventures.
|
|
Introducing Hack::Natas
If you enjoyed the hacking series of Mike Doherty, now you can follow his footsteps using his new module on CPAN.
|
|
Slides & Videos
|
|
|
|
|
Rex Lightning Talk
Jan Gehring's lightning talk on Rex. Because if it's worth doing more than once, it's worth automating.
|
|
LWP + libcurl
Stanislaw Pusep's slides on LWP::Protocol::Net::Curl, a module mashing the goodness of LWP and libcurl together.
|
|
|
|
|
|
Web
|
Continuous deployment with #Mojolicious and @github
Jan Henning Thorsen mentions hypnotoad, the Mojolicious web server that can do hot deployment and introduces Toadfarm that can handle post-receive hooks of Git and Github to pull and deploy your latest and greatest version of your web application.
|
|
|
|
YAPC::EU reports
|
|
|
|
|
CPAN
|
Total number of dependencies
It turns out 70% of CPAN distributions aren't used by any other distribution... See more details in the report of Neil Bowers.
|
|
Weekly Collections
|
|
|
|
|
|
|
Perl Maven articles
|
|
|
Events
I usually list the next 3-4 events here. The list of all the events can be found on the web site. If your Perl event is not listed there, please let me know.
|
YAPC::Asia Tokyo
September 19-21, 2013, Keio University Hiyoshi Campus, Tokyo, Japan
|
|
OSDC.fr
October 4-5, 2013, Paris, France
|
|
|
|
|
|
You know, you could get the Perl Weekly right in your mailbox. Every Week. Free of charge!
|


--- layout: post title: Very Christmas. Much Holiday. Wow. date: 2013-12-19 23:57:39.000000000 -06:00 categories: - General tags: [] status: publish type: post published: true meta: _edit_last: '1' author: login: Blake email<EMAIL_ADDRESS>display_name: Blake first_name: Blake last_name: Harley ---


Every public tree is a civic resource. The city of Santa Monica provides a public dataset describing the properties of all 35,000 public park and street trees in the city. Our goal is to provide a map that lets you view, filter, and explore the data. This website is built and maintained by volunteers. If you notice a problem or would like to request a feature, please let us know!


A read or write view of a Kiji table.
An implementation of a Cascading FlowStepStrategy used to alter the properties of the flow step corresponding to the sink to support writing directly to HFiles.
Factory methods for constructing org.kiji.express.flow.framework.hfile.HFileKijiSources that will be used as outputs of a Kijiexpress flow.
Provides the necessary implementation to allow Scalding jobs to write directly to HFiles. To support this, simply subclass the HFileKijiJob. The only requirement is that you provide a command line argument hFileOutput which references the location on HDFS where the final HFiles are to be stored.
Under the covers, Scalding will be configured to write to HFiles either by manipulating the current Cascading flow if the defined flow has no reducers OR by redirecting output to a temporary location where a secondary job will re-order the results into something that HBase can load. The reason for this is because KeyValues must be sorted according to a TotalOrderPartitioner that relies on the region splits of HBase so that KeyValues are placed in the right region.


| shiny_covid19_spread {tidycovid19} | R Documentation |
A shiny based web app that allows users to customize the
plot_covid19_spread
display. The display has been
inpired by the displays created by John Burn-Murdoch for the Financial
Times. You can use it to customize your plot_covid19_spread()
display as it allows copying the plot generating code to the clipboard,
thanks to the fine rclipboard package.
shiny_covid19_spread(plot_options = list(), ...)
plot_options |
A named list containing parameters to
initialize the plot in the shiny app. All parameters of
|
... |
Parameters that will be parsed on to |
Uses data from the Johns Hopkins University CSSE team on the spread of the SARS-CoV-2 virus and the Covid-19 pandemic (https://github.com/CSSEGISandData/COVID-19), from the ACAPS governmental measures database (https://www.acaps.org/covid19-government-measures-dataset) and from the World Bank (https://data.worldbank.org). See the documentation of the separate download functions of the package for more detail.
## Not run: shiny_covid19_spread() df <- download_merged_data(cached = TRUE) shiny_covid19_spread( plot_options = list(data = df, highlight = c("USA", "ESP", "ITA")) ) ## End(Not run)


You can create an indicator object that is not bound to any automatic update and choose which data it should use. To use an indicator like this, you create an indicator with its constructor.
To see the LEAN indicator classes available and their constructor arguments, please look them up in the reference table below.
You can use two methods to update the indicator: automatic or manual.
In this method, you will recreate the basic indicator usage: create an indicator with its constructor and register the indicator for automatic updates with the $[RegisterIndicator(), M:QuantConnect.Algorithm.QCAlgorithm.RegisterIndicator] method.
# request the daily equity data self.AddEquity("SPY", Resolution.Daily) # define a 10-period RSI indicator with indicator constructor self.rsi = RelativeStrengthIndex(10, MovingAverageType.Simple) # register the daily data of "SPY" to automatically update the indicator self.RegisterIndicator("SPY", self.rsi, Resolution.Daily)
// request the daily equity data AddEquity("SPY", Resolution.Daily); // define a 10-period RSI indicator with indicator constructor _rsi = new RelativeStrengthIndex(10, MovingAverageType.Simple); // register the daily data of "SPY" to automatically update the indicator RegisterIndicator("SPY", _rsi, Resolution.Daily);
Other than the available resolutions, you can also update the indicator with the consolidator. For details about data consolidator, please see Consolidating Data.
# request the equity data in minute resolution self.AddEquity("SPY", Resolution.Minute) # define a 10-period RSI indicator with indicator constructor self.rsi = RelativeStrengthIndex(10, MovingAverageType.Simple) # create the 30-minutes data consolidator thirtyMinuteConsolidator = TradeBarConsolidator(timedelta(minutes=30)) self.SubscriptionManager.AddConsolidator("SPY", thirtyMinuteConsolidator) # register the 30-minute consolidated bar data to automatically update the indicator self.RegisterIndicator("SPY", self.rsi, thirtyMinuteConsolidator)
// request the equity data in minute resolution AddEquity(_symbol, Resolution.Hour); // define a 10-period RSI indicator with indicator constructor _rsi = new RelativeStrengthIndex(10, MovingAverageType.Simple); // create the 30-minutes data consolidator var thirtyMinuteConsolidator = new TradeBarConsolidator(TimeSpan.FromMinutes(30)); SubscriptionManager.AddConsolidator("SPY", thirtyMinuteConsolidator); // register the 30-minute consolidated bar data to automatically update the indicator RegisterIndicator("SPY", _rsi,thirtyMinuteConsolidator);
Updating your indicator manually allows you to control which data is used and create indicators of other non-price fields. For instance, you can use the 3:30 pm price in your daily moving average instead of the after-market closing price, or you may want to use the maximum temperature of the past 10 cloudy days.
The indicator objects have the $[Update(), M:QuantConnect.Indicators.IndicatorBase.Update] method that updates the state of an indicator with the given value. Depending on the different types of indicators, this value can be the time/decimal pair, a trade bar, a quote bar, or a custom data bar.
With this method, the indicator will only be ready after the Update()
method has been used to pump enough data. For example, a 10-period daily moving average needs to receive ten daily data points through the Update()
method.
def Initialize(self): self.AddEquity("SPY", Resolution.Daily) self.rsi = RelativeStrengthIndex(10, MovingAverageType.Simple) def OnData(self, data): # update the indicator value with the new input close price every day if data.Bars.ContainsKey("SPY"): self.rsi.Update(data["SPY"].EndTime, data["SPY"].Close) # check if the indicator is ready if self.rsi.IsReady: # get the current RSI value rsi_value = self.rsi.Current.Value
public override void Initialize() { AddEquity(_symbol, Resolution.Daily); _rsi = new RelativeStrengthIndex(10, MovingAverageType.Simple); } public override void OnData(Slice data) { // update the indicator value with the new input close price every day if (data.Bars.ContainsKey(_symbol)) { _rsi.Update(data[_symbol].EndTime, data[_symbol].Close); } // check if the indicator is ready if (_rsi.IsReady) { // get the current RSI value var rsiValue = _rsi; } }
In both cases, we recommend using historical data to warm up your indicator as demonstrated in Initializing Indicators.