Sell your unwanted stuff here by posting them here.
This place helps you to get best answer for any question in IIITA.It connects you to everything you want to know about IIITA such as subjects,books...


- getBlue() - Method in class rgb_hsl.color.HSLColor
-
Get the amount of blue in the HSL color.
- getBlue() - Method in class rgb_hsl.color.RGBColor
-
Get the amount of blue in the current RGB color.
- getColor(int) - Method in class rgb_hsl.palette.Palette
-
Get a shallow copy of the Color at the specified index.
- getColors() - Method in class rgb_hsl.palette.Palette
-
Get a shallow copy of all the colors in
the current palette.
- getGreen() - Method in class rgb_hsl.color.HSLColor
-
Get the amount of green in the HSL color.
- getGreen() - Method in class rgb_hsl.color.RGBColor
-
Get the amount of green in the current RGB color.
- getHexCode() - Method in class rgb_hsl.color.HexColor
-
Get the hex color code associated with the current instance.
- getHSLColor(Color) - Static method in class rgb_hsl.color.Color
-
Accessor method used to get the given color in HSL space.
- getHSLColor() - Method in class rgb_hsl.color.RGBColor
-
Get the corresponding color in an HSL color space.
- getHue() - Method in class rgb_hsl.color.HSLColor
-
Get the hue of the current instance.
- getLightness() - Method in class rgb_hsl.color.HSLColor
-
Accessor method used to get the lightness
of the current instance.
- getRed() - Method in class rgb_hsl.color.RGBColor
-
Get the amount of red in the current RGB color.
- getRGBColor(Color) - Static method in class rgb_hsl.color.Color
-
Accessor method used to get the given color in RGB space.
- getRGBColor() - Method in class rgb_hsl.color.HSLColor
-
Get the corresponding color in an RGB color space.
- getSaturation() - Method in class rgb_hsl.color.HSLColor
-
Get the saturation of the current instance.
- getSize() - Method in class rgb_hsl.palette.Palette
-
Get the number of Colors being used in the palette.
- getStartingColor() - Method in class rgb_hsl.palette.Palette
-
Get the starting color of the palette.


Shumi Yang's Portal page for web120
Welcome
Hello!
Welcome come to Shumi Yang’s Portal Website. I was a web designer and project manager in my hometown. When I was a designer, I found that I was interest in looking html’s code. After I finished my master’s degree in City University in Seattle, I thought it was a good challenge to learn subject I was interested in. So, I am here.
In this page, I want to interduce some activities that I am interested in and show the pictures. Road trip is very fresh for me that I really want to show my experience.
| I went Arch National Park a years ago. It was the first time my dad came to the US. We flew to Vegas and started our road trip to Arch National Park. I even don't know how many roads did I drive. We have passed a lot of highway and took many road trips pictures. Road trip is fun, because it is impossible to go road trip in my hometown. |


Print4JS - Demo 7: Print with Handlebar4Code
Demo extends the Handlebars4Code demo with Print4JS. With the Load JSON Button users can upload a JSON Source into the textarea JSON.
JSON as input for Handelbars4Code
was generated with ClassEditorUML.
The JSON file is used together with a template to generate output files with Handlebars4Code.
With the select box you can apply different templates to the source JSON file.
If you want to create your own JSON editor, you can use JSON2Schema.
The library Print4JS is a A tiny javascript library to help printing from the web..
The source code of Print4JS can be downloaded as ZIP-file print4js.zip
<< Demo Applications with Print4JS
Git Sources Print4JS - Download Print4JS ZIP
Version: 1.0.61 Date: 2019/10/09 0:02:16 Author: Rodrigo Vieira


Image Analyze Using Azure Vision
File
Source image:
Image from Azure:
Response:
this caption made automaticaly by Azure Vision


