Snookes1516.github.io
Fifty Ways to Practice Writing: Tips for ESL/EFL Students. 30 Ideas for Teaching Writing - National Writing Project. 5 Teaching Strategies that Make Math Interesting. Learning Through TED Talks, Pocketing Learning, Duolingo, Smartboards, online library and reading tools. A lot of my cohorts entered the program in part because they thought they wanted to teach afterwards. And some of them do. I didn’t want to teach, but the problem.
30 Ideas for Teaching Writing. Summary: Few sources available today offer writing teachers such succinct, practice-based help—which is one reason why 30 Ideas.
How to Teach Creative Writing. Let your students know the importance of interesting One of the best ways to teach and promote creative writing. Interesting ways to teach creative writing - Qualified writers working in the company will accomplish your assignment within the deadline Hire top writers Why make writing fun? Research consistently shows that children learn more when they are actively engaged in the learning process and having. Want to write better content? Learn how to improve your writing skills by practicing each of these 27 mini-skills for writers.
The Muse Writers Center offers a variety of creative and creative writing classes in Poetry, Fiction, Science Fiction, Fantasy, and Horror, Children's Literature. If you haven’t taken advantage of using Skype in your classroom yet, we’ve got a few suggestions and tools that can help you get started. Creative. The Creative Writing MFA: Yes or No? Maybe. WriteByNight. Lovely Essay: Interesting ways to teach creative writing. School science labs often prescribe the experiments, but they seldom teach how to come up with an experiment. Science teachers explain the scientific method How to Teach Your Students to Write an Essay. principles of essay writing and their share more about creative, non-boring ways to teach. 27 Ways to Improve Your Writing Skills and Escape Content.
Interesting ways to teach creative writing. Practical suggestions of new ways to teach listening.
Creative writing is a difficult art. We learn and we improve, yet we often slip up and make common mistakes. These mistakes are so common that everyone is tired. Ever feel stumped? Uninspired? Blank? These creative writing prompts will kick your muse into high gear so you can start writing again. Be creative. Simple Ways to Assess the Writing Skills of Students. Writing - Descriptive Writing- Ideas for Teaching.
6. Creative Writing Now – Endless Story Ideas. Creative Writing Now offers Endless Story Ideas, a free online writing course. The entire
16 Best Online Creative Writing Courses - Bookfox.
Anna Davis Anna is the founder and Director of the Curtis Brown Creative writing school. She is the author of five novels, published around the world in 20 languages:. A few creative teaching strategies to make math a little more interesting.
Color is one of those concepts that continuously amazes and amuses us. We teach it throughout our art courses and programs. We want our students 20 Creative Writing Careers Writing Forward. Some great ideas here. Thanks!! I have been a Middle School ELA teacher for the past 15 years, and they moved me up to the high school…amd Creative Writing. Creative Writing Classes and Seminars at The Muse Writers. Jerz Writing General Creative Writing Tips Poetry Fiction Writing short stories means beginning as close to the climax as possible -- everything.
6 Creative Ways to Use Skype in the Classroom Edudemic. 50 Ways to Use Twitter in the Classroom TeachHUB. Have you ever bothered to look at the creative writing careers that are available? Browse these job possibilities, and then go out there and make it happen. 15 Interesting Ways To Start Class Tomorrow - TeachThought.
Interesting ways to teach creative writing Lenz Schlaf. Simple ways to assess the writing skills of students with learning disabilities. A teacher's first responsibility is to provide opportunities for writing. 12 Simple Tricks To Make Writing Fun. collect interesting photos, or teach them where we share more about creative, non-boring ways to teach. 25 Ways to Make Writing FUN! it’s the perfect time to teach them the conventions. but I think creative writing prompts can spark an idea sometimes. Creative ways TeachingEnglish British Council. Five Ways to Practice Descriptive Writing - Just Add Students.
Short Story Tips: 10 Ways to Improve Your Creative Writing. Teaching with TLC: 101 Ways to Make Writing. 101 Ways to Teach the Alphabet: A Hands-On Approach. Published authors teach our creative writing courses. How to Teach Your Students to Write an Essay - Busy Teacher. All Our Favorite Ways to Teach Color Theory in One Place. How to Teach Creative Writing (with Pictures) - wikiHow. Interesting ways to teach creative writing to write about washington university in st. louis creative writing. The portrait made by u. S. Innovation emerging sectors. Creative Writing Prompt: Conspiracy! Writer's Digest.
Creative writing in . shares his advice and resources on how to teach creative writing . It s about unpacking the emotions and finding 15 Interesting Ways To Start Class Tomorrow Just play something fun. Creative or a picture book to front-load a unit or even as a writing. Methodology: new ways to teach listening Onestopenglish. The Writing Prompt: Take an event from history and write a fictional account describing a conspiracy theory about what "REALLY" happened. Or, if you prefer, write. 25 Creative Writing Prompts Writing Forward.
Fifty Ways to Practice Writing: Tips for ESL/EFL Students - Kindle edition by Dorothy Zemach. Download it once and read it on your Kindle device, PC, phones or tablets. Common Mistakes Made by Creative Writers. Are you looking for ways to get your students to be more descriptive when they write? Here's a collection of descriptive writing ideas to get you started in the right. 12 Simple Tricks To Make Writing Fun - Busy Teacher. The 50 tips and projects provide you and your students with 50 ways to use Twitter in the classroom to create important and lasting lessons. Creative writing in the classroom:
5 Creative New Ways to Teach English as a Second Language. 25 Ways to Make Writing Fun - This Reading. 101 Ways to Teach the Alphabet: A Hands-On Approach to Learning Letters and Sounds Through Play Katie Stokes on Amazon.com. FREE shipping on qualifying offers.


nexml
S4 objectThe RNeXML
package provides many convenient functions to
add and extract information from nexml
objects in the R
environment without requiring the reader to understand the details of
the NeXML data structure and making it less likely that a user will
generate invalid NeXML syntax that could not be read by other parsers.
The nexml
object we have been using in all of the examples
is built on R’s S4 mechanism. Advanced users may sometimes prefer to
interact with the data structure more directly using R’s S4 class
mechanism and subsetting methods. Many R users are more familiar with
the S3 class mechanism (such as in the ape
package phylo
objects) rather than the S4 class mechanism used in phylogenetics
packages such as ouch
and phylobase
. The
phylobase
vignette provides an excellent introduction to
these data structures. Users already familiar with subsetting lists and
other S3 objects in R are likely familiar with the use of the
$
operator, such as phy$edge
. S4 objects
simply use an @
operator instead (but cannot be subset
using numeric arguments such as phy[[1]]
or named arguments
such as phy[[“edge”]]).
The nexml
object is an S4 object, as are all of its
components (slots). Its hierarchical structure corresponds exactly with
the XML tree of a NeXML file, with the single exception that both XML
attributes and children are represented as slots.
S4 objects have constructor functions to initialize them. We create a
new nexml
object with the command:
<- new("nexml") nex
We can see a list of slots contained in this object with
slotNames(nex)
[1] "version" "generator" "xsi:schemaLocation" "namespaces" "otus"
[6] "trees" "characters" "meta" "about" "xsi:type"
Some of these slots have already been populated for us, for instance, the schema version and default namespaces:
@version nex
[1] "0.9"
@namespaces nex
nex xsi
"http://www.nexml.org/2009" "http://www.w3.org/2001/XMLSchema-instance"
xml cdao
"http://www.w3.org/XML/1998/namespace" "http://purl.obolibrary.org/obo/"
xsd dc
"http://www.w3.org/2001/XMLSchema#" "http://purl.org/dc/elements/1.1/"
dcterms prism
"http://purl.org/dc/terms/" "http://prismstandard.org/namespaces/1.2/basic/"
cc ncbi
"http://creativecommons.org/ns#" "http://www.ncbi.nlm.nih.gov/taxonomy#"
tc
"http://rs.tdwg.org/ontology/voc/TaxonConcept#" "http://www.nexml.org/2009"
Recognize that nex@namespaces
serves the same role as
get_namespaces
function, but provides direct access to the
slot data. For instance, with this syntax we could also overwrite the
existing namespaces with nex@namespaces <- NULL
.
Changing the namespace in this way is not advised.
Some slots can contain multiple elements of the same type, such as
trees
, characters
, and otus
. For
instance, we see that
class(nex@characters)
[1] "ListOfcharacters"
attr(,"package")
[1] "RNeXML"
is an object of class ListOfcharacters
, and is currently
empty,
length(nex@characters)
[1] 0
In order to assign an object to a slot, it must match the class
definition of the slot. We can create a new element of any given class
with the new
function,
@characters <- new("ListOfcharacters", list(new("characters"))) nex
and now we have a length-1 list of character matrices,
length(nex@characters)
[1] 1
and we access the first character matrix using the list notation,
[[1]]
. Here we check the class is a characters
object.
class(nex@characters[[1]])
[1] "characters"
attr(,"package")
[1] "RNeXML"
Direct subsetting has two primary use cases: (a) useful in looking up (and possibly editing) a specific value of an element, or (b) when adding metadata annotations to specific elements. Consider the example file
<- system.file("examples", "trees.xml", package="RNeXML")
f <- nexml_read(f) nex
We can look up the species label of the first otu
in the
first otus
block:
@otus[[1]]@otu[[1]]@label nex
label
"species 1"
We can add metadata to this particular OTU using this subsetting format
@otus[[1]]@otu[[1]]@meta <-
nexc(meta("skos:note",
"This species was incorrectly identified"),
@otus[[1]]@otu[[1]]@meta) nex
Here we use the c
operator to append this element to any
existing meta annotations to this otu.


JavaScript - Print All Links (Hyperlinks) with HREF Attribute, Total Number of Links in a Page and print all the links href which contains given javascript string.
WikiHow
wikiPedia


{{ partial "widgets/breadcrumb" . }}
{{ range .Paginator.Pages }}
{{ partial "widgets/post-card.html" . }}
{{ end }}
{{ partial "widgets/pagination.html" . }}


--- layout: page title: Articles description: Recent articles written by Jared Dillard cover: false --- {% for post in site.posts %} {{ post.title }} {{ post.excerpt | strip_html }} {% endfor %}
{{ post.excerpt | strip_html }}
View Archive


Making the transition from learning to create an app with Ruby on Rails, to using Javascript to create advanced front-end features and communicate with a database backend, it becomes apparent that the strict architecture and other conventions provided by Rails, while often complex, helped us stay organised within the MVC framework, ultimately created by somebody else. If we take the [...]
During our last project, in which we created an application that tracked the distances for takeaway shops in a certain radius to a user's location, a key part of the interface was embedded maps.We embedded maps for the user's location, for the location of each takeaway, and even for where certain dishes in our database came from. As such, [...]
Recently, for our module 1 project, we created a database which provided different personality type analyses based on the Myers-Briggs Type Indicator. This test essentially sorts people into 16 personality types formed of 4 letters. Since each letter is encoded with a certain meaning according to the MBTI indicator, we thought it would be interesting to be able to return [...]
When it comes to the sometimes extreme complexity of relationships created by object-oriented programming, we all know that heart-sinking feeling when one little change causes a lot of things to break. Or, when looking for the culprit behind the error in your code feels like a unicode version of 'Where's Waldo.' At times like this, one of the very [...]
I went to the Hayward Gallery this week, where they were showing a retrospective of Korean artist Lee Bul. The work in the last room, which felt like the grand finale, was called 'Via Negativa'. It was a sculpture which consisted of a maze of fragmented mirrors leading to a central room with an infinity mirror chamber, surrounded by lights. [...]