I built this guide because I could never quite wrap my head around Makefiles. They seemed awash with hidden rules and esoteric symbols, and asking simple questions didn’t yield simple answers. To solve this, I sat down for several weekends and read everything I could about Makefiles. I've condensed the most critical knowledge into this guide. Each topic has a brief description and a self contained example that you can run yourself.
If you mostly understand Make, consider checking out the Makefile Cookbook, which has a template for medium sized projects with ample comments about what each part of the Makefile is doing.
Good luck, and I hope you are able to slay the confusing world of Makefiles!
Getting Started
Why do Makefiles exist?
Makefiles are used to help decide which parts of a large program need to be recompiled. In the vast majority of cases, C or C++ files are compiled. Other languages typically have their own tools that serve a similar purpose as Make. It can be used beyond programs too, when you need a series of instructions to run depending on what files have changed. This tutorial will focus on the C/C++ compilation use case.
Here's an example dependency graph that you might build with Make. If any file's dependencies changes, then the file will get recompiled:
What alternatives are there to Make?
Popular C/C++ alternative build systems are SCons, CMake, Bazel, and Ninja. Some code editors like Microsoft Visual Studio have their own built in build tools. For Java, there's Ant, Maven, and Gradle. Other languages like Go and Rust have their own build tools.
Interpreted languages like Python, Ruby, and Javascript don't require an analogue to Makefiles. The goal of Makefiles is to compile whatever files need to be compiled, based on what files have changed. But when files in interpreted languages change, nothing needs to get recompiled. When the program runs, the most recent version of the file is used.
Running the Examples
To run these examples, you'll need a terminal and "make" installed. For each example, put the contents in a file called Makefile
, and in that directory run the command make
. Let's start with the simplest of Makefiles:
hello:
echo "hello world"
Here is the output of running the above example:
$ make
echo "hello world"
hello world
That's it! If you're a bit confused, here's a video that goes through these steps, along with describing the basic structure of Makefiles.
Makefile Syntax
A Makefile consists of a set of rules. A rule generally looks like this:
targets: prerequisites
command
command
command
- The targets are file names, seperated by spaces. Typically, there is only one per rule.
- The commands are a series of steps typically used to make the target(s). These need to start with a tab character, not spaces.
- The prerequisites are also file names, seperated by spaces. These files need to exist before the commands for the target are run. These are also called dependencies
Beginner Examples
The following Makefile has three seperate rules. When you run make blah
in the terminal, it will build a program called blah
in a series of steps:
- Make is given
blah
as the target, so it first searches for this target blah
requiresblah.o
, so make searches for theblah.o
targetblah.o
requiresblah.c
, so make searches for theblah.c
targetblah.c
has no dependencies, so theecho
command is run- The
cc -c
command is then run, because all of theblah.o
dependencies are finished - The top
cc
command is run, because all theblah
dependencies are finished - That's it:
blah
is a compiled c program
blah: blah.o
cc blah.o -o blah # Runs third
blah.o: blah.c
cc -c blah.c -o blah.o # Runs second
blah.c:
echo "int main() { return 0; }" > blah.c # Runs first
This makefile has a single target, called some_file
. The default target is the first target, so in this case some_file
will run.
some_file:
echo "This line will always print"
This file will make some_file
the first time, and the second time notice it's already made, resulting in make: 'some_file' is up to date.
some_file:
echo "This line will only print once"
touch some_file
Here, the target some_file
"depends" on other_file
. When we run make
, the default target (some_file
, since it's first) will get called. It will first look at its list of dependencies, and if any of them are older, it will first run the targets for those dependencies, and then run itself. The second time this is run, neither target will run because both targets exist.
some_file: other_file
echo "This will run second, because it depends on other_file"
touch some_file
other_file:
echo "This will run first"
touch other_file
This will always run both targets, because some_file
depends on other_file, which is never created.
some_file: other_file
touch some_file
other_file:
echo "nothing"
clean
is often used as a target that removes the output of other targets, but it is not a special work in make
.
some_file:
touch some_file
clean:
rm -f some_file
Variables
Variables can only be strings. Here's an example of using them:
files = file1 file2
some_file: $(files)
echo "Look at this variable: " $(files)
touch some_file
file1:
touch file1
file2:
touch file2
clean:
rm -f file1 file2 some_file
Call variables using ${} or $()
x = dude
all:
echo $(x)
echo ${x}
# Bad practice, but works
echo $x
Targets
The all target
Making multiple targets and you want all of them to run? Make a all
target.
all: one two three
one:
touch one
two:
touch two
three:
touch three
clean:
rm -f one two three
Multiple targets
When there are multiple targets for a rule, the commands will be run for each target$@
is an automatic variable that contains the target name.
all: f1.o f2.o
f1.o f2.o:
echo $@
# Equivalent to:
# f1.o
# echo $@
# f2.o
# echo $@
Automatic Variables and Wildcards
* Wildcard
Both *
and %
are called wildcards in Make, but they mean entirely different things. *
search your filesystem for matching filenames. I suggest that you always wrap it in the wildcard
function, because otherwise you may fall into a common pitfall described below. It's oddly unhelpful and I find it more confusing than useful.
# Print out file information about every .c file
print: $(wildcard *.c)
ls -la $?
*
may be used in the target, prerequisites, or in the wildcard
function.
Danger: *
may not be directly used in a variable definitions
Danger: When *
matches no files, it is left as it is (unless run in the wildcard
function)
thing_wrong := *.o # Don't do this! '*' will not get expanded
thing_right := $(wildcard *.o)
all: one two three four
# Fails, because $(thing_wrong) is the string "*.o"
one: $(thing_wrong)
# Stays as *.o if there are no files that match this pattern :(
two: *.o
# Works as you would expect! In this case, it does nothing.
three: $(thing_right)
# Same as rule three
four: $(wildcard *.o)
% Wildcard
%
is really useful, but is somewhat confusing because of the variety of situations it can be used in.
- When used in "matching" mode, it matches one or more characters in a string. This match is called the stem.
- When used in "replacing" mode, it takes the stem that was matched and replaces that in a string.
%
is most often used in rule definitions and in some specific functions.
See these sections on examples of it being used:
Automatic Variables
There are many automatic variables, but often only a few show up:
hey: one two
# Outputs "hey", since this is the first target
echo $@
# Outputs all prerequisites older than the target
echo $?
# Outputs all prerequisites
echo $^
touch hey
one:
touch one
two:
touch two
clean:
rm -f hey one two
Fancy Rules
Static Pattern Rules
Make loves c compilation. And every time it expresses its love, things get confusing. Here's the syntax for a new type of rule called a static pattern:
targets ...: target-pattern: prereq-patterns ...
commands
The essence is that the given target is matched by the target-pattern (via a %
wildcard). Whatever was matched is called the stem. The stem is then substituted into the prereq-pattern, to generate the target's prereqs.
A typical use case is to compile .c
files into .o
files. Here's the manual way:
objects = foo.o bar.o all.o
all: $(objects)
# These files compile via implicit rules
foo.o: foo.c
bar.o: bar.c
all.o: all.c
all.c:
echo "int main() { return 0; }" > all.c
%.c:
touch $@
clean:
rm -f *.c *.o all
Here's the more efficient way, using a static pattern rule:
objects = foo.o bar.o all.o
all: $(objects)
# These files compile via implicit rules
# Syntax - targets ...: target-pattern: prereq-patterns ...
# In the case of the first target, foo.o, the target-pattern matches foo.o and sets the "stem" to be "foo".
# It then replaces the '%' in prereq-patterns with that stem
$(objects): %.o: %.c
all.c:
echo "int main() { return 0; }" > all.c
%.c:
touch $@
clean:
rm -f *.c *.o all
Static Pattern Rules and Filter
While I introduce functions later on, I'll forshadow what you can do with them. The filter
function can be used in Static pattern rules to match the correct files. In this example, I made up the .raw
and .result
extensions.
obj_files = foo.result bar.o lose.o
src_files = foo.raw bar.c lose.c
all: $(obj_files)
$(filter %.o,$(obj_files)): %.o: %.c
echo "target: $@ prereq: $<"
$(filter %.result,$(obj_files)): %.result: %.raw
echo "target: $@ prereq: $<"
%.c %.raw:
touch $@
clean:
rm -f $(src_files)
Implicit Rules
Perhaps the most confusing part of make is the magic rules and variables that are made. Here's a list of implicit rules:
- Compiling a C program:
n.o
is made automatically fromn.c
with a command of the form$(CC) -c $(CPPFLAGS) $(CFLAGS)
- Compiling a C++ program:
n.o
is made automatically fromn.cc
orn.cpp
with a command of the form$(CXX) -c $(CPPFLAGS) $(CXXFLAGS)
- Linking a single object file:
n
is made automatically fromn.o
by running the command$(CC) $(LDFLAGS) n.o $(LOADLIBES) $(LDLIBS)
As such, the important variables used by implicit rules are:
CC
: Program for compiling C programs; default ccCXX
: Program for compiling C++ programs; default G++CFLAGS
: Extra flags to give to the C compilerCXXFLAGS
: Extra flags to give to the C++ compilerCPPFLAGS
: Extra flags to give to the C preprosessorLDFLAGS
: Extra flags to give to compilers when they are supposed to invoke the linker
CC = gcc # Flag for implicit rules
CFLAGS = -g # Flag for implicit rules. Turn on debug info
# Implicit rule #1: blah is built via the C linker implicit rule
# Implicit rule #2: blah.o is built via the C++ compilation implicit rule, because blah.cpp exists
blah: blah.o
blah.c:
echo "int main() { return 0; }" > blah.c
clean:
rm -f blah*
Pattern Rules
Pattern rules are often used but quite confusing. You can look at them as two ways:
- A way to define your own implicit rules
- A simpler form of static pattern rules
Let's start with an example first:
# Define a pattern rule that compiles every .c file into a .o file
%.o : %.c
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
Pattern rules contain a '%' in the target. This '%' matches any nonempty string, and the other characters match themselves. ‘%’ in a prerequisite of a pattern rule stands for the same stem that was matched by the ‘%’ in the target.
Here's another example:
# Define a pattern rule that has no pattern in the prerequisites.
# This just creates empty .c files when needed.
%.c:
touch $@
Double-Colon Rules
Double-Colon Rules are rarely used, but allow multiple rules to be defined for the same target. If these were single colons, a warning would be printed and only the second set of commands would run.
all: blah
blah::
echo "hello"
blah::
echo "hello again"
clean:
rm -f $(src_files)
Commands and execution
Command Echoing/Silencing
Add an @
before a command to stop it from being printed
You can also run make with -s
to add an @
before each line
all:
@echo "This make line will not be printed"
echo "But this will"
Command Execution
Each command is run in a new shell (or at least the affect is as such)
all:
cd ..
# The cd above does not affect this line, because each command is effectively run in a new shell
echo `pwd`
# This cd command affects the next because they are on the same line
cd ..;echo `pwd`
# Same as above
cd ..; \
echo `pwd`
Default Shell
The default shell is /bin/sh
. You can change this by changing the variable SHELL:
SHELL=/bin/bash
cool:
echo "Hello from bash"
Error handling with -k
, -i
, and -
Add -k
when running make to continue running even in the face of errors. Helpful if you want to see all the errors of Make at once.
Add a -
before a command to suppress the error
Add -i
to make to have this happen for every command.
one:
# This error will be printed but ignored, and make will continue to run
-false
touch one
Interrupting or killing make
Note only: If you ctrl+c
make, it will delete the newer targets it just made.
Recursive use of make
To recursively call a makefile, use the special $(MAKE)
instead of make
because it will pass the make flags for you and won't itself be affected by them.
new_contents = "hello:\n\ttouch inside_file"
all:
mkdir -p subdir
echo $(new_contents) | sed -e 's/^ //' > subdir/makefile
cd subdir && $(MAKE)
clean:
rm -rf subdir
Use export for recursive make
The export directive takes a variable and makes it accessible to sub-make commands. In this example, cooly
is exported such that the makefile in subdir can use it.
Note: export has the same syntax as sh, but they aren't related (although similar in function)
new_contents = "hello:\n\\techo \$$(cooly)"
all:
mkdir -p subdir
echo $(new_contents) | sed -e 's/^ //' > subdir/makefile
@echo "---MAKEFILE CONTENTS---"
@cd subdir && cat makefile
@echo "---END MAKEFILE CONTENTS---"
cd subdir && $(MAKE)
# Note that variables and exports. They are set/affected globally.
cooly = "The subdirectory can see me!"
export cooly
# This would nullify the line above: unexport cooly
clean:
rm -rf subdir
You need to export variables to have them run in the shell as well.
one=this will only work locally
export two=we can run subcommands with this
all:
@echo $(one)
@echo $$one
@echo $(two)
@echo $$two
.EXPORT_ALL_VARIABLES
exports all variables for you.
.EXPORT_ALL_VARIABLES:
new_contents = "hello:\n\techo \$$(cooly)"
cooly = "The subdirectory can see me!"
# This would nullify the line above: unexport cooly
all:
mkdir -p subdir
echo $(new_contents) | sed -e 's/^ //' > subdir/makefile
@echo "---MAKEFILE CONTENTS---"
@cd subdir && cat makefile
@echo "---END MAKEFILE CONTENTS---"
cd subdir && $(MAKE)
clean:
rm -rf subdir
Arguments to make
There's a nice list of options that can be run from make. Check out --dry-run
, --touch
, --old-file
.
You can have multiple targets to make, i.e. make clean run test
runs the clean
goal, then run
, and then test
.
Variables Pt. 2
Flavors and modification
There are two flavors of variables:
- recursive (use
=
) - only looks for the variables when the command is used, not when it's defined. - simply expanded (use
:=
) - like normal imperative programming -- only those defined so far get expanded
# Recursive variable. This will print "later" below
one = one ${later_variable}
# Simply expanded variable. This will not print "later" below
two := two ${later_variable}
later_variable = later
all:
echo $(one)
echo $(two)
Simply expanded (using :=
) allows you to append to a variable. Recursive definitions will give an infinite loop error.
one = hello
# one gets defined as a simply expanded variable (:=) and thus can handle appending
one := ${one} there
all:
echo $(one)
?=
only sets variables if they have not yet been set
one = hello
one ?= will not be set
two ?= will be set
all:
echo $(one)
echo $(two)
Spaces at the end of a line are not stripped, but those at the start are. To make a variable with a single space, use $(nullstring)
with_spaces = hello # with_spaces has many spaces after "hello"
after = $(with_spaces)there
nullstring =
space = $(nullstring) # Make a variable with a single space.
all:
echo "$(after)"
echo start"$(space)"end
An undefined variable is actually an empty string!
all:
# Undefined variables are just empty strings!
echo $(nowhere)
Use +=
to append
foo := start
foo += more
all:
echo $(foo)
String Substitution is also a really common and useful way to modify variables. Also check out Text Functions and Filename Functions.
Command line arguments and override
You can override variables that come from the command line by using override
.
Here we ran make with make option_one=hi
# Overrides command line arguments
override option_one = did_override
# Does not override command line arguments
option_two = not_override
all:
echo $(option_one)
echo $(option_two)
List of commands and define
"define" is actually just a list of commands.  Note here that it's a bit different than having a semi-colon between commands, because each is run in a seperate shell, as expected.
one = export blah="I was set!"; echo $$blah
define two
export blah=set
echo $$blah
endef
# One and two are different.
all:
@echo "This prints 'I was set'"
@$(one)
@echo "This does not print 'I was set' because each command runs in a seperate shell"
@$(two)
Target-specific variables
Variables can be assigned for specific targets
all: one = cool
all:
echo one is defined: $(one)
other:
echo one is nothing: $(one)
Pattern-specific variables
You can assign variables for specific target patterns
%.c: one = cool
blah.c:
echo one is defined: $(one)
other:
echo one is nothing: $(one)
Conditional part of Makefiles
Conditional if/else
foo = ok
all:
ifeq ($(foo), ok)
echo "foo equals ok"
else
echo "nope"
endif
Check if a variable is empty
nullstring =
foo = $(nullstring) # end of line; there is a space here
all:
ifeq ($(strip $(foo)),)
echo "foo is empty after being stripped"
endif
ifeq ($(nullstring),)
echo "nullstring doesn't even have spaces"
endif
Check if a variable is defined
ifdef does not expand variable references; it just sees if something is defined at all
bar =
foo = $(bar)
all:
ifdef foo
echo "foo is defined"
endif
ifdef bar
echo "but bar is not"
endif
$(makeflags)
This example shows you how to test make flags with findstring
and MAKEFLAGS
. Run this example with make -i
to see it print out the echo statement.
bar =
foo = $(bar)
all:
# Search for the "-i" flag. MAKEFLAGS is just a list of single characters, one per flag. So look for "i" in this case.
ifneq (,$(findstring i, $(MAKEFLAGS)))
echo "i was passed to MAKEFLAGS"
endif
Functions
First Functions
Functions are mainly just for text processing. Call functions with $(fn, arguments)
or ${fn, arguments}
. You can make your own using the call builtin function. Make has a decent amount of builtin functions.
bar := ${subst not, totally, "I am not superman"}
all:
@echo $(bar)
If you want to replace spaces or commas, use variables
comma := ,
empty:=
space := $(empty) $(empty)
foo := a b c
bar := $(subst $(space),$(comma),$(foo))
all:
@echo $(bar)
Do NOT include spaces in the arguments after the first. That will be seen as part of the string.
comma := ,
empty:=
space := $(empty) $(empty)
foo := a b c
bar := $(subst $(space), $(comma) , $(foo))
all:
# Output is ", a , b , c". Notice the spaces introduced
@echo $(bar)
String Substitution
$(patsubst pattern,replacement,text)
does the following:
"Finds whitespace-separated words in text that match pattern and replaces them with replacement. Here pattern may contain a ‘%’ which acts as a wildcard, matching any number of any characters within a word. If replacement also contains a ‘%’, the ‘%’ is replaced by the text that matched the ‘%’ in pattern. Only the first ‘%’ in the pattern and replacement is treated this way; any subsequent ‘%’ is unchanged." (GNU docs)
The substitution reference $(text:pattern=replacement)
is a shorthand for this.
There's another shorthand that that replaces only suffixes: $(text:suffix=replacement)
. No %
wildcard is used here.
Note: don't add extra spaces for this shorthand. It will be seen as a search or replacement term.
foo := a.o b.o l.a c.o
one := $(patsubst %.o,%.c,$(foo))
# This is a shorthand for the above
two := $(foo:%.o=%.c)
# This is the suffix-only shorthand, and is also equivalent to the above.
three := $(foo:.o=.c)
all:
echo $(one)
echo $(two)
echo $(three)
The foreach function
The foreach function looks like this: $(foreach var,list,text)
. It converts one list of words (seperated by speces) to another. var
is set to each word in list, and text
is expanded for each word.
This appends an exclamation after each word:
foo := who are you
# For each "word" in foo, output that same word with an exclamation after
bar := $(foreach wrd,$(foo),$(wrd)!)
all:
# Output is "who! are! you!"
@echo $(bar)
The if function
if
checks if the first argument is nonempty. If so runs the second argument, otherwise runs the third.
foo := $(if this-is-not-empty,then!,else!)
empty :=
bar := $(if $(empty),then!,else!)
all:
@echo $(foo)
@echo $(bar)
The call function
Call
: $(call variable,param,param)
Sets each of the params as $(1), $(2), etc.
$(0) is set as the variable name
sweet_new_fn = Variable Name: $(0) First: $(1) Second: $(2) Empty Variable: $(3)
all:
# Outputs "Variable Name: sweet_new_fn First: go Second: tigers Empty Variable:"
@echo $(call sweet_new_fn, go, tigers)
The shell function
shell - This calls the shell, but it replaces newlines with spaces!
all:
@echo $(shell ls -la) # Very ugly because the newlines are gone!
Other Features
Include Makefiles
The include directive tells make to read one or more other makefiles. It's a line in the makefile makefile that looks like this:
include filenames...
This is particularly useful when you use compiler flags like -M
that create Makefiles based on the source. For example, if some c files includes a header, that header will be added to a Makefile that's written by gcc. I talk about this more in the Makefile Cookbook
The vpath Directive
Use vpath to specify where some set of prerequisites exist. The format is vpath <pattern> <directories, space/colon seperated>
<pattern>
can have a %
, which matches any zero or more characters.
You can also do this globallyish with the variable VPATH
vpath %.h ../headers ../other-directory
some_binary: ../headers blah.h
touch some_binary
../headers:
mkdir ../headers
blah.h:
touch ../headers/blah.h
clean:
rm -rf ../headers
rm -f some_binary
## Multiline
The backslash ("\\") character gives us the ability to use multiple lines when the commands are too long
some_file:
echo This line is too long, so \
it is broken up into multiple lines
.phony
Adding .PHONY
to a target will prevent make from confusing the phony target with a file name. In this example, if the file clean
is created, make clean will still be run. .PHONY
is great to use, but I'll skip it in the rest of the examples for simplicity.
some_file:
touch some_file
touch clean
.PHONY: clean
clean:
rm -f some_file
rm -f clean
.delete_on_error
The make tool will stop running a rule (and will propogate back to prerequisites) if a command returns a nonzero exit status.DELETE_ON_ERROR
will delete the target of a rule if the rule fails in this manner. This will happen for all targets, not just the one it is before like PHONY. It's a good idea to always use this, even though make does not for historical reasons.
.DELETE_ON_ERROR:
all: one two
one:
touch one
false
two:
touch two
false
Makefile Cookbook
Let's go through a really juicy Make example that works well for medium sized projects.
The neat thing about this makefile is it automatically determines dependencies for you. All you have to do is put your C/C++ files in the src/
folder.
# Thanks to Job Vranish (https://spin.atomicobject.com/2016/08/26/makefile-c-projects/)
TARGET_EXEC := final_program
BUILD_DIR := ./build
SRC_DIRS := ./src
# Find all the C and C++ files we want to compile
SRCS := $(shell find $(SRC_DIRS) -name *.cpp -or -name *.c)
# String substitution for every C/C++ file.
# As an example, hello.cpp turns into ./build/hello.cpp.o
OBJS := $(SRCS:%=$(BUILD_DIR)/%.o)
# String substitution (suffix version without %).
# As an example, ./build/hello.cpp.o turns into ./build/hello.cpp.d
DEPS := $(OBJS:.o=.d)
# Every folder in ./src will need to be passed to GCC so that it can find header files
INC_DIRS := $(shell find $(SRC_DIRS) -type d)
# Add a prefix to INC_DIRS. So moduleA would become -ImoduleA. GCC understands this -I flag
INC_FLAGS := $(addprefix -I,$(INC_DIRS))
# The -MMD and -MP flags together generate Makefiles for us!
# These files will have .d instead of .o as the output.
CPPFLAGS := $(INC_FLAGS) -MMD -MP
# The final build step.
$(BUILD_DIR)/$(TARGET_EXEC): $(OBJS)
$(CC) $(OBJS) -o $@ $(LDFLAGS)
# Build step for C source
$(BUILD_DIR)/%.c.o: %.c
mkdir -p $(dir $@)
$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
# Build step for C++ source
$(BUILD_DIR)/%.cpp.o: %.cpp
mkdir -p $(dir $@)
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@
.PHONY: clean
clean:
rm -r $(BUILD_DIR)
# Include the .d makefiles. The - at the front suppresses the errors of missing
# Makefiles. Initially, all the .d files will be missing, and we don't want those
# errors to show up.
-include $(DEPS)


Adventures of an academician in the Perl 6 developers world
Those who know, do
What do we do?
Teaching
Research
Management
Outreach...
Can Perl 5 and Perl 6 help with that?
Can we help Perl 5 and Perl 6 doing that?
Let me tell you the ways
Teach cloud computing
Microservice with Cro
use Cro::HTTP::Server;
use Cro::HTTP::Router;
my %changes;
my $application = route {
put -> {
request-body -> %json-object {
%changes{%json-object<sha1>} = { file => %json-object<file-name>,
adds => %json-object<adds>,
deletes => %json-object<deletes> };
say "Nuevo recurso → ", %changes{%json-object<sha1>}.perl;
created %json-object<sha1>, 'application/json', { status => "OK" }; #Responde con un OK
}
}
}
Set up and start the service
my Cro::Service $service = Cro::HTTP::Server.new(
:host('localhost'), :port(2314), :$application
);
# Run it
$service.start;
# Cleanly shut down on Ctrl-C
react whenever signal(SIGINT) {
$service.stop;
exit;
}
Perl 6 Dockerfiles
FROM alpine:latest
MAINTAINER JJ Merelo<EMAIL_ADDRESS>WORKDIR /root
ENTRYPOINT ["perl6"]
RUN apk update
RUN apk upgrade
RUN apk add gcc git linux-headers make musl-dev perl
RUN git clone https://github.com/tadzik/rakudobrew ~/.rakudobrew
RUN echo 'export PATH=~/.rakudobrew/bin:$PATH' >> /etc/profile
RUN echo 'eval "$(/root/.rakudobrew/bin/rakudobrew init -)"' >> /etc/profile
ENV PATH="/root/.rakudobrew/bin:${PATH}"
Build stuff
RUN rakudobrew init
#Build moar
RUN rakudobrew build moar
#Build other utilities
RUN rakudobrew build panda
RUN panda install Linenoise
#Mount point
RUN mkdir /app
VOLUME /app
Any question?
Ask not what academia can do for you
But what you can do for academia
Universities are all over the place
They host user groups, communities
They are social learning communities
(a sizable amount of)
(future) employees, employers, coworkers are there
Keys to Perl's success
Sysadmin
CGI
language(s)
BioPerl
Most of them have the core in higher education centers.
And research centers
What's Perl 6 for?
Benchmarking languages for evolutionary algorithms
It [got better](https://github.com/rakudo/rakudo/issues/1676)
So we'll have to go concurrent
my $pairs = start react whenever $mixer -> @pair {
$to-mix.send( @pair.pick ); # To avoid getting it hanged up
$channel-one.send(mix( @pair[0], @pair[1], $population-size ));
say "Mixing in ", $*THREAD.id;
};


---
sort_order: 114
tei_id: p.idp42430960
annotation_count: 0
images:
small-thumbnail: images/emory:p7780/full/,100/0/default.png
json: images/emory:p7780/info.json
full: images/emory:p7780/full/full/0/default.jpg
page: images/emory:p7780/full/,1000/0/default.jpg
thumbnail: images/emory:p7780/full/,300/0/default.png
title: Page 110
number: 110
permalink: "/pages/110/"
---
{% raw %}110 MRS. H. BEECHER STOWE's " UNCLE TOM."{% endraw %}
{% raw %}were disposed to make the attempt. At length, on a{% endraw %}
{% raw %}Saturday night, we started. The agony of parting{% endraw %}
{% raw %}can be better conceived than described ; as, in their{% endraw %}
{% raw %}oase, husbands were leaving their wives, mothers{% endraw %}
{% raw %}their children, and children their parents. This, at{% endraw %}
{% raw %}first sight, will appear strange, and even incredible ;{% endraw %}
{% raw %}but, when we take into consideration the fact, that{% endraw %}
{% raw %}at any time they were liable to be separated, by{% endraw %}
{% raw %}being sold to what are termed "nigger traders,"{% endraw %}
{% raw %}and the probability that such an event would take{% endraw %}
{% raw %}place, it will, I think, cease to excite any surprise.{% endraw %}
{% raw %}We succeeded in crossing the Ohio River in safety,{% endraw %}
{% raw %}and arrived in Cincinnati the third night after our{% endraw %}
{% raw %}departure. Here we procured assistance; and, after{% endraw %}
{% raw %}stopping a short time to rest, we started for Rich¬{% endraw %}
{% raw %}mond, Indiana. This is a town which had been{% endraw %}
{% raw %}settled by Quakers, and there we found friends in¬{% endraw %}
{% raw %}deed, who at once helped us on our way, without{% endraw %}
{% raw %}loss of time ; and after a difficult journey of two{% endraw %}
{% raw %}weeks, through the wilderness, we reached Toledo,{% endraw %}
{% raw %}Ohio, a town on the south-western shore of Lake{% endraw %}
{% raw %}Erie, and there we took passage for Canada, which{% endraw %}
{% raw %}we reached in safety. I then went home to my{% endraw %}
{% raw %}family, taking with me a part of this large party,{% endraw %}
{% raw %}the rest finding their friends scattered in other{% endraw %}
{% raw %}towns, perfectly satisfied with my conduct in the{% endraw %}
{% raw %}matter, in being permitted to be the instrument of{% endraw %}
{% raw %}freeing such a number of my fellow-creatures.{% endraw %}


JACK_BUFSIZE(1) JACK_BUFSIZE(1) NAME jack_bufsize - JACK toolkit client to change the JACK buffer size SYNOPSIS jack_bufsize bufsize DESCRIPTION jack_bufsize jack_bufsize sets the size of the buffer (frames per period) used in JACK. This change happens on-line (the JACK server and its clients do not need to be restarted). When invoked without arguments, it prints the current bufsize, and exits. 1.9.9 November 2012 JACK_BUFSIZE(1)


|
CmdMessenger
4.0.0
CmdMessenger is a serial port messaging library for the .Net / Mono Platform.
|
Public Member Functions | |
| virtual void | StartConnectionManager () |
| Start connection manager. | |
| virtual void | StopConnectionManager () |
| Stop connection manager. | |
| void | Dispose () |
Protected Member Functions | |
| ConnectionManager (CmdMessenger cmdMessenger, int identifyCommandId=0, string uniqueDeviceId=null) | |
| virtual void | ConnectionFoundEvent () |
| virtual void | ConnectionTimeoutEvent () |
| virtual void | Log (int level, string logMessage) |
| virtual void | OnIdentifyResponse (ReceivedCommand responseCommand) |
| DeviceStatus | ArduinoAvailable (int timeOut) |
| Check if Arduino is available. | |
| DeviceStatus | ArduinoAvailable (int timeOut, int tries) |
| Check if Arduino is available. | |
| virtual bool | ValidateDeviceUniqueId (ReceivedCommand responseCommand) |
| abstract void | DoWorkConnect () |
| abstract void | DoWorkScan () |
| virtual void | DoWorkWatchdog () |
| virtual void | StartWatchDog () |
| Start watchdog. Will check if connection gets interrupted. | |
| virtual void | StopWatchDog () |
| Stop watchdog. | |
| virtual void | StartScan () |
| Start scanning for devices. | |
| virtual void | StopScan () |
| Stop scanning for devices. | |
| virtual void | StartConnect () |
| Start connect to device. | |
| virtual void | StopConnect () |
| Stop connect to device. | |
| virtual void | StoreSettings () |
| virtual void | ReadSettings () |
| virtual void | Dispose (bool disposing) |
Protected Attributes | |
| Mode | ConnectionManagerMode = Mode.Wait |
Properties | |
| bool | Connected [get, set] |
| Is connection manager currently connected to device. | |
| int | WatchdogTimeout [get, set] |
| int | WatchdogRetryTimeout [get, set] |
| uint | WatchdogTries [get, set] |
| bool | WatchdogEnabled [get, set] |
| Enables or disables connection watchdog functionality using identify command and unique device id. | |
| bool | DeviceScanEnabled [get, set] |
| Enables or disables device scanning. When disabled, connection manager will try to open connection to the device configured in the setting. | |
| bool | PersistentSettings [get, set] |
| Enables or disables storing of last connection configuration in persistent file. | |
Events | |
| EventHandler< EventArgs > | ConnectionTimeout |
| EventHandler< EventArgs > | ConnectionFound |
|
EventHandler < ConnectionManagerProgressEventArgs > | Progress |
| DeviceStatus CommandMessenger.ConnectionManager.ArduinoAvailable | ( | int | timeOut | ) | [protected] |
Check if Arduino is available.
| timeOut | Timout for waiting on response |
| DeviceStatus CommandMessenger.ConnectionManager.ArduinoAvailable | ( | int | timeOut, |
| int | tries | ||
| ) | [protected] |
Check if Arduino is available.
| timeOut | Timout for waiting on response |
| tries | Number of tries |
| virtual void CommandMessenger.ConnectionManager.StartConnect | ( | ) | [protected, virtual] |
Start connect to device.
| virtual void CommandMessenger.ConnectionManager.StartConnectionManager | ( | ) | [virtual] |
Start connection manager.
| virtual void CommandMessenger.ConnectionManager.StartScan | ( | ) | [protected, virtual] |
Start scanning for devices.
Reimplemented in CommandMessenger.Transport.Bluetooth.BluetoothConnectionManager, and CommandMessenger.Transport.Serial.SerialConnectionManager.
| virtual void CommandMessenger.ConnectionManager.StartWatchDog | ( | ) | [protected, virtual] |
Start watchdog. Will check if connection gets interrupted.
| virtual void CommandMessenger.ConnectionManager.StopConnect | ( | ) | [protected, virtual] |
Stop connect to device.
| virtual void CommandMessenger.ConnectionManager.StopConnectionManager | ( | ) | [virtual] |
Stop connection manager.
| virtual void CommandMessenger.ConnectionManager.StopScan | ( | ) | [protected, virtual] |
Stop scanning for devices.
| virtual void CommandMessenger.ConnectionManager.StopWatchDog | ( | ) | [protected, virtual] |
Stop watchdog.
bool CommandMessenger.ConnectionManager.Connected [get, set] |
Is connection manager currently connected to device.
bool CommandMessenger.ConnectionManager.DeviceScanEnabled [get, set] |
Enables or disables device scanning. When disabled, connection manager will try to open connection to the device configured in the setting.
bool CommandMessenger.ConnectionManager.PersistentSettings [get, set] |
Enables or disables storing of last connection configuration in persistent file.
bool CommandMessenger.ConnectionManager.WatchdogEnabled [get, set] |
Enables or disables connection watchdog functionality using identify command and unique device id.


Where I give a greeting to the world at large.
I'm the post itself. Nice, huh?
I can reference images, and what nots, from this directory without needing to generate a path.
{{ articles.about.title }} -> {{ articles.about.content_path }}
:{{ articles.size }}
{% for post in articles._collection %}
{{ post.title }}
{% endfor %}


M. Night Shyamalan's Servant Renewed for Second Season Ahead of Premiere
by Math EraoWith its premiere a week away, M. Night Shyamalan has revealed his Apple TV+ series Servant has been renewed for a second season.
As reported by TV Guide, Shyamalan broke the news on The Tonight Show with Jimmy Fallon. The move proves Apple has great faith in the series, which comes with Shyamalan's prestigious pedigree. The debut season will arrive on the streaming service on November 28, and writing has already begun for Season 2.
During a press junket, Shyamalan told TV Guide that work has started on the new season of the series. "We're writing away on the second season. Some really crazy stuff is happening," Shyamalan revealed. "We all talk about, what's the movement of the story? ... What will we learn by the end of the second episode? What is its final moment? In my mind we talk a lot about, what's the final moment of this series and how are we aiming to that?"
Click the button below to start this article in quick view.
Servant follows Dorothy (Lauren Ambrose) and Sean Turner (Toby Kebbell) as they hire a nanny for their newborn. But because this is Shyamalan, it's no ordinary child. In fact, it's not a child at all. With their real child deceased, Dorothy takes in a life-like doll to help her deal with the trauma. What could go wrong?
Servant debuts November 28 on Apple TV+.
https://schema.orgBreadcrumbListListItem1Homehttps://www.cbr.com/ListItem2TVhttps://www.cbr.com/category/tv/ListItem3TV Newshttps://www.cbr.com/category/tv/news-tv/ListItem4M. Night Shyamalan's Servant Renewed for Second Season Ahead of Premierehttps://www.cbr.com/m-night-shyamalan-servant-season-two-apple-tv/


California
Blink 182
Release Date
Band Members and Producers
Mark Hoppus-Lead vocals/bass
Matt Skiba-Backup vocals/guitarist
Travis Barker-Drums
John Feldmann-Producer
Tracks
Track #
Track Title
Track Length
1
Cynical
1:56
2
Bored to Death
3:56
3
She's Out of Her Mind
2:43
4
Los Angeles
3:03
5
Sober
3:00
6
Built This Pool
0:17
7
No Future
3:46
8
Home is Such a Lonely Place
3:21


Dept of IT, TINT
Home
(current)
Faculty
Achievements
Announcement
Gallery
Teacher's Day Event
Contact Us
Chat Room For Group {{group_name}}
Students of Information Technology
Hey there! Say Hi to start the conversation.
Send


{{template "header.tmpl.html"}}
{{ template "settings.tmpl.html" }}
Setup
My Domains
{{if not .domains}}
You don't have any Decks set up!
{{else}} {{range .domains }}
{{ .Name }} ({{ .TaskCount }} tasks)
Delete
{{end}} {{end}}
General


DONNIE BRASCO A film review by Scott Renshaw Copyright 1997 Scott Renshaw
(Tri-Star) Starring: Al Pacino, Johnny Depp, Michael Madsen, Bruno Kirby, Anne Heche. Screenplay: Paul Attanasio, based on the book by Joseph D. Pistone. Producers: Mark Johnson, Barry Levinson, Louis DiGiaimo, Gail Matrux. Director: Mike Newell.  Reviewed by Scott Renshaw.
At first glance, Lefty Ruggiero (Al Pacino) seems like a dozen movie mobsters you have seen before, like a dozen movie mobsters Pacino has played before. He struts, he poses and he boasts in his first meeting with jeweler Donnie Brasco (Johnny Depp); when Donnie appears ready to end that meeting, Lefty announces "You don't walk away from Lefty...Lefty walks away from you." Don't judge Lefty, or DONNIE BRASCO, by that first impression, though Lefty himself might have preferred it. The fact is that Lefty is a loser: a thirty year mob veteran still working as a minor lieutenant in Brooklyn, a compulsive gambler in debt to his own people, a father with an addict for a son. In his own mind, however, Lefty is a winner because he is a wiseguy. When Lefty takes Donnie under his wing as a protege, he revels in describing the details of how a wiseguy talks, how he dresses, how he carries his money and himself. He fetishizes those details, because his only sense of self-respect comes from being part of that world, and he instantly takes to Donnie because Donnie seems to be the only person who gives him any respect.
Unfortunately for Lefty, he has picked the wrong protege. Donnie Brasco is actually FBI agent Joseph Pistone, working deep undercover to gather evidence against the mob. DONNIE BRASCO is based on a memoir by the real-life Pistone, who spent six years collecting information which would lead to hundreds of arrests and convictions. He also spent those years largely separated from his family and becoming ever more wrapped up in the world he was supposed to be helping to bring down, and DONNIE BRASCO spends a fair amount of time on how his work affected his personal life. We see his wife Maggie (Anne Heche) coping with raising their three daughters alone, and arguments over how much Joseph/Donnie's personality has changed. As the time nears to draw the net around Donnie's crew, his superiors in the FBI begin to worry that he has begun to think of his mob life as his real life.
As it turns out, the domestic drama in DONNIE BRASCO is actually the least interesting aspect of the film. Anne Heche is stuck with the thankless "long-suffering wife" role, with predictable lines in predictable scenes; it's hard to imagine anyone giving an interesting spin to a line like "You're becoming like them." Depp's performance is solid and under-stated, a welcome shift from his string of saintly eccentrics. Unfortunately, Joseph is already immersed in his undercover persona when we first meet him, making it difficult to understand how much he is supposed to have changed and why Maggie is still putting up with him.
The reason those scenes are most frustrating, though, is that Lefty is so much more fascinating a character than Joseph/Donnie. Al Pacino has often been prone to bigger-is-better style of acting, but in DONNIE BRASCO he harnesses that impulse to turn in his best performance in at least fifteen years. There is a wonderful sequence during the second half of the film in which Lefty and Donnie head down to Miami to investigate an opportunity running a night club. Lefty sees the club as his big chance to strike out and accomplish something on his own, and he sets up a meeting with Miami's local boss to get the necessary permission. When the Miami boss shows up for the meeting, however, he is accompanied by Lefty's own boss Sonny Black (Michael Madsen), who has decided to take charge of the enterprise himself. As we watch Lefty fold in on himself in disappointment -- compounded by the fact that he believes Donnie has stabbed him in the back to earn Sonny's favor -- it is impossible not to feel sympathy for him. What makes the situation even more pathetic is that the club is a front for yet another FBI undercover man, making Lefty's lost dream an illusion from the start. Pacino's performance is sweet, crude, funny and haunted, and gives DONNIE BRASCO an unexpected emotional pull.
Lefty's hard life is made all the more tragic by the way organized crime is portrayed. Under the direction of Mike Newell (FOUR WEDDINGS AND A FUNERAL), DONNIE BRASCO doesn't crackle with the same energy as films set in this world made by Scorsese or DePalma, but it is a different impression of mob life Newell and gifted screenwriter Paul Attanasio (QUIZ SHOW) are after. Where other films have made mob life seem terribly attractive and glamorous, DONNIE BRASCO shows it as petty and tedious. Sonny Black's crew is always looking for a decent new idea while making do with hijacking trucks full of razor blades and breaking open sawed-off parking meters, and their scramble to make the weekly payment to the big boss makes them just as desperate as salesmen trying to meet a quota. There is nothing Shakespearean about the power struggles in DONNIE BRASCO. They are more like inter-office bickering gone haywire, and the rare (but extremely graphic) moments of violence leave everyone's hands dirty. The beauty of Attanasio's script -- and Pacino's performance -- are that they make Lefty's dedication to his role as lowest man in the lowest crew something touching. What begins as the story of a troubled undercover man is someone else's story by the conclusion: the story of the Willy Loman of wiseguys.
On the Renshaw scale of 0 to 10 unwiseguys: 8.
Visit Scott Renshaw's MoviePage http://www-leland.stanford.edu/~srenshaw Subscribe to receive reviews directly via email See details on the MoviePage
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


Home
Furniture
Clothing
Wallpaper
Flooring
Login/Register
Your Account
Previous Orders
Preferences
Sign Out
Froggy Chair
Stare long enough and it stares back.
ad or something


components.nf-area Class
Adds an area graph to an nf-graph
component.
Optionally, if it's located within an nf-area-stack
component, it will work with
sibling nf-area
components to create a stacked graph.
Item Index
Methods
Properties
- areaData
- areaFn
- d
- data
- didTrack
- firstSortedData
- graph
- hoverChange
- hoverEnd
- interpolator
- isSelected deprecated
- lastVisibleData
- nextArea
- nextYData
- prevArea
- renderedData
- scaleOffsetX
- scaleOffsetY
- scaleZoomX
- scaleZoomY
- selectable
- selected
- sortedData
- trackingMode
- willTrack
- x
- xData
- xPropFn
- xScale
- y
- yData
- yPropFn
- yScale
Methods
_getGraph
()

Initalization method that gets the nf-graph parent and assigns it to graph

_initializeTrackingDot
()
private

Sets up subscriptions to content hover events.

_registerGraphic
()
private

calls registerGraphic on didInsertElement.

_sendDidTrack
()
private

Observes changes to tracked data and sends the didTrack action.

_sendWillTrack
()
private

Observes impending changes to trackedData and sends the willTrack action.

_teardownTrackingDot
()
private

Tears down subscriptions to content hover events.

_unregisterGraphic
()
private

calls unregisterGraphic on didInsertElement.

_updateGraphSelected
()
private

Makes calls to the parent nf-graph to update it's selected property. Observes changes to selected and also fires on didInsertElement.

createAreaFn
-
xScale
-
yScale
-
interpolator

Creates a d3 area function from a given set of scales and an interpolator

Parameters:
-
xScale
Function
a d3 scale

-
yScale
Function
a d3 scale

-
interpolator
String
the name of the d3 interpolator to use.

Returns:

a function that when called will create SVG path data.

didContentHoverChange
-
e

Event handler for content hoverChange event. Triggers didHoverChange.

Parameters:
didContentHoverEnd
-
e

Handles the graph-content's hoverEnd event and triggers didHoverEnd

Parameters:
-
e
utils.nf.graph-mouse-action-context
didHoverChange
-
e

Event handler for didHoverChange. Sends hoverChange action.

Parameters:
didHoverEnd
-
e

Event handler for didHoverEnd. Updates tracked data, and sends hoverEnd action.

Parameters:
-
e
Object
hover end event object.

Properties
areaData
Array
The current rendered data "zipped" together with the nextYData.
areaFn
Function
Gets the area function to use to create the area SVG path data
d
String
The SVG path data for the area
data
Array

Gets or sets the data used by the component to plot itself.

Default: null
didTrack
String

The action to send on didTrack.

Default: null
firstSortedData
Array

The first element from renderedData that is actually visible within the x domain.

hoverChange
String

The action name to send to the controller when the hoverChange event fires

Default: null
hoverEnd
String

Name of the action to send on hoverEnd

Default: null
interpolator
String
The type of d3 interpolator to use to create the area
Default: 'linear'
isSelected
Unknown
deprecated

Alias of selected

lastVisibleData
Array

The last element from renderedData that is actually visible within the x domain.

nextArea
components.nf-area
The next area in the stack, if this area is part of an nf-area-stack
Default: null
nextYData
Array
The computed set of next y values to use for the "bottom" of the graphed area. If the area is part of a stack, this will be the "top" of the next area in the stack, otherwise it will return an array of values at the "bottom" of the graph domain.
prevArea
components.nf-area
The previous area in the stack, if this area is part of an nf-area-stack
Default: null
renderedData
Array

The list of data points from mixins.graph-data-graphc/sortedData:property that fits within the x domain, plus up to one data point outside of that domain in each direction.

scaleOffsetX
Number

The offset, in pixels, for the x scale

Default: 0
scaleOffsetY
Number

The offset, in pixels, for the y scale

Default: 0
scaleZoomX
Number

The zoom multiplier for the x scale

Default: 1
scaleZoomY
Number

The zoom multiplier for the y scale

Default: 1
selectable
Boolean

Gets or sets whether or not the graphic is "selectable". Meaning can be "selected" on the nf-graph via some action (usually click). The component will then show up in the nf-graph parent's selected property.

Default: false
selected
Boolean

Gets or sets whether or not the graphic is selected.

Default: false
sortedData
Array

The sorted and mapped data pulled from data An array of arrays, structures as so:

 [[x,y],[x,y],[x,y]];

** each inner array also has a property data on it, containing the original data object **

When this property is computed, it also updates the xData and yData properties of the graphic.

trackingMode
String

Gets or sets the tracking mode of the component.

Possible values are:

'none': no tracking behavior

'hover': only track while mouse hover

'snap-last': track while mouse hover, but snap to the last data element when not hovering

'snap-first': track while mouse hover, but snap to the first data element when not hovering

'selected-hover': The same as 'hover' tracking mode, but only when the compononent is selected

'selected-snap-last': The same as 'snap-last' tracking mode, but only when the compononent is selected

'selected-snap-first': The same as 'snap-first' tracking mode, but only when the compononent is selected

Default: 'none'
willTrack
String

The action to send on willTrack

Default: null
x
String

The path of the property on each object in data to use as x data to plot on the graph.

Default: 'x'
xData
Array

Gets the x values from the sortedData.

xPropFn
Function

The function to get the x value from each data object

xScale
d3.scale

The x scale used by this component

y
String

The path of the property on each object in data to use as y data to plot on the graph.

Default: 'y'
yData
Array

Gets the y values from the sortedData

yPropFn
Function

The function to get the y value from each data object

yScale
d3.scale

The y scale used by this component


HBCU Weekend: Miles vs. Tuskegee for the SIAC West title
by Birmingham TimesMiles College will have an opportunity to play for the Southern Intercollegiate Athletic Conference (SIAC) Western Division championship on Saturday, Nov. 9 at 1 p.m when it visits Tuskegee University. Both teams have just one loss in the conference.
Miles College is coming off a 17-0 victory over Kentucky State. The Golden Bears had some great performances on both sides of the ball. Quarterback Daniel Smith completed 9-of-18 passes for 122 yards with two touchdowns and one interception. Running backs Donte Edwards and Justin Ruiz provided the Golden Bears with a solid ground attack. Edwards had 13 carries for 82 yards while Ruiz had 14 for 70.
Defensively, linebacker Jaylun Thomas put together a terrific effort recording 14 tackles, 4.5 tackles for loss and two sacks. In addition to Thomas, linebackers Austin Stephens and Ozzie Williams Jr. had nine and seven tackles respectively.
In the Southwestern Athletic Conference (SWAC), Alabama State picked up an impressive 27-0 victory over Mississippi Valley State on the road. ASU quarterback KHA’Darris Davis completed 20-of-27 passes for 199 yards and one touchdown. Davis connected with wide receivers Jahod Booker and Tyrek Allen. Booker had five catches for 91 yards and one TD as the Hornets’ leading receiver. Allen caught five passes for 54 yards. Running back Ezra Gray was the team’s leading rusher with 70 yards on seven carries.
On defense, ASU received strong play from linebackers Devon Booker and Colton Adams and defensive back Naytron Culpepper who all had seven tackles each.
Alabama State posted its first shutout since 2012. ASU will visit Texas Southern on Saturday, Nov. 9. The kickoff is set for 2 p.m.
Southern nipped Alabama A&M 35-31 in an exciting conference matchup. Alabama A&M quarterback Aqeel Glass continues to show why he’s the top passer in the SWAC completing 29-of-37 passes for 356 yards and four touchdowns. Overall, he has been sensational this season. Glass has thrown 2,654 yards and 25 touchdowns with just seven interceptions.
Alabama A&M will host Jackson State on Saturday, Nov. 9. The kickoff will be at 1 p.m.
SWAC Schedule
Saturday, November 9
Jackson State at Alabama A&M 1 p.m. Huntsville, AL
Arkansas-Pine Bluff at Prairie View A&M 2 p.m. Prairie View, Texas
Alabama State at Texas Southern 2 p.m. Houston, Texas
Alcorn State at Grambling State 2 p.m. Grambling, La.
Virginia University of Lynchburg at Southern 4 p.m. Baton Rouge, La.
SIAC Schedule
Saturday, November 9
Miles College at Tuskegee 1 p.m. Tuskegee, AL
Kentucky State at Central State 1 p.m. Wilberforce, Ohio
Benedict at Lane 2 p.m. Jackson, TN
Fort Valley State at Albany State 2 p.m. Columbus, Ga.
Savannah State at Edward Waters 3 p.m. Jacksonville, Fla.
Clark Atlanta at Morehouse 3 p.m. Atlanta, Ga.


This is a paragraph “with matching typographic quotemarks.” Newlines, when not separated by blank lines, are part of the preceding paragraph.
Groovy class applied to this contraction-containing par'graph of links and images. the real link
the real blink This link also contains paragraph text.
This is another paragraph. The first separating blank line makes it a new paragraph. Extra blank lines—above and below—are ignored. Doubled dashes are converted to the typographic emdash—, unless preceded by a backslash--.
This paragraph is the last line; but it's still a paragraph!


Q309: Best Time to Buy and Sell Stock with Cooldown
Say you have an array for which the ith element is the price of a given stock on day i.
Design an algorithm to find the maximum profit. You may complete as many transactions as you like (ie, buy one and sell one share of the stock multiple times) with the following restrictions:
You may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).
After you sell your stock, you cannot buy stock on next day. (ie, cooldown 1 day)
Example:
Input: [1,2,3,0,2]
Output: 3
Explanation: transactions = [buy, sell, cooldown, buy, sell]
At first, I thought about dynamic programming with the thought that:
For the first j days, the best solution is among: 1. the first j-1 day and do nothing at j; 2. bug and sell at kth and jth day, and doing something at the first k-2 days (we need k-2 since we cannot do anything at k-1th day in order to buy at kth day).
With this idea, it yields an DP algorithm with time complexity $O(N^2)$ since at each time I need to traverse to get the choice of k.
OK, how to improve? It can be done in linear time ..
How about maintaining some finer information? At jth day, all I need to decide is whether I want to buy, sell, or cool down (I have to cool down). The rule is (from previous day to current day):
- sell -> cool down;
- buy -> sell;
- cool down -> buy
Of course, we can do nothing as well. So, essentially, we have 2 choices: 1. to sell (if have share); 2. to have share (by buying or not selling). But we need to know if we could buy so we also need to know the status about not having a share. So, we maintain three events: 1. sell at j day; 2. have a share at j day; 3. not have a share at j day (not by selling). And taking DP in, we want to maintain the best solution where the last state is one of the three respectively.
So, the pseudocode is:
best_sell = [ 0 ] * len(prices)
best_hold = [ 0 ] * len(prices)
best_noshare = [ 0 ] * len(prices)
# initialize
best_sell[0] = -float('inf')
best_hold[0] = -prices[0]
best_noshare[0] = 0
# iteration
for j in 1 .. len(prices) - 1 {
best_sell[j] = best_hold[j-1] + prices[j]
best_hold[j] = max(best_hold[j-1], best_noshare[j-1] - prices[j])
best_noshare[j] = max(best_sell[j-1], best_noshare[j-1])
}
return max(best_sell[-1], best_noshare[-1])
The Python submission.
class Solution:
def maxProfit(self, prices: List[int]) -> int:
if len(prices) == 0:
return 0
best_sell = [ 0 ] * len(prices)
best_hold = [ 0 ] * len(prices)
best_noshare = [ 0 ] * len(prices)
# initialize
best_sell[0] = -float('inf')
best_hold[0] = -prices[0]
best_noshare[0] = 0
for j in range(1, len(prices)):
best_sell[j] = best_hold[j-1] + prices[j]
best_hold[j] = max(best_hold[j-1], best_noshare[j-1] - prices[j])
best_noshare[j] = max(best_sell[j-1], best_noshare[j-1])
return max(best_noshare[-1], best_sell[-1])