{% extends 'base.html' %} {% block title %}Name Form - Validation{% endblock title %} {% block body %}
Here are the details you provided:
Name:
{{name}}
{{age}}
No details provided.


TDI.Ajax.Request Class
The Request API for the TDI Ajax. Provides methods to send TDI requests.
Item Index
Methods
- ajaxifyUrl static
- send static
- sendForm static
Methods
ajaxifyUrl
(
String
static
-
url
Modifies the URL and adds an Ajax (tdi) flag.
Parameters:
-
url
StringThe URL to modify
Returns:
String:
The modified URL
send
(
JqXHR
static
-
url
-
options
Sends the Ajax request and calls the needed callback methods.
Parameters:
-
url
StringThe request URL.
-
options
ObjectjQuery.ajax() settings. Aditional options:
method <String>
The HTTP method used to send the request. Defaults to get.data <(String|Object)>
Data to be sent to the server. It is converted to a query string, if not already a string. See jQuery documentation for $.ajax()sync <(Boolean)>
Whether the AJAX request should be synchronous or not. Defaults to falsebeforeStart <Function>
Function to be called before the request is sent. If this function returns false, the request is not sent. This function is called with parameters:xhr <jqXHR>
the jqXHR objectsettings <Object>
The settings map used in the jQuery $.ajax calloptions <Object>
Aditional request options
start <Function>
Function to be called before the request is sent. This function is called with parameters:xhr <jqXHR>
The jqXHR objectsettings <Object>
The settings map used in the jQuery $.ajax calloptions <Object>
Aditional request options
beforeEnd <Function>
Function to be called after the request is complete. If this function returns false, the default end callback is not executed. This function is called with parameters:xhr <jqXHR>
The jqXHR objecttextStatus <String>
Status of the request ("success", "notmodified", "error", "timeout", "abort", or "parsererror")options <Object>
Aditional request options
end <Function>
Function to be called after the request is complete. This function is called with parameters:xhr <jqXHR>
The jqXHR objecttextStatus <String>
Status of the request ("success", "notmodified", "error", "timeout", "abort", or "parsererror")options <Object>
Aditional request options</>
Returns:
JqXHR:
xhr The jqXHR object
sendForm
(
JqXHR
static
-
form
-
options
Submits a form using an Iframe (fake Ajax call).
Parameters:
-
form
String | JQuery | HTMLElementThe form element which will be sent.
-
options
ObjectAditional request options:
beforeStart <Function>
Function to be called before the request is sent. If this function returns false, the request is not sent. This function is called with parameters:form <jQuery>
The form which is to be submitedoptions <Object>
Aditional request options
start <Function>
Function to be called before the request is sent. This function is called with parameters:form <jQuery>
The form which is to be submitedoptions <Object>
Aditional request options
beforeEnd <Function>
Function to be called after the request is complete. If this function returns false, the default end callback is not executed. This function is called with parameters:form <jQuery>
The form which was submitedoptions <Object>
Aditional request optionsxml <jQuery>
The response XML document
end <Function>
Function to be called after the request is complete. This function is called with parameters:form <jQuery>
The form which was submitedoptions <Object>
Aditional request optionsxml <jQuery>
The response XML document
Returns:
JqXHR:
xhr The jqXHR object or null if the iframe method is used


Toggle navigation
BigNet
Data
(current)
Apps
Action
Another action
Something else here
Separated link
One more separated link
Search
Connexion
Action
Another action
Something else here
Separated link
MachineName
Users
alainlavoie
BigData.Photos
bigd
Action On directory
Another action
Something else here
Separated link
Name
Owner
Last Modified
File size
asdf
Action
Another action
Something else here
Separated link


This document describes the process ordinarily used for Open vSwitch development and release. Exceptions are sometimes necessary, so all of the statements here should be taken as subject to change through rough consensus of Open vSwitch contributors, obtained through public discussion on, e.g., ovs-dev or the #openvswitch IRC channel.
Open vSwitch feature development takes place on the "master" branch. Ordinarily, new features are rebased against master and applied directly. For features that take significant development, sometimes it is more appropriate to merge a separate branch into master; please discuss this on ovs-dev in advance.
Periodically, the OVS developers fork a branch from master to become an official release. These release branches are named for expected release number, e.g. "branch-2.3" for the branch that will yield Open vSwitch 2.3.x. Release branches should receive only bug fixes, not new features. Bug fixes applied to release branches should be backports of corresponding bug fixes to the master branch, except for bugs present only on release branches (which are rare in practice).
Sometimes there can be exceptions to the rule that a release branch receives only bug fixes. In particular, after a release branch is created, but before the first actual release from that branch, it can be appropriate to add features. Like bug fixes, new features on release branches should be backports of the corresponding commits on the master branch. Features to be added to release branches should be limited in scope and risk and discussed on ovs-dev before creating the branch.
After a period of testing and stabilization, and rough consensus obtained from contributors that the release is ready, the developers release the .0 release on its branch, e.g. 2.3.0 for branch-2.3. To make the actual release, a developer pushes a signed tag named, e.g. v2.3.0, to the Open vSwitch repository, makes a release tarball available on openvswitch.org, and posts a release announcement to ovs-announce.
As a number of bug fixes accumulate, or after important bugs or vulnerabilities are fixed, the OVS developers may make additional releases from a branch: 2.3.1, 2.3.2, and so on. The process is the same for these additional release as for a .0 release.
At most two release branches are formally maintained at any given time: the latest release and the latest release designed as LTS. An LTS release is one that the OVS project has designated as being maintained for a longer period of time. Currently, an LTS release is maintained until the next LTS is chosen. There is not currently a strict guideline on how often a new LTS release is chosen, but so far it has been about every 2 years. That could change based on the current state of OVS development. For example, we do not want to designate a new release as LTS that includes disruptive internal changes, as that may make it harder to support for a longer period of time. Discussion about choosing the next LTS release occurs on the OVS development mailing list.
The version number on master should normally end in .90. This indicates that the Open vSwitch version is "almost" the next version to branch.
Forking master into branch-x.y requires two commits to master. The first is titled "Prepare for x.y.0" and increments the version number to x.y. This is the initial commit on branch-x.y. The second is titled "Prepare for post-x.y.0 (x.y.90)" and increments the version number to x.y.90.
The version number on a release branch is x.y.z, where z is initially 0. Making a release requires two commits. The first is titled Set release dates for x.y.z. and updates NEWS and debian/changelog to specify the release date of the new release. This commit is the one made into a tarball and tagged. The second is titled Prepare for x.y.(z+1). and increments the version number and adds a blank item to NEWS with an unspecified date.
Open vSwitch makes releases at the following six-month cadence, which of course is subject to change.
| Time (months) | Approximate Dates | Event |
| T | Apr 1, Oct 1 | Release cycle for version x.y begins |
| T + 4 | Aug 1, Feb 1 | branch-x.y forks from master |
| T + 5.5 | Sep 15, Mar 15 | branch-x.y released as version x.y.0 |
Use<EMAIL_ADDRESS>to discuss the Open vSwitch development and release process.


Welcome to KC's Cupcakes!
KC's cupcakes is a new venture from the creators of
KC's Potatoes
!
Below is a sampling of some of our award winning cupcakes:
The Affogato:
The Flood:
The GF:
Come to the shop to see the rest!


This class respresents the information necessary to display a given verse. This include the verse ID, the number of context verses, and Translation object. More...
#include <VerseDisplay.h>
Public Member Functions | |
| BIBLE_DATABASE_EXPORT | VerseDisplay (std::string translation, int verse_id, int num_verses_context) |
| Create a new instance of the VerseDisplay class. | |
| BIBLE_DATABASE_EXPORT std::string | get_translation () const |
| Get the long name of the Translation object for this instance. | |
| BIBLE_DATABASE_EXPORT int | get_verse_id () const |
| Get the unique ID of the verse for this instance. | |
| BIBLE_DATABASE_EXPORT int | get_num_verses_context () const |
| Get the number of verses of context that should be displayed with this verse. | |
| BIBLE_DATABASE_EXPORT bool | operator== (const VerseDisplay &other) const |
| Determine if this VerseDisplay instance has the same data as another instance. Note that this does not test the number of context verses. |
This class respresents the information necessary to display a given verse. This include the verse ID, the number of context verses, and Translation object.
Definition at line 11 of file VerseDisplay.h.
| VerseDisplay::VerseDisplay | ( | std::string | translation, | |
| int | verse_id, | |||
| int | num_verses_context | |||
| ) |
Create a new instance of the VerseDisplay class.
Definition at line 5 of file VerseDisplay.cpp.
00005 : 00006 m_translation(translation), 00007 m_verse_id(verse_id), 00008 m_num_verses_context(num_verses_context) 00009 { 00010 } std::string VerseDisplay::get_translation() const
| int VerseDisplay::get_num_verses_context | ( | ) | const |
Get the number of verses of context that should be displayed with this verse.
Definition at line 21 of file VerseDisplay.cpp.
| std::string VerseDisplay::get_translation | ( | ) | const |
Get the long name of the Translation object for this instance.
Definition at line 11 of file VerseDisplay.cpp.
| int VerseDisplay::get_verse_id | ( | ) | const |
Get the unique ID of the verse for this instance.
Definition at line 16 of file VerseDisplay.cpp.
| bool VerseDisplay::operator== | ( | const VerseDisplay & | other | ) | const |
Determine if this VerseDisplay instance has the same data as another instance. Note that this does not test the number of context verses.
Definition at line 26 of file VerseDisplay.cpp.
00027 { 00028 return m_verse_id == other.get_verse_id() && m_translation == other.get_translation(); 00029 }


When you load image or sound files, the path to this file is always relative to the .html file in which your game is running. I.e. the location of your .js files is irrelevant.
So let's assume you have the following directory structure and your game.js
is loaded by the game.html
:
/mygame/game.html /mygame/lib/game.js /mygame/media/some-image.png /mygame/media/some-sound.ogg /mygame/media/some-sound.mp3
When you now want to load some-image.png
from within your game.js
file, you'd do the following:
// The game.html file is in /mygame/, that means that all // assets can be referenced relative to /mygame/ var someImage = new ig.Image( 'media/some-image.png' ); // It works exactly the same for sounds: var someSound = new ig.Sound( 'media/some-sound.*' ); // Or AnimationSheets var someAnimSheet = new ig.AnimationSheet( 'media/some-image.png', 8, 8 );
The path 'media/some-sound.*'
is actually valid. Impact will load the appropiate sound file (MP3 or OGG Vorbis) depending on the browsers capabilities. See ig.Sound.
All sound and image files that your game needs should be loaded by the preloader, so that they are actually available when needed.
Calling the .draw()
method on an image that has not yet been loaded, will do nothing. Attempting to play a sound file that has not been loaded, will result in a severe lag.
All instances of ig.Image, ig.Font, ig.AnimationSheet and ig.Sound that are created during load-time will be appended to the preloader's chain of assets to load. Images and Sounds that are only created at runtime, will not be loaded by the preloader.
MyGame = ig.Game.extend({ // This image will be loaded by the preloader. It is created // as soon as the script is executed titleImage: new ig.Image( 'media/title.png' ), init: function() { // This image file will NOT be loaded by the preloader. The // init() method is only called after the preloader finishes // and the game is started. this.backgroundImage = new ig.Image( 'media/background.png' ); } });
All assets are automatically cached. They are only loaded once, no matter how often you need them. E.g. if two entities share the same AnimationSheet image it will not be loaded twice. So this is perfectly valid:
EntityPlayer = ig.Entity.extend({ animSheet: new ig.AnimationSheet( 'media/player.png', 16, 16 ) … }); EntityPlayerGibs = ig.Entity.extend({ // The player gibs are in the same image file animSheet: new ig.AnimationSheet( 'media/player.png', 8, 8 ) … });
You can also use this to make sure your background music is loaded by the preloader. You can't use ig.music.add() at load time, but you can already load the sound file as an instance of ig.Sound.
MyGame = ig.Game.extend({ // Make sure the music is loaded by the preloader. // Passing 'false' as the second argument, prevents loading this // sound as multi channel. bgtune: new ig.Sound( 'media/background-tune.*', false ), init: function() { // Now add the file to the playlist ig.music.add( this.bgtune ); // You could also just specify the path again: // ig.music.add( 'media/background-tune.*' ); // Ready to Rock! ig.music.play(); } });


public class QueueCommandProcessor
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
static class |
QueueCommandProcessor.CommandType
Command type enumeration
|
| Modifier and Type | Field and Description |
|---|---|
private static org.slf4j.Logger |
logger |
private ResourceQueue |
queue |
| Constructor and Description |
|---|
QueueCommandProcessor(ResourceQueue queue)
Constructor must take a
ResourceQueue on which
to operate. |
| Modifier and Type | Method and Description |
|---|---|
private void |
adminCommand(java.lang.String command)
Admin commands consist of a keyword followed by values that may be grouped with quotation marks
if required.
|
private void |
jobSubmitCommand(java.lang.String command)
Job submit commands are purely json objects.
|
void |
processCommand(java.lang.String command,
QueueCommandProcessor.CommandType type)
Processes a queue command
|
private java.lang.String[] |
splitCommand(java.lang.String command)
Splits the text into space separated elements except where enclosed
in quotation marks.
|
private static final org.slf4j.Logger logger
private ResourceQueue queue
public QueueCommandProcessor(ResourceQueue queue)
ResourceQueue
on which
to operate.queue
- the queue affected by received commandspublic void processCommand(java.lang.String command, QueueCommandProcessor.CommandType type)
command
- the commandtype
- the command typeprivate void jobSubmitCommand(java.lang.String command)
ThreeStageJobResourceRequest
,
which expects a bootstrap, execute and cleanup script. The json message itself is processed
by ThreeStageJobResourceRequestJsonMessage
.
Invalid queue requests are just ignored.command
- json messageprivate void adminCommand(java.lang.String command)
command
- private java.lang.String[] splitCommand(java.lang.String command)
command
- the command parameters to split


Hello.
This email is to notify you that your account is no longer banned from the Kudos Awards system. You will now be able to log in, nominate, and vote on the website again. Please remember to maintain appropriate conduct.
--
Questions? Comments? Email snstheatre.gmc@gmail.com


A configuration file is not existing yet. You can go ahead and create it now from your data.
Currently only Kafka input is supported via the UI.
Choose between the result data being aggregated on process or activitiy instance level.
Please enter the Kafka broker url as servername/ip:port
The kafka broker url needs to be of format servername/ip:port
{{ _configurationService.kafkaBrokerTestResultMessage }}
A configuration file has been found.
Configuration has been created successfully.


Worked on data science & machine learning(with interpretability) projects on the images, healthcare etc datasets...
6 years of working experience and Data Science|Machine Learning|Software Developing|Data Visualization enthusiasts.
Worked on data science & machine learning(with interpretability) projects on the images, healthcare etc datasets...
Completed projects with Python, C# and Java, covered private cloud and IoT platform...
Experienced in program management. Led 4 projects in past years and delivered successfully. ...
Completed 4 platforms with couple of solutions involved with strong stability....
Designed and implemented 2 user experience centers in 2 headquarters to enhance the solutions marketing. ...
Designed the architectures of industry IoT and cloud for customer and user experience centers....
“Many a little makes a mickle.”
“Anyone who saves a life is as if he saved an entire world.” -- We could use data science to save more lives.
Jan. 2019 Apr. 2019
Our AIaddin team was the student presenters to attend the RISE 2019 @Northeastern University on Apr.4th 2019. Over 10 visitors came by and showed their interests in the machine learning interpretability.
After being selected into the finalist, we will do more research on the interpretability and will make it more flexible in the next months.
Apr 04, 2019
Our AIaddin team was the student presenters to attend the RISE 2019 @Northeastern University on Apr.4th 2019. Over 10 visitors came by and showed their interests in the machine learning interpretability.
After being selected into the finalist, we will do more research on the interpretability and will make it more flexible in the next months. The architecture is being optimizing for now and that will offer more types of the plots and could be applied on more datasets.
Mar.2019 Workshop
Skunkers was presenting in the IIT Workshop by showing how to use H2O and interpretability to uncover the secret hidden in the Amazon reviews.
Skunkers was presenting in the IIT Workshop by showing how to use H2O and interpretability to uncover the secret hidden in the Amazon reviews.


What the purpose of this tool ?
This tool helps you to extract scoop.it posts of a particular topic.
You can download a .csv file containing the following data related from posts associated to topic :
- - type: POST or LINK
- - url: if publication is a LINK
- - title: publication title
- - description: publication description
- - image_url: scoop.it URL of image attached to publication
- - date: publication date


Accessing Historical Weather Data with Dark Sky API
Importing Past Weather Data
In my IoT class last year with Jay Ham we used a website called Dark Sky to get current weather conditions. I’ve been thinking about this recently, since I would like to see if I can match up weather conditions to the changes in the depth to water of wells at a site. I was inspired to look into this based on a talk from Jonathan Kennel from the Univesity of Guelph ( Happy Canada Day! ) and several conversations with my advisor.
I’ll walk through how I imported the data to R.
Dark Sky is a great resource, however, when I went to re-visit the website I found that they have joined Apple. This means they are no longer creating new accounts. Luckily I already had one from my class last fall. The API is still supported through at least the end of 2021. Later I’ll mention some ways that you could get similar (maybe better) data through other channels.
The API allows up to 1000 calls per day for free. Using the Time Machine you can request data from a certain date and location. I focused on hourly data, though it’s probably finer resolution than I need.
“The hourly
data block will contain data points starting at midnight (local time) of the day requested, and continuing until midnight (local time) of the following day.”
The docs include a sample API call, which includes your key, the location, and the date requested.
GET https://api.darksky.net/forecast/0123456789abcdef9876543210fedcba/42.3601,-71.0589,255657600?exclude=currently,flags
A quick visit to my best friend stack overflow provided a little more clarity about how to use the API in R. The date is in UNIX format. I wanted to start at January 1, 2000, so I used a handy UNIX converter to find my desired date number, 946684800. I replaced the url and now I’m ready to call the API.
#GET the url
req <- httr::GET("https://api.darksky.net/forecast/{key}/30.012188,-94.024525,946684800?exclude=currently,flags")
req$status_code
# should be 200 if it worked. If you get 400, something has gone wrong.
# extract req$content
cont <- req$content
#Convert to char
char <- rawToChar(req$content)
#Convert to df
df <- jsonlite::fromJSON(char)
It worked! I removed my private API key, so you’ll have to take my word for it. But now I have a new problem - the call only works for one day at a time. I want a lot of days, so I decided to write a loop.
One thing I couldn’t get to work was changing the date inside the string for the API url. I posted in the R for Data Science Slack, and a few minutes later I learned a handy new trick - you can put a variable inside a string by just inserting it with quotes around the variable. Something like this:
"https://api.darksky.net/forecast/{key}/30.012188,-94.024525,",day,"?exclude=currently,flags"
Great! I ran the loop and it worked, kinda. It errored out after the first run because rbind could not combine two data frames with different numbers of columns. After looking at the next few days to see which columns were off I saw that it went from 15 to 16 to 17, then back down. Very annoying! They must have added some new info for some days, but this made the data inconsistent so I had to add a select function to the loop. I selected for the 15 columns that were consistent across all days and ran it again. Success!
Here’s the code I ended up with:
library(dplyr)
#initialize all_hours so there's something to rbind to
df <- jsonlite::fromJSON(paste0("https://api.darksky.net/forecast/{key}/30.012188,-94.024525,946684800?exclude=currently,flags"))
all_hours <- df$hourly$data
# make a vector of unix dates I want (minus the first one, which I already put in all_hours)
unix_day <- seq(946771200,<PHONE_NUMBER>, by=86400)
for (day in unix_day){
df <- jsonlite::fromJSON(paste0("https://api.darksky.net/forecast/{key}/30.012188,-94.024525,",
day,
"?exclude=currently,flags"))
hourly <- select(df$hourly$data, c(cols))
all_hours <- rbind(hourly, all_hours)}
#convert unix time to date
all_hours$time <- as.POSIXct(all_hours$time, origin="1970-01-01")
I selected the columns I want and saved them as weather.csv. Let’s zoom in to two rainy days in May 2000.
library(ggplot2)
weather <- read.csv("weather.csv")
#weather <- weather[2810:2845,]
#convert unix time to date
weather$time <- as.POSIXct(weather$time, origin="1970-01-01")
ggplot(weather, aes(x = time, y = precipIntensity, group =1)) +
geom_point(alpha = 0.4, color = "blue") +
geom_line(alpha = 0.4, color = "blue", size = 0.5) +
theme_gray() +
theme(axis.text.x=element_text(angle=90, hjust=1)) +
labs(title ="Precipitation Over Time", x = "Date", y = "Precipitation in Inches")
You can clearly see the precipitation-generating storm events over a few months.
It will take me a few days of using my 1000 free API calls to cover the period I’m interested in, but overall it was really easy.
Other Weather Options
Clearly getting historical weather data for a certain location can be really useful, but since Dark Sky is no longer creating accounts it’s not a very practical resource.
The helpful commenters on the R for Data Science Slack also suggested using NOAA to get the data. This is probably a more robust dataset anyway, but the downside is that they don’t have the option to use lat/long as a location - you have to pick from one of their existing stations. In my case there wasn’t one near the field site I was interested in, but they’re spread out across the country so I bet it will be a great source for a lot of people. There’s a good tutorial on accessing this data at R Open Sci.
I’ve also hear the Weather Underground has a good API, but it looks like you need to contribute weather data with an IoT device to access it. Cool! But may not be useful to some.
Are there any other sources of weather data that you know of? Do you have suggestions to improve the approach I used for the Dark Sky data?


I am a first year doctoral student at the School of Computing, University of Utah. My primary interest is understanding the theoretical aspects of machine learning. I graduated with a Masters in Computer Science degree from The Ohio State University in 2019. I also hold a bachelor's degree in Computer Science and Engineering from National Institute of Technology, Rourkela. I have a combined three years of work experience as a Software Engineer in Microsoft and Amazon.
Contact Information<EMAIL_ADDRESS>543 S 900 E,
Salt Lake City, Utah - 84102


tradedoubler
Businessmodel of TradeDoubler
Mattias Stadelmeyer (Chief Executive Officer)
Mattias Stadelmeyer (“Stadelmeyer”) has served as Chief Executive Officer at TradeDoubler since 2014. He has been with the Company since 2007, when he was appointed its Head of Technology for Germany. He served in this role for 18 months before being named Director of Sales for Germany, a role he held only briefly before being appointed Vice President of Technology. Stadelmeyer held the position of Vice President of Sales for a short spell before serving as Regional Director for the DACH region and Vice President of Operations.
Prior to joining TradeDoubler, Stadelmeyer worked for seven years at CANCOM as an e-business project specialist and team leader. He holds a bachelor’s degree in Business Engineering from the Munich University of Applied Sciences and is a graduate of the London Business School’s Accelerated Development Programme.
Jeff Johnston (Chief Strategy Officer)
Jeff Johnston (“Johnston”) has served as TradeDoubler’s Chief Strategy Officer since 2016. He first joined the Company in 2008, working as a project manager for just over two years before his appointment as Product Strategy Director in 2011. He served as the Company’s Chief Data Officer for a period in 2014, and later held the position of Vice President of Product Management from 2014 to 2016.
During his time at TradeDoubler, Johnston has taken on several freelance project management roles and co-founded social advertising company Upcast Social. He began his career in 2002 as a lending team leader at Bank of New Zealand, going on to serve as bank manager, project manager and business analyst at the company.
Johnston holds a bachelor’s degree in Computer Application form Victoria University of Wellington.
Marcel Chaudron (Chief Operating Officer)
Marcel Chaudron (“Chaudron”) has served as TradeDoubler’s Chief Operating Officer since 2016. He has been with the Company since 2002, working initially as an online marketing consultant. He has held a number of positions within the Company, including spells as International Account Director, Senior Online Marketing Consultant, International Group Account Director, Director of Operational Excellence and Group Client Services Director. Prior to taking on his current role he was Vice President of Affiliate.
Before joining TradeDoubler, Chaudron served in several business development and marketing roles. He began his career in 1999 as a product manager at Nedstat, moving to On Stage in 2001 to serve as a business development manager. Prior to joining TradeDoubler, he was an online direct marketer at Direct Matters.


Installing With SCons¶
Prior to version 2.0, GalSim installation used SCons. This installation mode is still supported, but is not recommended. Indeed this release (v2.3) will be the last to continue to support the SCons installation method. If you are still using it, you are advised to switch to either the pip or setup.py method instead.
Note
Two options that are available with the SCons installation method, but not the other methods, are:
using TMV instead of Eigen for the linear algebra back end, and
using Boost.Python instead of PyBind11 for the wrapping the C++ code to be called from Python.
Both of these options (along with the SCons installation method in general) will no longer be available after the current release series (v2.3.x). If this will cause hardship for you, please open an issue and describe your use case and why you think the setup.py installation method will not work for you.
Software required before building GalSim¶
Please note: Mac users who want to use fink can skip down to Section 5.ii and use that to satisfy all dependencies before installing.
Python (2.7, 3.4, 3.5, or 3.6 series)¶
The interface to the GalSim code is via the Python package galsim
, and its
associated modules. Therefore you must have Python installed on your system.
Python is free, and available from a number of sources online (see below).
Currently GalSim supports Python versions 2.7, 3.4, 3.5, and 3.6. It is likely
that other Python 3.x versions are compatible, but these are the only ones
being actively tested.
SCons¶
You can download SCons from:
GalSim uses SCons to configure and run its installation procedures, and so SCons needs to be installed in advance. Versions 2.0 and 2.1 of SCons get reasonable testing with GalSim, but it should also work with 1.x versions. You can check if it is installed, and if so which version, by typing:
scons --version
See Section 5 for some more suggestions about installing this on your platform.
FFTW¶
You can download FFTW from:
These Fast Fourier Transform libraries must be installed, as GalSim will link to them during the build. We require version 3 (or greater presumably), which is often distributed as fftw3. See Section 5 for some suggestions about installing this on your platform.
TMV (version >= 0.72)¶
GalSim can use either Eigen or TMV for its linear algebra routines. See the appropriate section in Installation Instructions if you want to use Eigen. To use TMV (which was required prior to version 2.0), read on.
You should download TMV from
https://github.com/rmjarvis/tmv/
and follow the instructions in its INSTALL file for how to install it. Usually installing TMV just requires the command:
scons install PREFIX=<installdir>
but there are additional options you might consider, so you should read the TMV
INSTALL file for full details. Also note, you may not need to specify the
installation directory if you are comfortable installing it into /usr/local
.
However, if you are trying to install it into a system directory then you need
to use sudo scons install [PREFIX=<installdir>].
Boost C++¶
GalSim can use either PyBind11 or Boost for wrapping the C++ code to use in Python. See the appropriate section in Installation Instructions if you want to use PyBind11. To use Boost (which was required prior to version 2.0), read on.
GalSim makes use of some of the Boost C++ libraries, and these parts of Boost must be installed. Currently GalSim is regularly tested to ensure it works with Boost version 1.61, but it is likely that most versions released within the last several years will also work. It is particularly important that your installed Boost library links to the same version of Python with which you will be using GalSim and on which you have installed NumPy and PyFITS (see Section ii, above). Boost can be downloaded from
and must be installed per the (rather limited) instructions there, which essentially amount to using a command:
./bootstrap.sh
(Additional bootstrap.sh
options may be necessary to ensure Boost is built
against the correct version of Python; see below).
followed by:
./b2 link=shared
./b2 --prefix=<INSTALL_DIR> link=shared install
If you are installing to a system directory, the second needs to be run as
root, of course: sudo ./b2 ...
Also, you should be aware that if you are
running b2
a second time, you should use b2 -a
to tell boost to
recompile everything rather than use the existing libraries.
The link=shared
is necessary to ensure that they are built as shared
libraries; this is automatic on some platforms, but not all.
Note: if you do not want to install everything related to Boost (which takes a
while), you can restrict to Boost Python and math by using --with-python
--with-math
on the ./b2
commands. Currently we are only using Boost Python
and parts of the math library so compiling and installing these two will likely
be sufficient for the foreseeable future.
Once you have installed Boost, you can check that it links to the version of Python that will be used for GalSim and on which you have installed NumPy and PyFITS by typing:
ldd <YOUR_BOOST_LIB_DIR>/libboost_python<POSSIBLE_SUFFIX>.so (Linux)
otool -L <YOUR_BOOST_LIB_DIR>/libboost_python<POSSIBLE_SUFFIX>.dylib (OSX)
(If the ldd command on Linux does not show the Python version, the command
ls -l <YOUR_BOOST_LIB_LOCATION>/libboost_python*
may show the version of
libboost_python.so linked to, for example, libboost_python_py26.so.1.40.0
.
In such a case you can tell both the Python and Boost versions being used, 2.6
and 1.40.0
, respectively, in this example.) On some Linux systems,
ldd will not indicate the Python library against which boost was
compiled; in this case, continue with the installation procedure and
any issues will be revealed at a later stage.
If the Python library listed is the one you will be using, all is well. If not,
Boost can be forced to use a different version by specifying the following
options to the ./bootstrap.sh installation script (defaults in []
brackets):
--with-python=PYTHON
specify the Python executable [python]--with-python-root=DIR
specify the root of the Python installation[automatically detected, but some users have found they have to force it to use a specific one because it detected the wrong one]
Python dependencies¶
The normal way in which you can install all the required python dependencies is with pip:
pip install -r requirements.txt
If you don’t want to use pip, you should make sure the following packages are installed using your preferred installation method. The versions given in parentheses are known to work, but usually other recent version (especially later) will also work.
NumPy (1.16.1)
Future (0.17.1)
Astropy (3.0.5)
LSSTDESC.Coord (1.0.5)
If you plan to use PyBind11, rather than Boost, then you should also install
PyBind11 (2.2.3)
If you plan to use Eigen rather than TMV, then you should also install
PyBind11 (3.2.8)
There are a few others modules are not technically required, but we include them in the requirements.txt file, because they add either useful functionality or efficiency to GalSim.
Starlink (3.10.0) (Improved WCS functionality)
PyYaml (3.12) (Reads YAML config files)
Pandas (0.20) (Faster reading of ASCII input files)
If you want more control about which version you get or otherwise want to install each package individually using pip, you can do:
pip install numpy
pip install future
pip install astropy
pip install pybind11
pip install LSSTDESC.Coord
pip install starlink-pyast
pip install pyyaml
pip install pandas
In all cases, you may need to precede the above commands with sudo
or
add --user
to the end as you normally do when pip installing on your system.
Installing the GalSim Python package¶
Once you have installed all the dependencies described above, you are ready to build GalSim. From the GalSim base directory (in which this file is found) type:
scons
If everything above was installed in fairly standard locations, this may work the first time. Otherwise, you may have to tell SCons where to find some of those libraries. There are quite a few options that you can use to tell SCons where to look, as well as other things about the build process. To see a list of options you can pass to SCons, type:
scons -h
(See also Section 5 below.)
As an example, to specify where your TMV library is located, you can type:
scons TMV_DIR=<tmv-dir>
where <tmv-dir>
would be the same as the PREFIX
you specified when
installing TMV, i.e. The TMV library and include files are installed in
<tmv-dir>/lib
and <tmv-dir>/include
. Some important options that you may
need to set are:
FFTW_DIR
: Explicitly give the FFTW prefixUSE_TMV
: Specify that you want to use TMV rather than Eigen.TMV_DIR
: Explicitly give the TMV prefixEIGEN_DIR
: Explicitly give the Eigen prefixUSE_BOOST
: Specify that you want to use Boost rather than PyBind11.BOOST_DIR
: Explicitly give the Boost prefixEXTRA_LIBS
: Additional libraries to send to the linkerEXTRA_INCLUDE_PATH
: Extra paths for header files (separated by : if more than 1)EXTRA_FLAGS
: Extra flags to send to the compiler other than what is automatically used. (e.g. -m64 to force 64 bit compilation)
Again, you can see the full list of options using scons -h
.
Another common option is CXX=<c++compiler>
. So, to compile with icpc
rather
than the default g++
, type:
scons CXX=icpc
On El Capitan, Apple instituted a new security measure wherein system calls lose some of the system environment variables, including DYLD_LIBRARY_PATH among others. If your system is set up to use that environment variable to resolve library locations at runtime, then this will cause problems when SCons is trying to figure out if things are installed correctly. To override this behavior, you can explicitly send this environment variable to SCons by writing:
scons DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH
and it will be able to re-set this value within the SCons processing.
One nice feature of SCons is that once you have specified a parameter, it will
save that value for future builds in the file gs_scons.conf
, so once you have
the build process working, for later builds you only need to type scons
. It
can also be useful to edit this file directly – mostly if you want to unset a
parameter and return to the default value, it can be easier to just delete the
line from this file, rather than explicitly set it back to the default value.
SCons caches the results of the various checks it does for the required external libraries (TMV, Boost, etc.). This is usually very helpful, since they do not generally change, so it makes later builds much faster. However, sometimes (rarely) SCons can get confused and not realized that things on your system have changed, which might cause problems for you. You can delete everything scons knows about what it has tried to build previously with:
/bin/rm -rf .scon*
This will force SCons to recheck and recompile everything from scratch.
Once you have a successful build, you can install the GalSim library, Python
modules, and header files into standard locations (like /usr/local
and your
Python site-packages directory) with:
scons install
or:
sudo scons install
If you want to install into a different location, the prefix for the library
and header files can be specified with PREFIX=<installdir>
, and the location
for the Python modules can be specified with PYPREFIX=<pythondir>
. So the
command would be:
scons install PREFIX=<installdir> PYPREFIX=<pythondir>
Note: if you specify a specific directory for the Python modules with PYPREFIX, this directory should be in the sys.path search path for the version of Python you are using. You can check with:
python -c "import sys; print sys.path"
If your PYPREFIX
directory is not there, then Python will not be able to find
the installed galsim module. You should therefore add this directory to your
PYTHONPATH environment variable. For example, if you use bash, then you
should add the line:
export PYTHONPATH=$PYTHONPATH:<pythondir>
where <pythondir>
is the same directory you used above for PYPREFIX
.
The installed files can be removed with the command:
scons uninstall
Finally, to clean all compiled objects from the GalSim
directory, you can use:
scons -c
This is rather like a make clean
command.
If you are having trouble with installing, you may find some helpful hints at the GalSim Installation FAQ page on the Wiki: https://github.com/GalSim-developers/GalSim/wiki/Installation%20FAQ
You can ask also about your particular problem on stackoverflow.com. Some of the GalSim developers have automatic alerts set up for the tag ‘galsim’. So you can ask your question there, and there is a good chance that it will be answered. You might also try searching that site to see if anyone else asked about the same problem.
If you are still having trouble, please consider opening a new issue on the GalSim Github page at https://github.com/GalSim-developers/GalSim/issues explaining what your particular problem is, and hopefully someone can help you figure out a solution.
Running tests and installing example executables¶
You can run our test suite by typing:
scons tests
This should compile the test suite and run it. The tests of our C++ library
will always be run, but we use pytest
for our Python test suite, so that
will only be run if pytest
is present on your system. We do not require
this as a dependency, since you can still do everything with the GalSim library
without this. But it is required for a complete run of the test suite.
To install pytest
, you can also use easy_install as described in Section 1
above (see also https://docs.pytest.org/en/latest/). Many third party-
maintained Python distributions, such as the Enthought Python Distribution,
include pytest
.
By default, the python tests will use the pytest plugins pytest-xdist
(for
running tests in parallel) and pytest-timeout
(to manage how much time each
test is allowed to run). These plugins are usually installable using pip::
pip install pytest-xdist pytest-timeout
Sometimes the --user
flag may be needed in the above command to make the
plugins discoverable. If you want to run the python tests without these
plugins (serially!), you can still do this via:
scons tests -j1
Platform-specific notes¶
Linux¶
The vast majority of Linux distributions provide installable packages for most
of our dependencies. In many cases, however, it is also necessary to install
“-devel” or “-dev” packages (e.g. python-dev
or libboost-dev
on Debian-
derivatives). However, as above we stress that you should make sure that the
version of Python that Boost is built against must be the same as that you
intend to use for running GalSim.
The solution may be to install Boost C++ manually. This can be done by following the instructions of Section 1.v), above.
Mac OSX¶
a) Use of Fink – the fink
(http://www.finkproject.org) package management
software is popular with Mac users. Once it is installed, you can get either
most or all of the prerequisites using it, depending on whether you want
to use GalSim with the fink version of Python (e.g. that in /sw/bin/python
) or
the system Python (/usr/bin/python
) or something else still.
It is in general a good idea to update fink prior to installing any new modules:
fink selfupdate
fink update-all
If you are happy with running GalSim using the fink version of python 2.7, you can install everything with the following command:
fink install galsim
and it should just work. However, there are some caveats that are worth knowing
about (assuming your fink installation is in /sw
):
1. This will install GalSim as a module of the python2.7 installed by fink.
This is not the default Python (usually /usr/bin/python
or some other package,
such as EPD, if installed). Any Python scripts you write that use the galsim
module should therefore have #!/sw/bin/python2.7
as the first line rather
than the usual #!/usr/bin/env python
. Similarly, if you want to use galsim
in an interactive Python session, you should run /sw/bin/python2.7
(simply
python2.7
may also work) rather than just python
. (Of course, you can
always change your PATH
environment variable to make the fink Python the
system default if you wish…)
2. The executable galsim
, which parses YAML or JSON configuration files,
will be installed in /sw/bin
. You should not need to do anything special
to use these, since /sw/bin
should already be in your path if using fink.
3. If you want to run through the example scripts (such as the demo tutorials
demo1.py
, demo2.py
etc. and the .yaml
and .json
config versions of the
same demos), you will still need to download the GalSim tarball. But you can
skip all the instructions above about installation and just use the fink
version. So python2.7 demo1.py
(assuming which python2.7
is the fink one)
and galsim demo1.yaml
should run those scripts for you.
4. If you want to work with GalSim as a developer, rather than just a user,
then you cannot use the fink-installed GalSim. However, the process above will
have installed all the prerequisites. So fink uninstall galsim
will leave
you able to install GalSim using the main branch with:
scons TMV_DIR=/sw PYTHON=/sw/bin/python2.7 BOOST_DIR=/sw/opt/boost-1_58
from within the repository base directory.
To run the unit tests, you will also need pytest, which you can also get from fink:
fink install pytest-py27
scons tests PYTEST=/sw/bin/pytest
If you want to use the system Python, or some other version, then the fink Python installations will not work. You will need to manually install NumPy, PyFITS, PyYAML and pytest, for example using easy_install, with your chosen Python.
For the system Python, you can use fink for Boost, but you will want a
different package than the boost1.58.python27 that gets installed using
fink install galsim
above:
fink install scons fftw3 tmv0 boost1.58-systempython
pip install future
scons TMV_DIR=/sw BOOST_DIR=/sw/opt/boost-1_58
For other Python versions, the fink-installed Boost usually will not work, so you can only use fink for SCons, FFTW and TMV. So you will probably need to install Boost manually. This can be done by following the instructions of Section 1.v), above.
b) MacPorts – this is another popular Mac package management project (http://www.macports.org/) with similar functionality to fink. Neither TMV nor GalSim are currently on the official MacPorts distribution list, so users cannot find them by searching the MacPorts site. However, it is possible to install both TMV and GalSim, plus the other dependencies of GalSim, using MacPorts following the instructions below.
It is in general a good idea to upgrade all modules, prior to installing any new modules:
sudo port selfupdate
sudo port upgrade outdated
Below is a list of steps to take to install GalSim using MacPorts:
i) Take the
Portfiles
from the GalSim repository: https://github.com/GalSim-developers/GalSim/blob/main/devel/ports.tar.gz (If you do not clone the repository, there is a “copy” button on the website that you can use to download the file directly.) ii) Place the file in your home directory. iii)tar xvzf ports.tar.gz
iv)cd ports
v)sudo portindex
vi)sudo port install python27
vii)sudo port select --set python python27
viii)sudo sh -c "echo file:///Users/username/ports >> /opt/local/etc/macports/sources.conf"
ix)sudo port install galsim
x) Add/opt/local/lib
toDYLD_LIBRARY_PATH
Some users may find that the last step results in an inability to import the GalSim module. In that case, you can clear that addition to DYLD_LIBRARY_PATH and instead add /opt/local/lib to DYLD_FALLBACK_LIBRARY_PATH.
c) Homebrew (http://mxcl.github.com/homebrew/) – another package manager for Max OSX. Currently GalSim is available on homebrew, so it (plus dependencies) should be installable via:
brew tap camphogg/science
brew install gal-sim
Docker¶
Karen Ng has created a Docker file for containerizing GalSim. See her repo:
https://github.com/karenyyng/GalSim_dockerfile
for instructions about how to either use her image or create your own.
More SCons options¶
Here is a fairly complete list of the options you can pass to SCons to control the build process. The options are listed with their default value. You change them simply by specifying a different value on the command line.
For example:
scons CXX=icpc TMV_DIR=~
(Unlike autotools, SCons correctly expands ~ to your home directory.) You can list these options from the command line with:
scons -h
Basic flags about the C++ compilation (default values in parentheses)¶
CXX
(g++) specifies which C++ compiler to use.FLAGS
(‘’) specifies the basic flags to pass to the compiler. The default behavior is to automatically choose good flags to use according to which kind of compiler you are using. This option overrides that and lets you specify exactly what flags to use.EXTRA_FLAGS
(‘’) specifies some extra flags that you want to use in addition to the defaults that SCons determines on its own. Unlike the above option, this do not override the defaults, it just adds to them.LINK_FLAGS
(‘’) specifies some extra flags at the linking step to use in addition to the defaults that SCons determines it needs on its own.DEBUG
(True) specifies whether to keep the debugging assert statements in the compiled library code. They are not much of a performance hit, so it is generally worth keeping them in, but if you need to squeeze out every last bit of performance, you can set this to False.EXTRA_DEBUG
(False) specifies whether to add a flag to keep the original code information in the compiled library (-g3 for g++ compiler). This increases the size of the compiled library, but makes debugging with things like gdb easier. Probably end users will never need to use this.WARN
(False) specifies whether to add warning compiler flags such as-Wall
.COVER
(False) specifies whether to add unit test coverage of the C++ layer.PYTHON
(/usr/bin/env python) specifies which version of Python you are planning to use GalSim with. If you choose not to use the default here, then you need to remember to use the correct Python version
Flags about where to install the library and modules¶
PREFIX
(/usr/local) specifies where to install the library when runningscons install
.PYPREFIX
([your python dir]/site-packages) specifies where to install the Python modules when runningscons install
.FINAL_PREFIX
(PREFIX
) specifies the final installation prefix if different from PREFIX. (This is only needed for things like fink, where they install into a staging area first before copying over to the final location.)WITH_UPS
(False) specified whether to install the ups directory for use with EUPS.
Flags that specify where to look for external libraries¶
FFTW_DIR
(‘’) specifies the root location of FFTW. The header files should be inFFTW_DIR/include
and the library files inFFTW_DIR/lib
.EIGEN_DIR
(‘’) specifies the root location of the Eigen header files. The Core include file for Eigen should located atEIGEN_DIR/Eigen/Core
.USE_TMV
(False) specifies to use TMV rather than Eigen for the linear algebra code in the C++ layer.TMV_DIR
(‘’) specifies the location of TMV if it is not in a standard location. This should be the same value as you used for PREFIX when installing TMV.TMV_LINK
(‘’) specifies the location of the tmv-link file. Normally, this is inTMV_DIR/share
, but if not, you can specify the correct location here.USE_BOOST
(False) specifies whether to use Boost.Python for wrapping the C++ code rather than PyBind11. If this is set, it will also use your Boost installation for some header files used by the random number generator code. We bundle the boost.random implementation from a specific boost version (1.48) to make sure “random” variable generation is deterministic across machines and over time. To make it fully self- contained, we edited them slightly to not include many of the complicated workarounds boost has for specific compilers and such. However, those workarounds can be reenabled by setting USE_BOOST=True if your system needs them.BOOST_DIR
(‘’) specifies the root location of BOOST The header files should be inBOOST_DIR/include/boost
and the library files inBOOST_DIR/lib
.EXTRA_INCLUDE_PATH
(‘’) specifies extra directories in which to search for header files in addition to the standard locations such as/usr/include
and/usr/local/include
and the ones derived from the above options. Sometimes the above options do not quite work, so you may need to specify other locations, which is what this option is for. These directories are specified as-I
flags to the compiler. If you are giving multiple directories, they should be separated by colons.EXTRA_LIB_PATH
(‘’) specifies extra directories in which to search for libraries in addition to the standard locations such as/usr/lib
and/usr/local/lib
. These directories are specified as-L
flags to the linker. If you are giving multiple directories, they should be separated by colons. To add the library/blah/libfoo.a
, specifyEXTRA_LIB_PATH=/blah/ EXTRA_LIBS=foo
.EXTRA_PATH
(‘’) specifies directories in which to search for executables (notably the compiler, although you can also just give the full path in the CXX parameter) in addition to the standard locations such as/usr/bin
and/usr/local/bin
. If you are giving multiple directories, they should be separated by colons.IMPORT_PATHS
(False) specifies whether to import extra path directories from the environment variables:PATH
,C_INCLUDE_PATH
,LD_LIBRARY_PATH
andLIBRARY_PATH
. If you have a complicated setup in which you use these environment variables to control everything, this can be an easy way to let SCons know about these locations.IMPORT_ENV
(True) specifies whether to import the entire environment from the calling shell. The default is for SCons to use the same environment as the shell from which it is called. However, sometimes it can be useful to start with a clean environment and manually add paths for various things, in which case you would want to set this to False.EXTRA_LIBS
(‘’) specifies libraries to use in addition to what SCons finds on its own. This might be useful if you have a non-standard name for one of the external libraries. e.g. If you want to use the Intel MKL library for the FFTW library, SCons will not automatically try that, so you could add those libraries here. If there is more than one, they should be quoted with spaces between the different libraries. e.g.EXTRA_LIBS="mkl_intel mkl_intel_thread mkl_core"
IMPORT_PREFIX
(True) specifies whether to include the directoriesPREFIX/include
,PREFIX/lib
andPREFIX/bin
as part of the standard path lists. Normally, you install everything in the same place, so it is useful to search those locations for some of the prerequisite packages, so the default is True. But occasionally, this might be inconvenient, so you can turn this feature off.DYLD_LIBRARY_PATH
(‘’) Set the DYLD_LIBRARY_PATH inside of SCons. Particularly useful on El Capitan (and later), since Apple strips out DYLD_LIBRARY_PATH from the environment that SCons sees, so if you need it, this option enables SCons to set it back in for you by doingscons DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH
.DYLD_FALLBACK_LIBRARY_PATH
(‘’) Set the DYLD_FALLBACK_LIBRARY_PATH inside of SCons. cf. DYLD_LIBRARY_PATH for why this may be useful.LD_LIBRARY_PATH
(‘’) Set the LD_LIBRARY_PATH inside of SCons. cf. DYLD_LIBRARY_PATH for why this may be useful.
Miscellaneous flags¶
PYTEST
(pytest) specifies which version of pytest you want to use for running the unit tests. If you specified a non-default Python, then there is a possibility that the standard pytest executable in your path will not work (since it might be for a different version of Python). In that case, specify the correct pytest here.CACHE_LIB
(True) specifies whether to cache the results of the library checks. While you are working one getting the prerequisites installed properly, it can be useful to set this to False to force SCons to redo all of its library checks each time. Once you have a successful build, you should set it back to True so that later builds can skip those checks.WITH_PROF
(False) specifies whether to use the compiler flag-pg
to include profiling info forgprof
.MEM_TEST
(False) specifies whether to test the code for memory leaks.TMV_DEBUG
(False) specifies whether to turn on extra (slower) debugging statements within the TMV library.USE_UNKNOWN_VARS
(False) specifies whether to accept scons parameters other than the ones listed here. Normally, another name would indicate a typo, so we catch it and let you know. But if you want to use other scons options that we did not list here, you would want to also set this to True.


Build a Kubernetes Cluster on Azure with Terraform
In the previous post I wrote about building a Kubernetes Cluster with Terraform, I covered the bases of building a cluster in Google Cloud Platform. Today I’m going to tackle the Azure Platform. There are a lot of similarities being the same task, but there are some differences which I’ll take a look at. The repository to this write up is located in another_new_world on Github.
First things first, locally you’ll want to have the respective CLI tools installed for Azure, Terraform, and Kubernetes.
Chaos, Presentations, and Thrashing Code Metal Monday for November, 6th 2017
This week I’ve got two talks with Lena (@Lenadroid) lined up today and tomorrow with titled “Inception, Workflow, to $Deployed$“. Tonight’s .netda is at Microsoft in Building 34 and tomorrow will be in downtown Seattle at Parametric Portfolio Associates. Hope to see you there, and for monday…
Thrashing Code Metal Monday for Week of October 30th 2017
I’ll start with some tunes today. It seems like a good day for a swashbuckling adventure, especially with Halloween tomorrow and all. With the tunes rocking, let’s talk upcoming meetups real quick, then the code challenge and two additional epic tunes to get some coding done to.
Ballard Happy Hour is @ 5:30pm this Tuesday @ Ballard Beer Company
Chat about Dev+Ops over Morning Coffee/Tea @ 8am @ Chef Software.
Also to mention, next week I’ll be presenting with @Lenadroid at the .NET Developer’s Association meetups in downtown Seattle @ Parametric Portfolio Associates and in Redmond at Microsoft Building 34. I hope you’ll join us there for the presentation and chats after.
Thrashing Code Metal Monday for Week of October 23rd 2017
This has been a ridiculously productive Monday. I’ve got a lot of communications kicked off and some continued on a number of key points of business. I’ve also been involved with editing, writing, and getting a number blog entries posted today besides this one.
- Build a Kubernetes Cluster on Google Cloud Platform with Terraform - even though I wrapped it up last night I saved it for a final edit run this morning. That published super early.
- Speaking, Follow Up, and Improving - Next up was this post where I outlined my mission when presenting, and what I aim to accomplish with every presentation I give.
- A Modern Cross-Platform approach to µServices in .NET - Then I did a final edit pass on and worked with Joachim @ Pelotech to get this article published. He’s got some really great material coming on the tail of this one too. C#, REST Services, microservice style implementation, GRPC, graphql, reactjs, and more.
- Big Ole Invisible Freight Railroads (Let’s Talk Volumes) - In my search for freight shipments data, I wrote a piece on my efforts to find, and eventually fumble through not finding the granularity of data that I needed.
Now I’m kicking back and chilling for a few on the couch and it was just time for some relaxing metal tunes. These are different then the ones I often post, which tend toward waking up and kicking off Monday with attitude. But before diving into the metal this grand Monday, let’s talk about a code challenge shall we?
Build a Kubernetes Cluster on Google Cloud Platform with Terraform
In this blog entry I’m going to detail the exact configuration and cover in some additional details the collateral resources you can expect to find once the configuration is executed against with Terraform. For the repository to this write up, I create our_new_world available on Github.
A lot of this material I wrote about with Setting up a GCP Container Cluster - Part I and Setting up a GCP Container Cluster - Part II. I had started on a Part 3 around setting up Drone.io on a Kubernetes/GCP Container Cluster but stopped midway through with other demands. This post is a more up to date post of all those things plus more. With this post completed I’ve stepped back into getting Drone.io setup and am now finally finishing that blog entry! #win!
First things first, locally you’ll want to have the respective CLI tools installed for Google Cloud Platform, Terraform, and Kubernetes.
Thrashing Code Metal Monday for Week of October 16th 2017
It’s not Monday anymore, but we still need some heavy music to debug to. Late better than never, here’s the fire.
Flip this around to some In This Moment with a flashback to the… ya know, previous decades.
Thrashing Code Metal Monday for Week of October 9th 2017
Alright, this Thrashing Code Metal Monday is going hard core sideways, with something a little different.
First up, which will give you a solid 10 minutes plus of wake up, is Driving Spain up a Wall by the creative smash you in the face band City of Caterpillar.
 Get a taste of early stuff and later material, like one I dig is Rise.  Throw around and check them out.
The Three States of Roadways
A few weeks ago I posed a code challenge that was extremely open ended. It left a lot of elements to the imagination of the reader of the problem to research, determine, or just make up. In that same sense, here is the question that I posed on Monday, September the 18th. The code challenge as I was saying wasn’t some simple, solve it in 5 minutes, type of thing. This was something where we humans actually have real problems to solve in the world. So here we go, this is going to get seriously intense (and long cuz’ I’m gonna describe every bit of my process). I’ll start with a quick recap of the problem.
Given that roadways have three primary functions they’re used for: active transport, storage or parking, and nil or no use. Solve for what percentage of time a roadway experiences each. Details are further elaborated on here:
Ask: Well what type of road is it, how many lanes, how many parking spots? What is the layout?
Answer: Here are three types of roads specifically to solve for in a first attempt. These are specified just to have a starting point.
NOTE: I added pictures of the road types by using Street Mix. If you’re interested in road alignments then this tool might consume a few hours of your day, so beware!
Thrashing Code Metal Monday for Week of October 2nd 2017
Ah, this one has the soul and groove that the Swedes have been bringing to the show lately. A little Ghost B.C. (or simply Ghost these days) and The Great Discord.
In addition I’ve got a new Metal Monday Coding Challenge and Wednesday I’ll have some answers to the first Metal Monday Coding Challenge. If you’ve not solved it, or attempted to put the information together necessary for that problem to be solved do so now!


Alaska
问题描述 :
The Alaska Highway runs 1422 miles from Dawson Creek, British Columbia to Delta Junction, Alaska. Brenda would like to be the first person to drive her new electric car the length of the highway. Her car can travel up to 200 miles once charged at a special charging station. There is a charging station in Dawson Creek, where she begins her journey, and also several charging stations along the way. Can Brenda drive her car from Dawson City to Delta Juntion and back?
输入:
The input contains several scenario. Each scenario begins with a line containing n, a positive number indicating the number of charging stations. n lines follow, each giving the location of a filling station on the highway, including the one in Dawson City. The location is an integer between 0 and 1422, inclusive, indicating the distance in miles from Dawson Creek. No two filling stations are at the same location. A line containing 0 follows the last scenario.
输出:
The input contains several scenario. Each scenario begins with a line containing n, a positive number indicating the number of charging stations. n lines follow, each giving the location of a filling station on the highway, including the one in Dawson City. The location is an integer between 0 and 1422, inclusive, indicating the distance in miles from Dawson Creek. No two filling stations are at the same location. A line containing 0 follows the last scenario.
样例输入:
2 0 900 8 1400 1200 1000 800 600 400 200 0 0
样例输出:
IMPOSSIBLE POSSIBLE
#include<stdio.h> #include<stdlib.h> int f[1450]={0}; int main() { int cmp(const void *a,const void *b); int t,i,max,p; while(scanf("%d",&t),t!=0) { max=0; p=0; for(i=0;i<t;i++) { scanf("%d",&f[i]); } qsort(f,t,sizeof(int),cmp); f[i]=1422; if((f[i]-f[i-1])>100) { printf("IMPOSSIBLE\n"); p=1; } else { for(i=1;i<t;i++) { if((f[i]-f[i-1])>max) { max=f[i]-f[i-1]; if(max>200) { p=1; break; } } } if(p==0) { printf("POSSIBLE\n"); } else { printf("IMPOSSIBLE\n"); } } } return 0; } int cmp(const void *a,const void *b) { return *(int *)a-* (int*)b; }
(adsbygoogle = window.adsbygoogle || []).push({});
还不错的样子！ ios7 25EE8N
QAQ超想要。
感谢分享 学习了`(*∩_∩*)′
DFS方法的原理还是不太清楚啊
这个问题别太纠结了，不同的编译器结果不一
博主的C++功底真是好
理解错了。。。。。谢谢楼主~~
因为是要把从字符串s的start位到当前位在hash中重置，修改提交后能accept，但是不修改居然也能accept
很好，解决了
这个方法是错的，不信你试试：
20 5
1 A:9
1 A:9
1 A:9
1 A:6
1 A:4
正确答案应该是19，这个答案是18
第一句可以忽略不计了吧。从第二句开始分析，说明这个花色下的所有牌都会在其它里面出现，那么还剩下♠和♦。第三句，可以排除2和7，因为在两种花色里有。现在是第四句，因为♠还剩下多个，只有是♦B才能知道答案。
great!
很给力啊，学习了
这个问题别太纠结了，不同的编译器结果不一
第二种解法如果数组有重复元素 就不正确


Shipments
Send
Settings
<
Shipments
Add
42234433
<
Shipment
Save
Shipment #:
Ship From:
Salem Distribution
Sacremento Hub
Route:
Willamette Corridor
Central north-south
Eastern
Departure date:
Departure time:
Vehicle #:
Shipment
Deliveries
<
Deliveries
Add
42234433
Shipment
Deliveries
<
Delivery
Save
Delivery # (default random):
To retailer #:
(select)
Costco
Walmart
Fred Meyer
Item (UPC)#:
Date delivered:
Time delivered:
Quantity:
Unit of measure:
Count
Lbs
X
Settings
Save
Shipment Mobile
(c) 2013 Compass Point, Inc., www.compass-point.net
Driver:
Bill Jacobsen
Phillip O'Leary


Reese LAFLARE Gets In His R&B Bag On "Masquerade"
Reese LAFLARE is back with his latest single, "Masquerade."
by Aron A.Masquerade
Reese LAFLARE
Editor Rating: HOTTTTT
User Rating: hottttt - 75% (1)
Reese LAFLARE has been buzzing in Atlanta for years but it wasn't until 2018 that he released his debut album. The self-titled project properly showcased his artistry and had a bunch of high-profile artists on it. Now, it looks like he's readying a brand new project. Over the past few weeks, he dropped off a few singles including "Lil Skate For President" and "Cash Talk" with Pi'erre Bourne. Earlier today, he returned with his latest drop, "Masquerade" which sounds nothing like his recent string of singles. This one is more on the melodic side as he gravitates towards R&B more than he does hip hop or trap but he adds his own twist to it and makes it his own.
Peep his new single below.
Quotable Lyrics
Who's the real killa? Me or you?
Take the mask off, it ain't that type of party
Lookin' high, I still see you regardless


ORGAZMO Directed and written by Trey Parker Starring – Trey Parker, Dian Bachar, Masad `Maki' San Running time – 94 min. (may be cut for R rating)
Reviewed by Mike Babitsky
3.75/4
PLOT: Parker plays Joe Young, a naïve Mormon who cheerfully goes from house to house hoping to spread the word of Christ. He soon finds himself at the house of porn director, Maxxx Orbison (Michael Dean Jacobs). Joe gets into a fight outside the house, and Orbison is so impressed with his skills that he persuades him to play the super hero, Orgazmo in his new movie… Orgazmo. Hesitant at first, Joe accepts because he needs the money to get married to his fiancé.
CRITIQUE: Parker's first feature, with his partner Matt Stone, was Cannibal: The Musical, a hilarious, low-budget film made for Troma (and the reason Parker left college). Orgazmo shows Parker's growth as a writer and director, and proves to be one of the funniest comedies to come... echem...along in awhile.
Parker and Stone's careers basically began because of the intense bootleg distribution of their vulgar, 5 min., animated masterpiece, ‘The Spirit of Christmas', which had Jesus fighting Santa Claus over the ‘true' meaning of Christmas. This short spawned the animated phenomenon known as South Park. ‘Mere shock value' is a phrase that is often used to describe the reason behind the popularity of their program. Perhaps the same words will be used by critics to describe this picture.
The problem with the term ‘shock value', is that it often suffocates the true comedic value and reduces the picture to nothing more than outrageousness. It's a knee-jerk label that many easily offended people give when viewing work that deals with subject matter that they'drather not view. This is fairly evident as the film received an NC-17 (which would pretty much butcher it's distribution potential, so it must be cut to make the R).
However, despite the subjects Parker has chosen to tackle as backdrops for his comedy, his wit and originality is always present in all he's worked on and hopefully will get noticed moreso than his subjects.
The main strength of the comedy is its lack of ‘duds'. Just about every joke Parker goes for works, and every now and then he gets something that ‘really' works. Few of those latter jokes could be described in this review without lessening the impact of an actual viewing, however one physical gag sticks out in my mind and involves a character named T-Rex…That is all I will say.
An interesting Parker used a few actual porn stars in the film, either as an inside joke for those of us who know who Ron Jeremy (of Anal Al's Adventures fame) is, or to instill an important sense of realism that can only be achieved by porn stars playing porn stars. Also adding some Spice in the film is Chasey Lain and Boraca the Brazilian Bombshell.
The film has a simplicity about it, and perhaps that is it's biggest forte. Many comedies try to be big, with the misconception that bigger is better, and while I'm sure many actors in this film would hold that belief……, it is my experience that forced and unnecessary grandeur often obscures pure comedy and its subtleties. Then again, perhaps the simplicity is due mainly to budget restraints… well, whatever the reason…it works. It is not the most satirical, nor the most intelligent script ever written, but it did it's job…it was funny. Parker obviously has confidence in his work and sense of humor. As a result, the pacing never becomes flaccid. It may be somewhat immature, it may contain some mediocre choices in running gags, and maybe an elderly lady humping her walker could be considered in bad taste…but it's all in good fun.
Another interesting character assignment is Dian Bachar as Ben Chapleski (aka Choda Boy). In Cannibal: The Musical, Dian played a virgin whose main hope in life was to get laid. In Orgazmo, as Ben, Dian finally gets to see some action. Another character returning from Cannibal is Masad "Maki" San, who impeccably portrays G-Fresh...
As a side-note, the hilarious theme song, `Now You're a Man' is performed by Parker and Stone's band DVDA (the meaning behind which will be explained within the film.)
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


- waffleoRai_cafebotCommands - package waffleoRai_cafebotCommands
-
- waffleoRai_cafebotCommands.Commands - package waffleoRai_cafebotCommands.Commands
-
- waffleoRai_cafebotCommands.parsers - package waffleoRai_cafebotCommands.parsers
-
- waffleoRai_cafebotCore - package waffleoRai_cafebotCore
-
- waffleoRai_cafebotInstall - package waffleoRai_cafebotInstall
-
- waffleoRai_cafebotRoles - package waffleoRai_cafebotRoles
-
- waffleoRai_cafebots - package waffleoRai_cafebots
-
- waffleoRai_cafebotsGUI - package waffleoRai_cafebotsGUI
-
- waffleoRai_cafemasterRed - package waffleoRai_cafemasterRed
-
- waffleoRai_schedulebot - package waffleoRai_schedulebot
-
- waffleoRai_Utils - package waffleoRai_Utils
-
- warnBlock(long) - Method in class waffleoRai_cafebotCore.AbstractBot
-
- WIDTH - Static variable in class waffleoRai_cafebotsGUI.BotPanel
-
- WIDTH - Static variable in class waffleoRai_cafebotsGUI.CafebotsControlPanel
-
- WIDTH - Static variable in class waffleoRai_cafebotsGUI.PicturePanel
-
- winDefo - Static variable in class waffleoRai_cafebotCore.LaunchCore
-
- wishBirthday(long, long, boolean) - Method in class waffleoRai_cafebotCore.AbstractBot
-
- WisherThread(int) - Constructor for class waffleoRai_schedulebot.Schedule.WisherThread
-
- writeABit(byte, boolean, int) - Static method in class waffleoRai_Utils.BitStreamer
-
Writers
- writeABit(short, boolean, int) - Static method in class waffleoRai_Utils.BitStreamer
-
- writeABit(int, boolean, int) - Static method in class waffleoRai_Utils.BitStreamer
-
- writeABit(long, boolean, int) - Static method in class waffleoRai_Utils.BitStreamer
-
- writeBits(boolean) - Method in class waffleoRai_Utils.BitStreamer
-
- writeBits(byte, int) - Method in class waffleoRai_Utils.BitStreamer
-
- writeBits(short, int) - Method in class waffleoRai_Utils.BitStreamer
-
- writeBits(int, int) - Method in class waffleoRai_Utils.BitStreamer
-
- writeBits(long, int) - Method in class waffleoRai_Utils.BitStreamer
-
- writeBufferSize() - Method in class waffleoRai_Utils.CompositeBuffer
-
Get the current size of the write buffer to be used in buffered writes, in bytes.
- writeFile(String, long, long) - Method in class waffleoRai_Utils.CompositeBuffer
-
- writeFile() - Method in class waffleoRai_Utils.FileBuffer
-
Write a file to disk using the path in the object.
- writeFile(String) - Method in class waffleoRai_Utils.FileBuffer
-
Write a file to disk using the path string provided.
- writeFile(int) - Method in class waffleoRai_Utils.FileBuffer
-
Write a file to disk using the path in the object.
- writeFile(long) - Method in class waffleoRai_Utils.FileBuffer
-
Write a file to disk using the path in the object.
- writeFile(int, int) - Method in class waffleoRai_Utils.FileBuffer
-
Write a file to disk using the path in the object.
- writeFile(long, long) - Method in class waffleoRai_Utils.FileBuffer
-
Write a file to disk using the path in the object.
- writeFile(String, int) - Method in class waffleoRai_Utils.FileBuffer
-
Write a file to disk using the path string provided.
- writeFile(String, long) - Method in class waffleoRai_Utils.FileBuffer
-
Write a file to disk using the path string provided.
- writeFile(String, int, int) - Method in class waffleoRai_Utils.FileBuffer
-
Write a file to disk using the path string provided.
- writeFile(String, long, long) - Method in class waffleoRai_Utils.FileBuffer
-
Write a file to disk using the path string provided.
- writeFile() - Method in class waffleoRai_Utils.ROSubFileBuffer
-
- writeFile(String) - Method in class waffleoRai_Utils.ROSubFileBuffer
-
- writeFile(int) - Method in class waffleoRai_Utils.ROSubFileBuffer
-
- writeFile(long) - Method in class waffleoRai_Utils.ROSubFileBuffer
-
- writeFile(int, int) - Method in class waffleoRai_Utils.ROSubFileBuffer
-
- writeFile(long, long) - Method in class waffleoRai_Utils.ROSubFileBuffer
-
- writeFile(String, int) - Method in class waffleoRai_Utils.ROSubFileBuffer
-
- writeFile(String, int, int) - Method in class waffleoRai_Utils.ROSubFileBuffer
-
- writeFile(String, long, long) - Method in class waffleoRai_Utils.ROSubFileBuffer
-
- writeFile() - Method in class waffleoRai_Utils.StreamBuffer
-
- writeFile(String) - Method in class waffleoRai_Utils.StreamBuffer
-
- writeFile(int) - Method in class waffleoRai_Utils.StreamBuffer
-
- writeFile(long) - Method in class waffleoRai_Utils.StreamBuffer
-
- writeFile(int, int) - Method in class waffleoRai_Utils.StreamBuffer
-
- writeFile(long, long) - Method in class waffleoRai_Utils.StreamBuffer
-
- writeFile(String, int) - Method in class waffleoRai_Utils.StreamBuffer
-
- writeFile(String, long) - Method in class waffleoRai_Utils.StreamBuffer
-
- writeFile(String, int, int) - Method in class waffleoRai_Utils.StreamBuffer
-
- writeFile(String, long, long) - Method in class waffleoRai_Utils.StreamBuffer
-
- writeIncompleteTemp() - Method in class waffleoRai_Utils.BitStreamer
-
- writeInitFile(String) - Method in class waffleoRai_cafebotCore.GuildMap
-
- writeInitXML(BotSet, String) - Static method in class waffleoRai_cafebotCore.LaunchCore
-
- writeToDisk(String) - Method in class waffleoRai_cafebotRoles.ActingManager
-
- writeToFile(BufferedWriter) - Method in class waffleoRai_cafebotCore.ActorUser
-


--- layout: default title: Projects permalink: /projects/ ---
Charity Club Website
Developer Club Website
Developer Club Logo


Visualizations
{{ scriptL|safe }}
{{ divL|safe }}
University Score Timeline
This graph shows the selected universities’ ranking score from 2010 to 2019 in a stacked bar chart, where
the lighter shading represents the amount of score contributed by top 10% of the authors in the university
in terms of ranking scores.
{{ script1|safe }}
{{ div1|safe }}
Number of Authors in Various Publication Amount
This stacked bar chart shows the number of authors in the university who have published only one, two, or
more than three publications.
{{ script2|safe }}
{{ div2|safe }}
Average Publication Percent Contribution Overtime
This line graph shows the average publication contribution percentage from 2010 to 2019, which indicates how
likely universities co-author with different universities overtime.
{{ script3|safe }}
{{ div3|safe }}
Average Number of Authors per Publication Overtime
This line graph shows the average number of authors per paper of each university from 2010 to 2019, which
reflects how independent the researchers at each university are.
{{ script4|safe }}
{{ div4|safe }}


I. Variables, Values, Operators & Functions
Created by Ben Glassman / github.com/benglass
Tell us about yourself.
Writing step-by-step instructions for a computer.
We call these instructions code.
var age = prompt('How old are you?');
if (age < 21) {
alert("Perhaps you should try http://www.disney.com");
}
Computers are like a person who only understands grammatically correct sentences. This can be frustrating.
You: I took a picture of my mom and dad, a clown and a dinosaur.
 Your dad is a dinosaur.
Every language has rules for how your instructions should be constructed so that a computer can understand them.
When your instructions dont follow these rules, its a Syntax Error
Can you think of some syntax rules for HTML or CSS?
A tag is an abbreviation surrounded by less than and greater than symbols.

Hi!

<pHi!

A rule is a property followed by a colon followed by a value followed by a semi colon.
color: blue;
color = blue;
The computer can interpret and execute the code directly.
Examples: Javascript, PHP, Python, Perl and Ruby.
First, the code is compiled into an executable program. Second, this program can be executed by the computer.
Examples: C, C#, Java
Interpreted languages generally include tools called REPLs that allow you to enter a line of code and immediately see the result.
Every browser has a built in Javascript interpreter. Chrome also has a built-in REPL called the console. Open it by going to Menu > Tools > Javascript Console or hitting CTRL-SHIFT-J
You can also expirement with REPLs for other languages at repl.it
Lets use javascript inside an HTML page. Make a folder called javascript. Inside it make a new html page called index.html and add the following code:
<!DOCTYPE html>

<title>Test Page</title>

This is my awesome JavaScript code.

You can add JavaScript to an HTML document by placing it inside a script tag. The script tag tells the browser to treat the text inside it as JavaScript code that should be run.

Just like CSS, you can also place JavaScript in its own file and attach it to an HTML page.
alert('Hello World!');
console.log(5 + 2);
document.write('Hello!!!'); // Replaces all other HTML
document.body.innerHTML = 'Hello!'; // Replace html inside
document.body.innerHTML += 'Hello!'; // Add html inside
Open up index.html in your editor and try the follow exercises. Remember to put your JavaScript code inside the script tags.
Comments allow us to add descriptive text to our code and are ignored when the code is run.
// This is a single line comment
/*
This comment spans
more than one line
*/
A value is a single piece of data in your code.
An expression is a piece of code that can be evaluated to a value. Each line in following example is an expression.
var taskName = "Grocery shopping";
5;
"bob" + " " + "hoskins"
4 * 2
Anything you type into the REPL/console which does not result in an error is a valid expression.
Programming languages categorize values into types based on the kind of information being represented.
A string is what programming languages call text. In javascript we surround strings with single or double quotes. There is no difference between single and double quotes.
What can we learn about strings from the examples below?
 A float is a number with decimal places. Both are written without quotes in javascript.
10
5
3.14159
9.99
-50
A boolean is a yes/no value. It is written as either true or false, without any quotes.
true
false
Booleans are useful for executing code only if certain conditions are met.
var taskIsComplete = false;
if (taskIsComplete) {
alert('We are done here!'); // This code does not run
}
Variables are named containers that can hold values.
You create a variable by using the var keyword.
You decide on the name.
var taskName = "Grocery Shopping";
var taskIsComplete = false;
var taskPriority = 1;
You can change a variable's value after creating it by assigning a value using the equals sign. The code below creates a variable called taskName with the value "Grocery Shopping" and then changes the value to "Dog grooming".
var taskName = "Grocery Shopping";
console.log(taskName); // "Grocery shopping"
taskName = "Dog grooming";
console.log(taskName); // "Dog grooming"
Once you have created a variable you can refer to its value in your code by using the variable name.
var age = 21;
var ageInMonths = age * 12;
console.log(ageInMonths); // Prints the result of 21 times 12
Create some variables, use console.log to check the values
Operators are special symbols that we can use to compare, modify or combine values.
| Description | Example | Result | |
|---|---|---|---|
| + | Adds 2 values | 5 + 5 | 10 |
| - | Subtracts one value from another | 5 - 3 | 2 |
| * | Multiply one value by another | 4 * 2 | 8 |
| / | Divide one value by another | 16 / 4 | 4 |
| % | Divide one value by another | 5 % 4 | 1 |
The + operator behaves differently when used with string values than with numbers. It will combine them together into a new string.
var kittensFirstName = 'Bing';
var kittensLastName = 'Crosby';
var kittensFullName = kittensFirstName + ' ' + kittensLastName;
console.log(kittensFullName); // 'Bing Crosby'
The += operator lets you add some text to an existing string.
var kittensName = 'Fluffy';
kittensName += ' McDougle';
console.log(kittensName); // 'Fluffy McDougle'
Functions are reusable pieces of code. Once we define a function we can use it over and over.
Functions often take some input values and return some output value.
For example an add function would take 2 numbers as input and return the sum as output.
var add = function(number1, number2) {
return number1 + number2;
}
To run the code inside a function, call the function using the function name followed by parentheses.
If the function takes any input values, they are placed inside the parentheses and separated by commas.
If the function returns any output value, you can store the value in a variable.
var add = function(number1, number2) {
return number1 + number2;
}
var result = add(5, 10);
console.log(result); // 15
A function can take input values, which are called arguments.
The add function we defined takes 2 arguments:
number1 and number2.
var add = function(number1, number2) {
return number1 + number2; // 5 + 10
}
add(5, 10);
A function can return output using the return keyword.
The code that calls the function can store the return value in a variable or use it directly.
var add = function(number1, number2) {
return number1 + number2;
}
var sum = add(5, 10);
console.log(sum);
console.log(add(2, 3));
What functions can you think of which we've already used?
hint: function calls look like functionName()
What arguments does each function take?
What return value does each function produce if any?
Create a fullName function to combine a first and last name.
Create a renderTask function to show a task name inside the  wrapped in
 tags.
var renderTask = function(taskName) {
var taskHtml = '' + taskName + ' ';
document.body.innerHTML += taskHtml;
}
renderTask('Grocery shopping');
renderTask('Walk the dog');
Create a set of functions which a calculator program could use to do basic math.


⚙
Webpack SPA App
Server-side Web App
Static SPA App
Please login
Login
Welcome back
Logout
Return Home