@* * Copyright 2010-2013 Artima, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @userGuidePage("Sharing tests") {
Sometimes you may want to run the same test code on different fixture objects. In other words, you may want to write tests that are "shared"
by different fixture objects. To accomplish this in a FlatSpec
, you first place shared tests in behavior functions.
These behavior functions will be invoked during the construction phase of any FlatSpec
that uses them, so that the tests they
contain will be registered as tests in that FlatSpec
. For example, given this stack class:
import scala.collection.mutable.ListBuffer
class Stack[T] {
val MAX = 10 private val buf = new ListBuffer[T]
def push(o: T) { if (!full) buf.prepend(o) else throw new IllegalStateException("can't push onto a full stack") }
def pop(): T = { if (!empty) buf.remove(0) else throw new IllegalStateException("can't pop an empty stack") }
def peek: T = { if (!empty) buf(0) else throw new IllegalStateException("can't pop an empty stack") }
def full: Boolean = buf.size == MAX def empty: Boolean = buf.size == 0 def size = buf.size
override def toString = buf.mkString("Stack(", ", ", ")") }
You may want to test the Stack
class in different states: empty, full, with one item, with one item less than capacity,
etc. You may find you have several tests that make sense any time the stack is non-empty. Thus you'd ideally want to run
those same tests for three stack fixture objects: a full stack, a stack with a one item, and a stack with one item less than
capacity. With shared tests, you can factor these tests out into a behavior function, into which you pass the
stack fixture to use when running the tests. So in your FlatSpec
for stack, you'd invoke the
behavior function three times, passing in each of the three stack fixtures so that the shared tests are run for all three fixtures. You
can define a behavior function that encapsulates these shared tests inside the FlatSpec
that uses them. If they are shared
between different FlatSpec
s, however, you could also define them in a separate trait that is mixed into each FlatSpec
that uses them.
For example, here the nonEmptyStack
behavior function (in this case, a behavior method) is
defined in a trait along with another method containing shared tests for non-full stacks:
trait StackBehaviors { this: FlatSpec =>
def nonEmptyStack(newStack: => Stack[Int], lastItemAdded: Int) {
it should "be non-empty" in { assert(!newStack.empty) }
it should "return the top item on peek" in { assert(newStack.peek === lastItemAdded) }
it should "not remove the top item on peek" in { val stack = newStack val size = stack.size assert(stack.peek === lastItemAdded) assert(stack.size === size) }
it should "remove the top item on pop" in { val stack = newStack val size = stack.size assert(stack.pop === lastItemAdded) assert(stack.size === size - 1) } }
def nonFullStack(newStack: => Stack[Int]) {
it should "not be full" in { assert(!newStack.full) }
it should "add to the top on push" in { val stack = newStack val size = stack.size stack.push(7) assert(stack.size === size + 1) assert(stack.peek === 7) } } }
Given these behavior functions, you could invoke them directly, but FlatSpec
offers a DSL for the purpose,
which looks like this:
it should behave like nonEmptyStack(stackWithOneItem, lastValuePushed) it should behave like nonFullStack(stackWithOneItem)
If you prefer to use an imperative style to change fixtures, for example by mixing in BeforeAndAfterEach
and
reassigning a stack
var
in beforeEach
, you could write your behavior functions
in the context of that var
, which means you wouldn't need to pass in the stack fixture because it would be
in scope already inside the behavior function. In that case, your code would look like this:
it should behave like nonEmptyStack // assuming lastValuePushed is also in scope inside nonEmptyStack
it should behave like nonFullStack
The recommended style, however, is the functional, pass-all-the-needed-values-in style. Here's an example:
class SharedTestExampleSpec extends FlatSpec with StackBehaviors {
// Stack fixture creation methods def emptyStack = new Stack[Int]
def fullStack = { val stack = new Stack[Int] for (i <- 0 until stack.MAX) stack.push(i) stack }
def stackWithOneItem = { val stack = new Stack[Int] stack.push(9) stack }
def stackWithOneItemLessThanCapacity = { val stack = new Stack[Int] for (i <- 1 to 9) stack.push(i) stack }
val lastValuePushed = 9
"A Stack (when empty)" should "be empty" in { assert(emptyStack.empty) }
it should "complain on peek" in { intercept[IllegalStateException] { emptyStack.peek } }
it should "complain on pop" in { intercept[IllegalStateException] { emptyStack.pop } }
"A Stack (with one item)" should behave like nonEmptyStack(stackWithOneItem, lastValuePushed)
it should behave like nonFullStack(stackWithOneItem)
"A Stack (with one item less than capacity)" should
behave like nonEmptyStack(stackWithOneItemLessThanCapacity, lastValuePushed)
it should behave like nonFullStack(stackWithOneItemLessThanCapacity)
"A Stack (full)" should "be full" in { assert(fullStack.full) }
it should behave like nonEmptyStack(fullStack, lastValuePushed)
it should "complain on a push" in { intercept[IllegalStateException] { fullStack.push(10) } } }
If you load these classes into the Scala interpreter (with scalatest's JAR file on the class path), and execute it, you'll see:
scala> (new SharedTestExampleSpec).execute()
A Stack (when empty)
- should be empty
- should complain on peek
- should complain on pop
A Stack (with one item)
- should be non-empty
- should return the top item on peek
- should not remove the top item on peek
- should remove the top item on pop
- should not be full
- should add to the top on push
A Stack (with one item less than capacity)
- should be non-empty
- should return the top item on peek
- should not remove the top item on peek
- should remove the top item on pop
- should not be full
- should add to the top on push
A Stack (full)
- should be full
- should be non-empty
- should return the top item on peek
- should not remove the top item on peek
- should remove the top item on pop
- should complain on a push
One thing to keep in mind when using shared tests is that in ScalaTest, each test in a suite must have a unique name.
If you register the same tests repeatedly in the same suite, one problem you may encounter is an exception at runtime
complaining that multiple tests are being registered with the same test name. A good way to solve this problem in a FlatSpec
is to make sure
each invocation of a behavior function is in the context of a different subject,
which will prepend a string to each test name.
For example, the following code in a FlatSpec
would register a test with the name "A Stack (when empty) should be empty"
:
behavior of "A Stack (when empty)"
it should "be empty" in { assert(emptyStack.empty) } // ...
Or, using the shorthand notation:
"A Stack (when empty)" should "be empty" in { assert(emptyStack.empty) } // ...
If the "should be empty"
test was factored out into a behavior function, it could be called repeatedly so long
as each invocation of the behavior function is in the context of a different subject.
Shared tests are supported in all style traits in which tests are represented as functions, because they require
registering the same test function multiple times, each time parameterized with different fixture objects. In trait Suite
tests
are methods, thus shared tests aren't supported. The Scaladoc of each style trait that supports them includes an example of shared tests.
A related technique is property-based testing. Whereas in shared tests you evaluate the same test function on different data, in property-based testing you evaluate the same property function on different data.
Next, learn about using matchers.


#include <tiffio.h> int TIFFReadBufferSetup(TIFF*, tdata_t buffer, tsize_t size); int TIFFWriteBufferSetup(TIFF*, tdata_t buffer, tsize_t size);
TIFFReadBufferSetup sets up the data buffer used to read raw (encoded) data from a file. If the specified pointer is NULL (zero), then a buffer of the appropriate size is allocated. Otherwise the caller must guarantee that the buffer is large enough to hold any individual strip of raw data. TIFFReadBufferSetup returns a non-zero value if the setup was successful and zero otherwise.
TIFFWriteBufferSetup sets up the data buffer used to write raw (encoded) data to a file. If the specified size is -1 then the buffer size is selected to hold a complete tile or strip, or at least 8 kilobytes, whichever is greater. If the specified buffer is NULL (zero), then a buffer of the appropriate size is dynamically allocated. TIFFWriteBufferSetup returns a non-zero value if the setup was successful and zero otherwise.
%s: No space for output buffer. TIFFWriteBufferSetup was unable to dynamically allocate space for a data buffer.


©2013 Brushed Template by Alessio Atzeni Migration to Twitter Boostrap 3 , various fixes and nerdification by @fforres


For the program that we write, we will put their names into a file called Roster.txt, and their pictures into the directory Pictures, starting with the file 001001.jpg and ending with 001018.jpg. The first file corresponds to the first name in the roster (Alexander Blinn). The second file corresponds to the second name in the roster (Brody Fairport), etc.
Our goal is to write a program that will create an HTML file that one can use to help memorize the names and faces. The HTML file will have the pictures displayed randomly, and there should be an option to either include the names with the pictures, or not.
We're going to structure this in a standard C++ way. We're going to define a class called a Roster, in a header file roster_01.h:
#include <iostream> #include <cstdlib> #include <vector> #include <string> using namespace std; class Roster { public: void Add_name(string name); void Print(); protected: vector <string> names; }; |
Classes divide their data and methods into public and protected. If something is public, then anyone may access it. If something is protected, then the data/methods may only be used within the implementation of a class' method. Typically, we make all of the data protected, and only have the methods be public. The reason for this is so that users of a data structure cannot mess up the data -- they only gain access through the methods, which keeps the data safe.
In this example, we have one piece of protected data -- a vector of names, which will contain the roster. There are two methods -- Add_name() adds a name to the roster, and Print() prints the roster.
We're going to do this implementation incrementally, which is how you should always program. It lets you test as you go, and you find bugs much more quickly. Those of you in class typically get to see that first hand, as my programs usually have a few bugs as I write them.
We'll implement the class in roster_01.cpp. This is a very simple implementation: Add_name() simply appends the name to the vector, and Print() simply prints out the names:
#include "roster_01.h" void Roster::Add_name(string name) { names.push_back(name); } void Roster::Print() { int i; for (i = 0; i < names.size(); i++) cout << names[i] << endl; } |
We'll add a main() routine to complete the program in roster_01_main.cpp. It does a little error checking, then reads the roster file, calling Add_name() with every name. At the end, it calls Print().
#include <fstream> #include "roster_01.h" main(int argc, char **argv) { Roster r; ifstream fin; string name; if (argc != 2) { cerr << "usage: roster_main filename\n"; exit(1); } fin.open(argv[1]); if (fin.fail()) { perror(argv[1]); exit(1); } while (getline(fin, name)) r.Add_name(name); r.Print(); } |
First, if you haven't seen an ifstream before, these are how you read from files in C++. You open() the ifstream by associating it with a file (in a C-style string, by the way). Then you can treat fin just like you treat cin to read from the terminal; however, now, you are reading from the file. You can also write files with an ofstream. We'll see that later.
Since we declared r as a local variable, the instance of the Roster class is created as soon as the main() program starts. That class starts with an empty names vector. For that reason, we do not need to do any initialization of the Roster class.
Let's think a little about how we structured this program:
There are three files. The header in roster_01.h contains definitions only. It must be included by the programs that use it and define it. The #include statement uses double-quotes because the header file is in the current directory.
The main file in roster_01_main.cpp uses the public methods in the Roster class to store names and then print out the Roster.
The implementation file in roster_01.cpp implements the methods. As such, it is allowed to use all parts of the class, both public and protected. It specifies the method being implemented by tagging it with "Roster::." This is how you know that it is implementing a method, and not simply a normal procedure. The implementations are allowed to use all parts of the class as local variables. Thus, when the implementation of Print() uses names, that refers to the vector that is defined in the class.
We can compile the files with one line of g++:
UNIX> g++ -o roster_01 roster_01.cpp roster_01_main.cpp UNIX> roster_01 usage: roster_main filename UNIX> roster_01 Roster.txt Alexander Blinn Brody Fairport Taylor Toxin Kayla Metro William Grantee Sofia Doleful Layla Simplex Henry Betide Ella Grievous Landon Lockheed Hannah Sleep Andrew Domingo Daniel Petrify Eli Jayden Olivine Grace Convoke Gianna Deportation Zachary Obviate Alexandra Spicebush UNIX>Alternatively, we can do what is known as separate compilation, to incrementally compile the program. We do this by first compiling each .cpp program to an object file, which has a .o extension. This is done by passing -c as a flag to the compiler:
UNIX> g++ -c roster_01.cpp UNIX> g++ -c roster_01_main.cpp UNIX>We then link the object files to create an executable that we can run:
UNIX> g++ -o roster_01 roster_01.o roster_01_main.o UNIX>The reason why separate compilation is nice is that compiling from object files is faster than from the source files (the .cpp) ones. Thus, when we compile incrementally, and we change a source file, we recompile the changes source to its object file and then relink all the object files. That is faster than calling g++ on all the source files.
The program make lets you automate this task. If I type "make clean" and then "make roster_01", then make performs the incremental compilation:
UNIX> make clean rm -f *.o roster_?? UNIX> make roster_01 g++ -c roster_01.cpp g++ -c roster_01_main.cpp g++ -o roster_01 roster_01.o roster_01_main.o UNIX>If I type "make roster_01" again, nothing happens, because make looks at the modification times of all the files to determine whether any recompilation needs to occur. Since the object files are newer than the source files, and the executable file is newer than the object files, no recompilation is necessary:
UNIX> make roster_01 make: `roster_01' is up to date. UNIX>However, if I type "touch roster_01.cpp", which updates its modification time, then "make roster_01" will incrementally recompile roster_01.cpp, but not roster_01_main.cpp, and then make the executable:
UNIX> touch roster_01.cpp UNIX> make roster_01 g++ -c roster_01.cpp g++ -o roster_01 roster_01.o roster_01_main.o UNIX>Make reads a makefile to determine what it compiles. Writing makefiles is a bit of an art form. I'll try to have them in the lecture note and lab directories when needed.
void Roster::Print(int columns) { int i; cout << "
\n"; for (i = 0; i < names.size(); i++) { if (i % columns == 0) cout << "
\n"; // Start a new row when i%columns == 0 printf("%s	\n", names[i].c_str()); if (i % columns == columns-1) cout << "
\n"; // End the row when i%columns == columns -1 } if (i%columns != 0) cout << "
\n"; // If the last row is incomplete, end it. cout << "
\n"; } |
We compile and run it below:
UNIX> make roster_02 g++ -c roster_02.cpp g++ -c roster_02_main.cpp g++ -o roster_02 roster_02.o roster_02_main.o UNIX> roster_02 usage: roster_main filename columns UNIX> roster_02 Roster.txt 6 > roster_02_example.html UNIX>You can look at the resulting HTML file in roster_02_example.html (Click the link to see it as an HTML file):

 Alexander Blinn	 Brody Fairport	 Taylor Toxin	 Kayla Metro	 William Grantee	 Sofia Doleful

 Layla Simplex	 Henry Betide	 Ella Grievous	 Landon Lockheed	 Hannah Sleep	 Andrew Domingo

 Daniel Petrify	 Eli Jayden Olivine	 Grace Convoke	 Gianna Deportation	 Zachary Obviate	 Alexandra Spicebush

 |
I'd like to have this number be part of the class. It will be a piece of the class's protected data, and I'll set it when I create an instance of the class. To do that, I need to define a constructor method for the class, which takes the starting number as a parameter. Here is the new class defintion, in roster_03.h
#include <iostream> #include <cstdlib> #include <vector> #include <string> using namespace std; class Roster { public: Roster(int starting_number); // The constructor, which takes an integer as a parameter. void Add_name(string name); void Print(int columns); protected: vector <string> names; int start; }; |
In roster_03.cpp, we define the constructor, which simply sets the new start variable to the constructor's parameter, and then constructs the filename in the Print() procedure:
#include "roster_03.h" Roster::Roster(int starting_number) { start = starting_number; } void Roster::Add_name(string name) { names.push_back(name); } void Roster::Print(int columns) { int i; cout << "
\n"; for (i = 0; i < names.size(); i++) { if (i % columns == 0) cout << "
\n"; // Start a new row when i%columns == 0 printf(""); printf("Filename: Pictures/%06d.jpg, %s", i+start, names[i].c_str()); printf("	\n"); if (i % columns == columns-1) cout << "
\n"; // End the row when i%columns == columns -1 } if (i%columns != 0) cout << "
\n"; // If the last row is incomplete, end it. cout << "
\n"; } |
Remember that printf() statement -- it pads the number to six digits, and includes leading zeros.
Finally, we have an issue with our main() routine. Previously, we had declared r is a parameter, which was fine since it did not take an explicit constructor. If we try that now, we'll get a compilation error. To fix it, we change r to be a pointer, and call new with the starting number as a parameter, which is passed to the constructor.
This delays creating the instance of the roster class until the new statement has been reached. It also means that r is a pointer, which points to the new instance. To access the members of the class, you have to use "->" instead of ".". If you copy r, it only copies the pointer and not the instance. This allows you to have multiple data structures that point to one data structure, which is sometimes exactly what you want. Without pointers, you'd have to make copies.
Here is the code for roster_03_main.cpp:
#include <fstream> #include <sstream> #include "roster_03.h" main(int argc, char **argv) { Roster *r; ifstream fin; istringstream ss; string name; int columns, starting_number; if (argc != 4) { cerr << "usage: roster_main filename starting_number columns\n"; exit(1); } ss.clear(); ss.str(argv[2]); if (!(ss >> starting_number)) { cerr << "usage: roster_main filename starting_number columns -- bad starting number\n"; exit(1); } ss.clear(); ss.str(argv[3]); if (!(ss >> columns) || columns <= 0) { cerr << "usage: roster_main filename starting_number columns -- bad columns specification\n"; exit(1); } r = new Roster(starting_number); fin.open(argv[1]); if (fin.fail()) { perror(argv[1]); exit(1); } while (getline(fin, name)) r->Add_name(name); r->Print(columns); } |
UNIX> make roster_03 g++ -c roster_03.cpp g++ -c roster_03_main.cpp g++ -o roster_03 roster_03.o roster_03_main.o UNIX> roster_03 usage: roster_main filename starting_number columns UNIX> roster_03 Roster.txt 1001 6 > roster_03_example.html UNIX>Here's roster_03_example.html.
#include <fstream> #include <sstream> #include "roster_03.h" main(int argc, char **argv) { ifstream fin; istringstream ss; string name; int columns, starting_number; if (argc != 4) { cerr << "usage: roster_main filename starting_number columns\n"; exit(1); } ss.clear(); ss.str(argv[2]); if (!(ss >> starting_number)) { cerr << "usage: roster_main filename starting_number columns -- bad starting number\n"; exit(1); } ss.clear(); ss.str(argv[3]); if (!(ss >> columns) || columns <= 0) { cerr << "usage: roster_main filename starting_number columns -- bad columns specification\n"; exit(1); } Roster r(starting_number); fin.open(argv[1]); if (fin.fail()) { perror(argv[1]); exit(1); } while (getline(fin, name)) r.Add_name(name); r.Print(columns); } |
You'll note that I've put the variable declaration after the processing of the command line. That way, r does not get constructed until starting_number has been initialized. It works fine:
UNIX> make roster_ev g++ -c roster_03_evil.cpp g++ -o roster_ev roster_03.o roster_03_evil.o UNIX> roster_ev Roster.txt 1001 6 > roster_ev_example.html UNIX>However, I really don't like that style of programming. Why? Because in my opinion, programs and procedures should have variable declarations and then code. When variables are declared inline, it makes the code that much harder to read and debug. I believe you do much better to declare a pointer with the variable declarations, and then use new. You will not see me ever declare variables in the middle of a procedure. I would prefer that you not do that either.
UNIX> make roster_04 g++ -c roster_04.cpp g++ -c roster_04_main.cpp g++ -o roster_04 roster_04.o roster_04_main.o UNIX> roster_04 usage: roster_main filename starting_number columns print_names(yes/no) UNIX> roster_04 Roster.txt 1001 6 yes > roster_04_names.html UNIX> roster_04 Roster.txt 1001 6 no > roster_04_no_names.htmlTake a look at the two output files:
void Roster::Print(int columns, int print_names) { int i; int rn; cout << "
\n"; for (i = 0; i < names.size(); i++) { if (i%columns == 0) cout << "
\n"; rn = lrand48()%names.size(); cout << ""; printf("", rn+start); if (print_names) cout << "
" << names[rn]; cout << "	" << endl; if (i%columns == columns-1) cout << "
\n"; } if (i%columns != 0) cout << "
\n"; cout << "
\n"; } |
Instead of printing out the names and pictures from 0 to names.size()-1, we use lrand48() to pick a random number between 0 and names.size()-1 and print that out at each iteration. This is a pretty bad technique, because you're very likely to pick the same number twice, which means you get multiple pictures of the same person, and some people won't show up at all. For example:
UNIX> make roster_05_bad_1 g++ -c roster_05_bad_1.cpp g++ -c roster_05_main.cpp g++ -o roster_05_bad_1 roster_05_bad_1.o roster_05_main.o UNIX> roster_05_bad_1 Roster.txt 1001 6 yes > roster_05_bad_1.html UNIX>When you look at roster_05_bad_1.html, you see a lot of duplicates: Andrew Domingo, William Grantee, Taylor Toxin. There is no Grace Convoke or Daniel Petrify.
In class, someone mentioned that I forgot to seed the random number generator (with srand48()). That was intentional on my part: when you're debugging code that uses random numbers, it's good either to not seed the random number generator, or to seed it with the same value over and over. This is because you'll get the same random numbers, which is helpful if you have to chase down a bug that involves the random numbers.
The code is in roster_05_bad_2.cpp, where the following code initializes random:
void Roster::Print(int columns, int print_names) { int i, rn; vector <int> random, inrandom; inrandom.resize(names.size(), 0); for (i = 0; i < names.size(); i++) { do { rn = lrand48()%names.size(); } while (inrandom[rn]); inrandom[rn] = 1; random.push_back(rn); } ... |
First off, how can we be sure that this code works? While reasoning about it and convincing yourself it works is one way, another more compelling way is to test it. To do that, I've written rb1.cpp, which randomizes the numbers from 0 to 99 with the above code:
#include <iostream> #include <cstdlib> #include <cstdio> #include <vector> #include <string> using namespace std; main() { int i, rn; vector <int> inrandom; inrandom.resize(100, 0); for (i = 0; i < 100; i++) { do { rn = lrand48()%100; } while (inrandom[rn]); inrandom[rn] = 1; printf("%3d\n", rn); } } |
I first run it and look at the output -- looks random. To prove that all numbers are there, though, I'll run the following Unix command:
UNIX> rb1 | sort -u | wc 100 100 400 UNIX>The sort command sorts the lines of standard input, and when you pass it the "-u" flag, it removes duplicate lines. Thus, if you have no duplicates, it will emit 100 lines. If you have duplicates, it will emit fewer. The wc command prints the number of lines, words and characters on standard input. It confirms that sort -u emitted 100 lines, and our code is working.
To demonstrate it catching a bug, rb1-buggy.cpp is identical to rb1.cpp, except I deleted the "inrandom[rn] = 1;" line. Running the above Unix command illustrates that it only produces 66 unique lines -- it has printed lots of duplicates!
UNIX> rb1-buggy | sort -u | wc 66 66 264 UNIX>While I don't test you on these things, it's good for you to learn some of the Unix commands, like grep, sed, sort, diff and wc. They are powerful tools to help you debug your programs!
Now, why is roster_05_bad_2.cpp a bad program?  When i is zero, you will run it once. When i is one, you have a 1 in names.size() chance of picking the number you picked last time. When i is names.size()-1, you only have 1 in names.size() chance of not picking the number you have previously picked. On average, at iteration i, you're going to run the do-while loop i times. If n is equal to names.size(), our average total number of times iterating through the do-while loop is:
That's expensive -- think about it. If n is 1000, that is 500,500 times. Of course, in our program names.size() is 22, so the program runs quickly. However, part of my job is to teach you good algorithm design, and this program is bad because of how many times you will run through that do-while loop.
For example, suppose we want to randomize the numbers 0, 1, 2, 3, 4 with this algorithm. The following table shows how it works:
| i | random before swapping | lrand48()%(i+1) | random after swapping |
| 4 | { 0, 1, 2, 3, 4 } | 2 | { 0, 1, 4, 3, 2 } |
| 3 | { 0, 1, 4, 3, 2 } | 1 | { 0, 3, 4, 1, 2 } |
| 2 | { 0, 3, 4, 1, 2 } | 2 | { 0, 3, 4, 1, 2 } |
| 1 | { 0, 3, 4, 1, 2 } | 0 | { 3, 0, 4, 1, 2 } |
| 0 | { 3, 0, 4, 1, 2 } | 0 | { 3, 0, 4, 1, 2 } |
You're only calling lrand48() once per iteration, for a total of names.size() times. That's much better than roster_05_bad_2.cpp. Here's the code in roster_05_good.cpp:
void Roster::Print(int columns, int print_names) { int i, rn, tmp; vector <int> random; for (i = 0; i < names.size(); i++) random.push_back(i); for (i = random.size()-1; i >= 0; i--) { rn = lrand48()%(i+1); tmp = random[i]; random[i] = random[rn]; random[rn] = tmp; } ... |
It runs as we'd like. Finally, roster_06.h, roster_06.cpp and roster_06_main.cpp are copies of the previous program with one modification -- srand48(time(0)) is called in roster_06_main.cpp so that we get different HTML files whenever we run it:
UNIX> make roster_06 g++ -c roster_06.cpp g++ -c roster_06_main.cpp g++ -o roster_06 roster_06.o roster_06_main.o UNIX> roster_06 Roster.txt 1001 6 yes > roster_06.html UNIX> sleep 1 UNIX> roster_06 Roster.txt 1001 6 yes > roster_06_2.html UNIX>roster_06.html and roster_06_2.html are indeed different.


TiM MUGENDI || COMPUTER WIZARD
Hi there,
I am a software developer with extensive experience in web development.
My expertise is website design, front-end development and back-end development.
About me
I am a Fullstack developer and a pure and applied Mathematician. I am zealous about solving real world problems. It turns out that I can do that through software development while incorporating my love for Mathematics.  In case I am neither crunching Codes nor figuring out Mathematical concepts, I am on yoga mat stretching, taking a long hike or curled up buried in a great read. These are my best and sure ways of decompressing after a busy work schedule.
Background information
- Nationality:Kenyan
- Phone: 0791-417-147
-<EMAIL_ADDRESS>- Education:Moringa school
- Education:Technical University of Kenya
- Course: Bsc (Mathematics)
- Software development
Hobbies
- Chess
- Swimming
- Computer games
- Hiking
- Bike racing
My services
Software development
I have front-end and back-end experience in following areas.
- HTML
- CSS
- Javascript
- APIs
- UI/UX design
- Coding
- Figma designs
- Jquery
- Bootstrap
- Version control (Git)
- Data base administration
- Load changes
- Security compliance
- Back-end frameworks
Pure and Applied Mathematics
In the world of Science, I solve real world problems using Mathematics.
- Lnear programming
- Mathematical modelling
- Calculus
- Matrices
- Statistics
- SPSS
- Jupyter notebooks
Article writing
I write creative articles,essays and prose forms.
I have written the following poems.
- My sister
- Kenya@50
- The living
- Destiny
- Kinsmen
Portfolio
The online medics (HTML,CSS)
This is a website that helps address health issues that need medical attention. It creates a prompt way of accessing health services and the best medics in a one stop thus making it convinient and the best way to keep private biodata secure and confidential.
You want to visit my site? click here
Streetfood website (HTML,CSS)
This is a website that shows the type of food we offer among other details like reservations, our contacts and catering services.
You want to visit my site? click here
Photography gallery (HTML,CSS)
This is my photography website. In this website, the best pictures of my adventure shall be posted here. In addition, it shall contain scenic pictures and activities carried out by people from all parts of the globe.
You want to visit my site? click here
20+
Successful projects
100+
Happy clients
100+
team members
5+
Winning awards
My blog
Trending businesses
Cryptocurrency
Cryptocurrency is a type of digital currency that generally only exists electronically. There is no physical coin or bill u you use a service that allows you to cash in cryptocurrency for a physical token. Read more about cryptocurrency
Trending businesses
Forex
The foreign exchange market (Forex, FX, or currency market) is a global decentralized or over-the-counter (OTC) market for the trading of currencies. This market determines foreign exchange rates for every currency. It includes all aspects of buying, selling and exchanging currencies at current or determined prices. In terms of trading volume, it is by far the largest market in the world, followed by the credit market.Read more hereForeign exchange
Trending businesses
Credit market
Credit market, also known as debt market, is a market where companies and governments offer debt to investors in he form of junk bonds, investment-grade bonds, and short-term commercial paper. It includes debt offerings such as notes and securitised obligations such as collateralised debt obligations (CDOs), credit default swaps (CDS), and mortgage-backed securities.Read more about credit market


Listen to our 8D Radio Station
🎧 required
Experience the best songs in the 8D Surrounding sound, Imagine Dragons, OneRepublic, Drake, Lana Del Rey,...
8D Radio's Facebook
8D Radio's Twitter


Log time
Ticket no
{{ticket.value}} - {{ticket.label}}
Provide the ticket no on which you had to log your work
Actual time spent
{{ (log.timeSpent | formatTs) || '-' }}
Override time spent
Provide the time spent on this task (override to change existing)
Comments


{{review.title}}
{{ review.review }}
{{ review.likes }} users likes this review.
This fable has no reviews yet.


Some of you might feel as though you are beautiful and hot and cool and awesome. Know this: When you’re in your 20s you go through, like, a time machine of opposite days.   If you don’t believe me you can ask Facebook.


I'm A Celebrity's Jacqueline Jossa 'is scared of everything and hates creatures'
Former EastEnders actress Jacqueline Jossa is not looking forward to coming face-to-face with I'm A Celebrity's infamous creepy-crawlies but will use the jungle as a detox
by James Brinsford, https://www.facebook.com/james.brinsfordJacqueline Jossa has spoken out about her fears as she enters the Australian jungle for I'm A Celebrity .
The 27-year-old former EastEnders actress has revealed that she "doesn’t do creatures" and is not looking forward to coming face-to-face with the millions of creepy crawlies the ITV show has in store.
Speaking ahead of her time in the jungle, Jacqueline - who quit in 2018 as Lauren Branning in the BBC1 drama after eight years - has said she is "scared of everything."
She believes her friends from Albert Square will be shocked to see her in the line-up for this year's show, especially as she has such a nervous disposition when it comes to insects.
Despite her fear of anything with eight legs, Jacqueline has said that being herself and not a fictional character is also going to be a challenge.
She said: "It’s going to be so difficult going in as me and that’s definitely going to be the hardest part. I have never done a show where I have been myself.”
“And I am also scared of everything – especially spiders! They are the worst, there will be tears!”
“My old colleagues on EastEnders are going to be shocked. I don’t think they can imagine me in there. I don’t like creatures. It is not my thing.”
It's not just the creepy-crawlies that could prove problematic as Jacqueline revealed that she is not really a 'great outdoors' person.
She continued: "I have also never done rock climbing, jumped out of a plane or camped in my life. I am not that kind of girl.
"But having said all that, I am really excited. This is something completely different and it’s going to be a totally new experience."
The TV actress also hopes to dispel some misconceptions about her.
Jacqueline explained: “I think people think I am a pushover or a doormat.
“I also think some people pity me. I want to show I am fine, I am up for a laugh and that I will go for it and try my best.”
One of her toughest challenges, as a mum to two young children, Jacqueline readily admits she is going to find it very tough being separated from them.
She admitted: “This is definitely the longest I have ever been away from them and that is going to be really hard.
“I didn’t know how to face even telling them. In the end, I thought the best idea was to say ‘mummy is going away for work’ and I would see them soon. My family is so close-knit and I will miss them all terribly.”
Do you have a story to sell? Get in touch with us at<EMAIL_ADDRESS>or call us direct 0207 29 33033.


It looks like something's wrong with your OAuth link between WDYG and Foursquare, so we can't update your map - you might have revoked access in your Foursquare settings, but it's probably just an old bug on our end.
But don't worry, you can fix it by clicking on the "delete your data" button above, and then re-authenticating with Foursquare. The link to your static map will change when you re-create it, but everything else should work fine. Sorry about that!
(re)generating map...
deleting map...


We display an auto-updating counter UpCount()
as a DOM text node (T
).
ES6 format strings with the F
(for format) tag are auto-updated.
It's easy to define upwardable functions. Let's display the square of the timer, using C
to wrap the function.
Input elements are also created using E
.
Input values are available via the `input` property on the input element.
A `change` property is also available, which is updated when input finishes.
Upwardable functions can return asynchronous data, such as the result of API calls. Here we display the most recent event from a Github repository.
To map one array to another in upward-aware fashion, we use UpMap
.
This is also available on the array prototype as as
.
A common use is to map an array into DOM elements to use as child elements.
Here we map an array of numbers onto text nodes inside divs.
This example is nearly identical to the previous, just adding the by
preposition to ensure the array is sorted.
DOM elements are assigned dynamically updated styles using the .is
method.
Here we change a background color by merely assigning a new value to a property.
All app logic in Upward is written in JavaScript.
We don't need no stinkin’ CSS preprocessors with weird syntax.
The UpStyle
API is used to insert rulesheets.
Here is a styled div for your enjoyment.
By the way, Upward suppports scoped CSS rules.
This is the approach to emulating STYLE
elements, or external CSS.
Of Course, classes and styles can be placed on elements, as shown in a later example.
By writing our view as a `C` function, the model can be asynchronous.
We automatically mainpulate DOM elements.
Here we construct a DOM text node whose value is upwardable. We increment the value every second, and the DOM is automatically updated.
The C
function can be used to transform dynamic values.
Classes are specified by hashes, with camelized names as keys and boolean values. This makes it easy to turn classes on and off.
HTML
template helper
The HTML
helper allows you to construct HTML strings.


AppTree Build Server Documentation
Ruby
Fastlane depends on Ruby. The build server is configured to use a specific version of ruby 2.2.4p230
instead of the system Ruby that came preinstalled with Mac OS X.
There is no guarantee that Fastlane will work with a newer version of Ruby.
The version of Ruby that the build server is running is configured by rbenv. The version is set by the RBENV_VERSION
environment variable.
Since we are not using the system Ruby, there is no need to use sudo
when you are installing, updating, or uninstalling gems.
For more information please consult the rbenv documentation.
Updating Cocoapods
- Update the
Gemfile
so that it reflect the latest version of Cocoapods. - Run
bundle update
. - Test to see that Cocoapods is working correctly by checking the version by running
pod --version
. - If the version is not as expected, you may have multiple versions of Cocoapods installed. To remedy, run
gem uninstall cocoapods
and choose to uninstall the older version. Gemfile.lock
andGemfile
will have changed. Commit the changes to the repository.
Updating Cocoapods Repository
bundle exec pod repo update
Updating Fastlane
The build server will probably not require Fastlane to be updated very often in order for the builds to work. However, if an update is required, please follow these steps:
- Update the
Gemfile
so that it reflect the latest version of Fastlane. - Run
bundle update
. - Test to see that Fastlane is working correctly by checking the version by running
fastlane --version
. - If the version is not as expected, you may have multiple versions of Fastlane installed. To remedy, run
gem uninstall fastlane
and choose to uninstall the older version. Gemfile.lock
andGemfile
will have changed. Commit the changes to the repository.
Fastlane (iOS Builds)
Creating a new lane
-
XCode 8 gives the option to "Automatically manage signing."  Fastlane will be managing the signing.
-
In
fastlane/Appfile
modify to include a new lane.
for_lane :build_apptree do
team_id 'U4U2747VWL'
app_identifier 'com.apptreesoftware.revolution'
apple_id<EMAIL_ADDRESS>end
- In
fastlane/Fastfile
modify to include a new lane. Make certain that the scheme, provisioning profile name, team id, info plist matches the values in the XCode project.
lane :build_apptree do |options|
ENV["SCHEME"] = "AppTreeRevolution"
ENV["SIGH_PROVISIONING_PROFILE_NAME"] = "AppTree Revolution"
ENV["SIGH_TEAM_ID"] = "U4U2747VWL"
ENV["INFO_PLIST"] = "../Skins/AppTreeRevolution/Info.plist"
ENV["VERSION_NUMBER"] = (sh "./get_version_number.sh #{ENV["INFO_PLIST"]}").strip
ENV["BUILD_NUMBER"] = (sh "git rev-list --count HEAD").strip
sh "./set_build_number.sh #{ENV["INFO_PLIST"]}"
ENV["BUILD_NUMBER_OUTPUT_STRING"] = File.read(Dir.pwd + '/current_build')
puts "Now Building #{lane_context[SharedValues::LANE_NAME]}: #{ENV["BUILD_NUMBER_OUTPUT_STRING"]}"
build(
configuration: "Release",
scheme: ENV["SCHEME"],
adhoc: false,
export_method: "enterprise",
groups: ['apptree-testers']
)
end
- Create a file at
fastlane/.env
and populate it with the following contents. This also needs to be done on the build server as the file is not currently checked into the repository.
CRASHLYTICS_API_TOKEN = <Redacted>
CRASHLYTICS_BUILD_SECRET = <Redacted>
- Try a build on your local machine and see if everything is working.
Points of Failure
Cocoapods
bundle exec pod install
may fail. If this happens make sure cocoapods is updated to the latest release version. Check the Podfile to see if it is properly formatted.
Sigh
Always look for Found 1 matching profiles(s)
. If Sigh does not find a profile and is forced to create one, something is wrong. Make certain that the provisioning profile name you have specified in the Fastfile matches the one in the developer portal.
+-------------------------------------+--------------------------------+
| Summary for sigh 1.11.1 |
+-------------------------------------+--------------------------------+
| adhoc | false |
| development | false |
| skip_install | false |
| force | false |
| app_identifier | com.apptreesoftware.revolution |
| username |<EMAIL_ADDRESS>|
| team_id | U4U2747VWL |
| team_name | AppTree Software LLC |
| provisioning_name | AppTree Revolution |
| ignore_profiles_with_different_name | false |
| skip_fetch_profiles | false |
| skip_certificate_verification | false |
+-------------------------------------+--------------------------------+
[07:45:44]: Starting login with user<EMAIL_ADDRESS>[07:45:46]: Successfully logged in
[07:45:46]: Fetching profiles...
[07:45:53]: Found 1 matching profile(s)
[07:45:53]: Downloading provisioning profile...
[07:45:54]: Successfully downloaded provisioning profile...
[07:45:54]: Installing provisioning profile...
/Users/apptree/.jenkins/jobs/iOS_AppTree/workspace/InHouse_com.apptreesoftware.revolution.mobileprovision
[07:45:54]: Setting Provisioning Profile type to 'enterprise'
Gym
There are two phases to the process, the first starts by building all of the 3rd party dependencies. The second phase builds all of your files.
Periodically, these builds will fail for one reason or another. Sometimes the build will succeed the second time. Sometimes the machine requires a reboot.
Other times the build will always fail. The best way to troubleshoot is to try and do an Archive build in XCode on the build machine and see if any errors can be debugged there.
Post Build
First, the build will be uploaded to Crashlytics. If the build stops and asks for credentials, then it is missing the file in fastlane/.env
.
Second, if it is an App Store build, it will attempt to upload to the iTunes App Store. This process may fail for a number of reasons but the error messages are usually very descriptive.
Third, it will rename the file with the current version and build numbers and send a success message to slack. If the build fails for any reason it will not rename the file.
If the build was successful Jenkins will take over and perform any post-build activities, such as uploading to Dropbox.
Jenkins
Creating a New job
The easiest way to create a new job is to go to an existing job and select "Copy Project."
The location of the source files of any job is in ~/.jenkins/jobs/<Job Name>/workspace/
Build Server Maintenance
Android Builds Failing
Sometimes, Android builds will fail consistently. This is due to the Java daemon crashing. To fix this, reboot the machine.
Fan Control
smcFanControl is an installed utility that will allow you to control the fan if the build server is getting too hot.
General Maintenance
Onyx is an installed utility that will help to clear the system caches so that the system will run better. Once in Onyx, run the default steps in "Automation."
Documentation
This documentation is currently being generated from Markdown and Mkdocs. The documentation directory is on the build server at /Users/apptree/Docs/apptreesoftware.github.io
.


Last Published: Fri Aug 21 09:03:34 CEST 2009
Project Documentation
Surefire Report
Surefire Report
Summary
Tests
Errors
Failures
Skipped
Success Rate
Time
0
0
0
0
0%
0
Note: failures are anticipated and checked for with assertions while errors are unanticipated.


THE WITCH OF FRADDAM AND THE ENCHANTER OF PENGERSWICK.
AGAIN and again had the Lord of Pengerswick reversed the spells of the Witch of Fraddam, who was reported to be the most powerful weird woman in the west country.  It is said that she betook herself to Kynance Cove, and that there she raised the devil by her incantations, and that she pledged her soul to him in return for the aid he promised. The enchanter's famous mare was to be seduced to drink from a tub of poisoned water placed by the road-side, the effect of which was to render her in the highest degree restive, and cause her to fling her rider. The wounded Lord of Pengerswick was, in his agony, to be drenched by the old witch, with some hell-broth, brewed in the blackest night, under the most evil aspects of the stars; by this he would be in her power for ever, and she might torment him as she pleased. The devil felt certain of securing the soul of the witch of Fraddam, but he was less certain of securing that of the enchanter. They say, indeed, that the sorcery which Pengerswick learned in the East was so potent, that the devil feared him. However, as the proverb is, he held with the hounds and ran with the hare. The witch collected with the utmost care all the deadly things she could obtain, with which to brew her famous drink. In the darkest night, in the midst of the wildest storms, amidst the flashings of lightnings and the bellowings of the thunder, the witch was seen riding on her black ram-cat over the moors and mountains in search of her poisons. At
length all was complete--the horse-drink was boiled, the hell-broth was brewed. It was in March, about the time of the equinox; the night was dark, and the King of Storms was abroad. The witch planted her tub of drink in a dark lane, through which she knew the Lord of Pengerswick must pass, and near to it she sat, croning over her crock of broth. The witch-woman had not long to wait; amidst the hurrying winds was heard the heavy tramp of the enchanter's mare, and soon she perceived the outline of man and horse defined sharply against the line of lurid light which stretched along the western horizon. On they came; the witch was scarcely able to contain herself--her joy and her fears, struggling one with the other, almost overpowered her. On came the horse and her rider they neared the tub of drink; the mare snorted loudly, and her eyes flashed fire as she looked at the black tub by the road-side. Pengerswick bent him over the horse's neck and whispered into her ear; she turns round, and flinging out her heels, with one kick she scattered all to the wild winds. The tub flew before the blow; it rushed against the crock, which it overturned, and striking against the legs of the old Witch of Fraddam, she fell along with the tub, which assumed the shape of a coffin. Her terror was extreme she who thought to have unhorsed the conjurer, found herself in a carriage for which she did not bargain. The enchanter raised his voice and gave utterance to some wild words in an unknown tongue, at which even his terrible mare trembled. A whirlwind arose, and the devil was in the midst of it. He took the coffin in which lay the terrified witch high into the air, and the crock followed them. The derisive laughter of Pengerswick, and the savage neighing of the horse, were heard above the roar of the winds. At length, with a satisfied tone, he exclaimed, "She is settled till the day of doom," gave the mare the spurs, and rode rapidly home.
The Witch of Fraddâm still floats up and down, over the seas, around the coast, in her coffin, followed by the crock, which seems like a punt in attendance on a jolly-boat. She still works mischief, stirring up the sea with her ladle and broom till the waves swell into mountains, which heave off from their 'crests so much mist and fciam, that these wild wanderers of the winds can scarcely be seen through the mist. Woe to the mariner who sees the witch !
The Lord of Pengerswick alone had power over her. He had but to stand on his tower, and blow three blasts on his trumpet, to summon her to the shore, and compel her to peace.


Clue 5: Count the strong army that remains. Where there are no strong they simply don't exist.
Hopefully that should help you solve step 1
Decker16-Feb-19 09:15 AM
I'm crying because puzzle is not solveable without hints. No one able to guess that he should:
1. Divide article into headers / pillars.
2. Find in each fragment from [1]
3. Count "army" in each strong ) What is the army, number of capital letters or number of words with capital letters?
It's crazy task )
Decker16-Feb-19 09:39 AM
And, for example, this it's a header ... but it's strong too ))
And this looks like "strong army", but may be it's weak ))) bcz it's using  instead of  ))
The seed for step 1 is a series of numbers, separated by a space. x x xx xx x
linuxcaptain16-Feb-19 10:31 AM
8 7 17 1 5
mazyar_lp16-Feb-19 10:39 AM
@Decker where is your puzzle that you promised ? These puzzles are so random
Too much time need for spare and end of day you realize one hint is missing
cryptocat16-Feb-19 10:43 AM
Seriously there is nothing missing. Just count the bold words between each heading. If there are none then move onto the next section...(edited)
mazyar_lp16-Feb-19 10:44 AM
@cryptocat before this hint .i know now it is easy
1
cryptocat16-Feb-19 10:48 AM
I'll be providing no more clues for step 2 and 3 for at least 1 full day, if it is not solved.
mazyar_lp16-Feb-19 10:52 AM
@cryptocat no offense i am just frustrated
Decker16-Feb-19 10:58 AM
i'm always thinking that is 7 or 9 headers in article ... but last hint shown that headers number is 6 )
btw ... somebody grabbed this RPnepqhNRQvvMR2P4BAVdG85d4g2uoXZQJ ...
@mazyar_lp sorry, haven't time for this yet ... i think i will post it before Monday ...
cryptocat16-Feb-19 11:00 AM
Ok someone solved step 1!
mazyar_lp16-Feb-19 11:03 AM
@Decker i am waiting
cryptocat16-Feb-19 11:10 AM
Who got it? It has to be someone in here after my last clue...
For step 2 consider "Byzantine". For step 3 make step 2 secure (you know what to do )
Decker16-Feb-19 11:25 AM
@cryptocat 1st serie of numbers in x x xx xx x is a 8, right? these game engine ported to blockchain in a week 8 words. or 1 st serie is 0, bcz between header #1 and header #2 thes is 0 strong words?
and 5 series of numbers total? i'm correctly understand last hint?
cryptocat16-Feb-19 11:26 AM
strong/bold
I stated before it includes everything in the article, from top to bottom.
But yes, you are only missing the first number
and it is not 8
Decker16-Feb-19 11:32 AM
so, 0 and 8 ? or FEBRUARY 12, 2019 MYLO BLOCKCHAIN, KOMODO is counted too?
cryptocat16-Feb-19 11:33 AM
FEBRUARY 12, 2019 MYLO BLOCKCHAIN, KOMODO is counted too?
Decker16-Feb-19 11:33 AM
cryptocat16-Feb-19 11:33 AM
top to bottom
and it is between a heading!
mazyar_lp16-Feb-19 11:33 AM
linuxcaptain16-Feb-19 11:34 AM
arent these extra hints @cryptocat ... this is not fair to answer @Decker s questions
cryptocat16-Feb-19 11:34 AM
Someone has already solved step 1...I want you to get along there too
mazyar_lp16-Feb-19 11:34 AM
It was solved the first one
Decker16-Feb-19 11:37 AM
@linuxcaptain as he answers in public and as step1 is solved anyway - i think it's fair ...
you can read answers too ...
cryptocat16-Feb-19 11:38 AM
I think for next puzzle I will create only 1 step
linuxcaptain16-Feb-19 11:39 AM
its not fair for theperson who solved it without these @Decker
mazyar_lp16-Feb-19 11:40 AM
Maybe You should just use the article text . Many possibilities in this way .tnx btw for the puzzle
linuxcaptain16-Feb-19 11:40 AM
+ answering your questions helps your own logic and tactic... maybe i was stuck on something else and i already realized that "FEBRUARY 12, 2019 MYLO BLOCKCHAIN, KOMODO is counted too? " counted too....
cryptocat16-Feb-19 11:42 AM
Ok I think that is fair. Maybe we can agree on a certain set of rules from now on?
linuxcaptain16-Feb-19 11:42 AM
Maybe we can agree on a certain set of rules from now on <--
2
cryptocat16-Feb-19 11:44 AM
I think KMD members are great founders of this new #cryptopuzzle craze, so let's make sure it continues right.
Decker16-Feb-19 11:45 AM
anyway, sorry for questions guys ... i thought if puzzle author counts that question is incompatible with "rules" or answering on it will not fair - he just wouldn't answer.
1
linuxcaptain16-Feb-19 11:46 AM
ok. no problem decker ... but its a good point to set some rules on the game i think
2
to avoid further "bad" situations
because if it gets bigger
these mistakes will harm the komdo community
Decker16-Feb-19 12:15 PM
Congratz! Somebody solved step 3 )
For step 2 it was 6 8 21 53 6 ...
cryptocat16-Feb-19 12:16 PM
Nice!
Decker16-Feb-19 12:17 PM
And what was step 3? SHA256 + something ?
cryptocat16-Feb-19 12:19 PM
If anyone wants to know I will DM you. I'll not post it here just yet
mazyar_lp16-Feb-19 12:20 PM
What was Byzantine?
1
cryptocat16-Feb-19 12:33 PM
Looking at the winning address, the same person who solved mine is the same person who solved @sφldat's puzzle on 5th February
But they are very quiet
Decker16-Feb-19 12:34 PM
We have hidden Puzzle Master here )
cryptocat16-Feb-19 12:34 PM
Someone has a quantum computer!
Decker16-Feb-19 12:34 PM
So, whoever you are - my respect! )
cryptocat16-Feb-19 12:35 PM
A quantum computer as their brain
mazyar_lp16-Feb-19 12:53 PM
From Where comes 21??(edited)
Strob16-Feb-19 01:29 PM
OH boy I could never guess we had to count the words... That was too hard in the way that there was too many possibilities It hink... Why the winner is hiding???? Can't wait to know what was the Byzantine about!
Next puzzle will be to find who the winner is lol!
First hint: he is the heart, the brain....
mazyar_lp16-Feb-19 02:15 PM
Byzantines talked roman . Just convert to roman
Decker16-Feb-19 02:16 PM
Ready for puzzle? )
mazyar_lp16-Feb-19 02:17 PM
Yes sir
Decker16-Feb-19 02:17 PM
Catz Puzzle
Oh no ... this was a bounty for puzzle ... aaaarrghh ... he ate it ...(edited)
mazyar_lp16-Feb-19 02:19 PM
Puzzle with no hints true?
Decker16-Feb-19 02:21 PM
No hints. The cat ate part of paper wallet. That's all )
mazyar_lp16-Feb-19 02:24 PM
Yeay
Decker16-Feb-19 02:34 PM
Our ghost solver solve it too fast )))
Congratz!
p.s. Seems this was too easy for you )
mazyar_lp16-Feb-19 02:37 PM
Why
I was away pc
How much was price?
Decker16-Feb-19 02:38 PM
33.3 KMD ...
mazyar_lp16-Feb-19 02:38 PM
Tnx any way
Maybe when he or she sleeps post the puzzles(edited)
Decker16-Feb-19 03:04 PM
Ok, guys ... as our ghost solver solved it too fast - will be additional prize 11.1 KMD for first user who post here privkey from paperwallet and full steps he used to find a solution. Even if this person will be our ghost solver again, it will be good for all to know how to solve this. So, Catz Puzzle is still alive - https://discordapp.com/channels/412898016371015680/542089680544595998/546334352926179373 . I will not fund the address with 11.1 KMD to prevent transfer funds without posting a solution here.(edited)
mazyar_lp16-Feb-19 03:17 PM
Can we use /n in agama mobile wallet?
New line wif?
Decker16-Feb-19 03:21 PM
No new lines needed. You'll just need to find a WIF.
mazyar_lp16-Feb-19 03:29 PM
Tnx
LeFevre16-Feb-19 03:50 PM
Dang just woke up and looks like I missed the party
Decker16-Feb-19 03:51 PM
Cat is awaiting you )
LeFevre16-Feb-19 03:52 PM
Had a feeling that cryptocals was gonna get solved when I slept


| Malcolm Reynolds |
Space Assessment Coord. |
Administration |
- 555-03K-6464
-<PHONE_NUMBER>
-<EMAIL_ADDRESS>|
| Asst. Prof. Hoban Washburne |
Head of Steering Committee |
Science and Engineering |
-<PHONE_NUMBER>
-<PHONE_NUMBER>
-<EMAIL_ADDRESS>|
| Kaylee Frye |
IT Technical Specialist IV |
Technology & Infrastructure |
-<PHONE_NUMBER>
-<PHONE_NUMBER>
-<EMAIL_ADDRESS>|
| Prof. Zoe Alleyne Washburne |
Head of Acquisitions |
Acquisitions |
-<PHONE_NUMBER>
-<PHONE_NUMBER>
-<EMAIL_ADDRESS>|
| ...Many more rows... |


ELECTRA GLIDE IN BLUE (director: James William Guercio; screenwriter: Robert Boris/story by Rupert Hitzig & Boris; cinematographer: Conrad Hall; editors: Jim Benson/John F. Link/Jerry Greenberg; cast: Robert Blake (John Wintergreen), Elisha Cook Jr. (Willie), Royal Dano (Coroner), Billy "Green" Bush (Zipper Davis), Mitch Ryan (Detective Harve Poole), Jeannine Riley (Jolene), David J. Wolinski (VW Bus Driver), Peter Cetera (Zemko); Runtime: 113; United Artists; 1973)
Reviewed by Dennis Schwartz
James William Guercio was the producer of Chicago albums in the Seventies, and this is his only directorial effort. It's a "message" film with "message songs" playing in the background, as its ultimate message is that it is better to live in peace and make the world a better place to live in then to blindly obey authority figures. It's main aim is to delve into the character of a short Arizona motorcycle cop, who is the same height as Alan ladd (five feet tall). His name is John Wintergreen (Blake), who dreams of being a homicide detective because they earn their pay by using their brains and it's a glory job. When he briefly attains that dream, it soon sours and he's left looking inside himself for answers. The film's other aim is to show the lost dreams and violence that fills America's wastelands and wounds those living there.
The main rivals of the cops are the hippies, as a clash over culture and values exists. The elderly are shown as a forsaken people, who are dying from loneliness and from failed dreams. The film is quirky, atmospheric, interesting in its character study, and is successful as a black comedy. Robert Blake as the protagonist is perfect for the part. It's main flaw is that its messages are too simplistic and the story suffers, at times, from a heavy-handed direction.
As the film opens, motorcycle cop Wintergreen proves to be a stud while in bed with the local barmaid, the tall and buxom Jolene (Riley). On the job with his corrupted partner, Zipper (Bush), they patrol the hot desert roads looking for speeding cars. They soon come across a hippie in a VW wagon and Zipper goes on a power trip to harass the hippie and plant drugs on him. Zipper prefers to remain in the shade for most of his tour of duty, as Wintergreen prefers to play the game of being the tactful motorcycle cop making the roads safe from speeders.
Wintergreen sees his big chance to show that he's of homicide detective material, when the motorcycle cops come across a raving lunatic in the desert, a harmless recluse named Willie (Cook). He tells them that his only friend Frank is dead in his shack and that he had $5,000 hidden there. When Wintergreen investigates he does it by the book the way he imagines a detective would, and he finds a shotgun, shell fragments in a loaf of bread and pork chops on the fire which he uses to determine the time the death occurred. He suspects murder because the wound was in the chest and not the head. The coroner (Dano) says it's suicide and wishes to save the county the expense of an unnecessary autopsy. But when pompous homicide detective, Harve Poole (Ryan), arrives on the scene, he suspects foul play and when the thorough investigation is completed they find that there is another bullet in Frank. Upon further investigation of his shack they find a supply of red speed pills and that the drug money is missing. The fingerprints of a hippie drug dealer, Zemko (Cetera-a member of the Chicago band), are all over the shack.
Now with a murder investigation on the way, Harve takes Wintergreen under his wing to teach him how to be a detective. He also makes him his driver and impresses the young cop by showing him how to go about conducting an investigation, saying the most important thing isn't always the facts but what hits you inside. Wintergreen soon gets disillusioned with Harve when he observes his unethical methods of getting info on Zemko's whereabouts, as he beats the info out of the commune members. The relationship breaks completely off when Harve realizes that Wintergreen has learned about his women problems and can't be trusted to be part of the old-boy cop network. Soon Wintergreen is back on motorcycle patrol with his dishonest partner, Zipper.
The film has plenty of action scenes, culminating with a motorcycle chase; a good twist in the murder mystery story; and, what it does best is show how lonely people could be and how this is sometimes the driving force behind the false lives they lead. Because of the excellent photography, via Conrad Hall, of the Monument Valley desert region and the apt depictions of the barren inner landscapes of the individual's trapped by their lies, this film comes through as a powerful story of an individual who is done in by the corruption of society and individuals.
It sets a thumping mood throughout, especially, with scenes of the band called Madura playing a concert to a desert audience, while the Robert Blake character was at that point in the story trying to find for himself what is important in his life so he could live with dignity and not fall by the side of the road like all the other disillusioned people he met.
REVIEWED ON 8/18/2001 GRADE: B +
Dennis Schwartz: "Ozus' World Movie Reviews"
http://www.sover.net/~ozus
<EMAIL_ADDRESS>© ALL RIGHTS RESERVED DENNIS SCHWARTZ
========== X-RAMR-ID: 29194 X-Language: en X-RT-ReviewID: 244159 X-RT-TitleID: 1006508 X-RT-SourceID: 873 X-RT-AuthorID: 1315 X-RT-RatingText: B+
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


public class DataSet
extends java.lang.Object
| Constructor and Description |
|---|
DataSet(java.lang.String pathToCSV)
Creates a DataSet from the data in a CSV file.
|
| Modifier and Type | Method and Description |
|---|---|
int |
getInputNumber()
Get the number of inputs for the function represented by the DataSet
|
java.lang.Double[] |
getInputsForRow(int rowNumber)
Get the input values for a specific row.
|
int |
getNumberOfEntries()
Get the number of rows in the DataSet
|
int |
getOutputNumber()
Get the number of outputs for the function represented by the DataSet
|
java.lang.Double[] |
getOutputsForRow(int rowNumber)
Get the output values for a specific row.
|
java.lang.Double |
getWeightForRow(int rowNumber)
Get the weight for a specific row.
|
boolean |
isWeighted()
Check whether the DataSet includes a weight column.
|
public DataSet(java.lang.String pathToCSV)
- There must be at least 1 input column and at least 1 output column - All input columns must come before all output columns - You can add an optional weight column as the last column - All rows must have numeric values for each header - All rows must align with the columns defined by the header row
pathToCSV
- The path to the CSV file.public int getInputNumber()
public int getOutputNumber()
public int getNumberOfEntries()
public boolean isWeighted()
public java.lang.Double[] getInputsForRow(int rowNumber)
rowNumber
- The row to retrieve the inputs from. Rows are indexed starting from 0.public java.lang.Double[] getOutputsForRow(int rowNumber)
rowNumber
- The row to retrieve the outputs from. Rows are indexed starting from 0.public java.lang.Double getWeightForRow(int rowNumber)
rowNumber
- The row to retrieve the weight from. Rows are indexed starting from 0.


{% extends "layout.html" %} {% block content %} About Us Van Cao Computer Science Student Sleep. Eat. Code. Antisocial The paragraph below is just a random paragraph. I am not a good writer, ok? Duyen Nguyen Software Engineering Student 404 error - Nothing to show The paragraph below is just a random paragraph. I am not a good writer, ok? {% endblock content %}
Sleep. Eat. Code. Antisocial
The paragraph below is just a random paragraph. I am not a good writer, ok?
404 error - Nothing to show


This example demonstrates revealing an image using another image as the
mask. The mask is created by drawing a
shape, and then caching the shape to make an image with an alpha
channel. It is then applied to the image as
an mask using the AlphaMaskFilter
filter. Another copy of
the image is added below with a
BlurFilter
and ColorMatrixFilter
to make the
effect cooler.


Soak Value |
Wounds |
Strain |
Defense |
|||
| Threshold | Current | Threshold | Current | Melee | Ranged |
| Brawn | Agility | Intellect | Willpower | Cunning | Presence |
| 0 | 0 | 0 | 0 | 0 | 0 |
| Skill Name | Dice Pool |
| Name | Skill | Dam | Crit | Range | Enc | HP | Price | Rarity | Special |
| Name | Rank | Page | Ability Summary |
| Name | Rank | Page | Ability Summary |
| Name | Skill | Dam | Crit | Range | Enc | HP | Price | Rarity | Special |


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--com.milk.uberchat.LocusTracker
This class keeps useful state for a locus, like keeping a log of
messages. LocusTracker
relies on its creator to hand it
messages; it doesn't actually hook itself up to anything.
| Field Summary | |
private ListenerList |
myListeners
the listeners to send messages to |
private ChatLocus |
myLocus
the locus that this object tracks |
private int |
myMaxMessages
the maximum number of messages to keep in the log |
private java.util.Vector |
myMessages
the messages in the log |
private java.lang.Object |
mySynch
the (intentionally-private) object to use for synchronization |
| Constructor Summary | |
LocusTracker(ChatLocus locus,
int maxMessages)
Construct a LocusTracker object for a particular locus. |
| Method Summary | |
void |
addListener(MessageListener listener)
Add a listener. |
void |
addMessage(MessageEvent message)
Add a message to the log. |
boolean |
hasListeners()
Return true if this tracker has any listeners. |
void |
removeListener(MessageListener listener)
Remove a listener that was previously added with addListener() . |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
private ChatLocus myLocus
private int myMaxMessages
private java.util.Vector myMessages
private ListenerList myListeners
private java.lang.Object mySynch
| Constructor Detail |
public LocusTracker(ChatLocus locus, int maxMessages)
LocusTracker
object for a particular locus.
locus
- the locus for this trackermaxMessages
- the maximum number of messages to keep in the log| Method Detail |
public void addListener(MessageListener listener)
LocusTracker
, but first it will
get sent all the logged messages.
listener
- the listener to addpublic void removeListener(MessageListener listener)
addListener()
.
listener
- the listener to removepublic void addMessage(MessageEvent message)
message
- the message to addpublic boolean hasListeners()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Github Project - Version 2.5.0Created & Maintained by Gary Hepting
A responsive HTML5, CSS & Javascript framework.
Add Groundwork to your rails project in a snap.


Welcome to Spinning Up in Deep RL!¶
- Spinning Up as a Deep RL Researcher
- Key Papers in Deep RL
- 1. Model-Free RL
- 2. Exploration
- 3. Transfer and Multitask RL
- 4. Hierarchy
- 5. Memory
- 6. Model-Based RL
- 7. Meta-RL
- 8. Scaling RL
- 9. RL in the Real World
- 10. Safety
- 11. Imitation Learning and Inverse Reinforcement Learning
- 12. Reproducibility, Analysis, and Critique
- 13. Bonus: Classic Papers in RL Theory or Review
- Exercises
- Benchmarks for Spinning Up Implementations


Are the drapes safe from the cat" Cats rip drapes," said Fran. They were the best drapes she had. They were red, with lace on the ends. Zack said, "The drapes are safe. The cat is tame." Fran trusted Zack. They had a date. She went to the lake with him. The cat did not rip the drapes. But it bit the shade!
in-context


Nolte: ABC News, Amy Robach Respond to Project Veritas Bombshell
ABC News and Amy Robach released statements responding to James O’Keefe’s Project Veritas exposé that revealed bombshell video of Robach expressing anger over ABC News “quashing” her reporting on Jeffrey Epstein.
by John NolteHere’s the full statement from ABC News:
At the time, not all of our reporting met our standards to air, but we never stopped investigating the story. Ever since we’ve had a team on this investigation and substantial resources dedicated to it. That work has led to a two-hour documentary and 6-part podcast that will air in the new year.
Here is the pertinent part of Robach’s statement:
As a journalist, as the Epstein story continued to unfold last summer, I was caught in a private moment of frustration. I was upset that an important interview I had conducted with Virginia Roberts didn’t air because we could not obtain sufficient corroborating evidence to meet ABC’s editorial standards about her allegations.
On Tuesday morning, O’Keefe released video of Good Morning America co-host Robach, on set, voicing her anger at ABC News for spiking her 2015 reporting on Epstein, the well-heeled Democrat donor who died mysteriously in prison after being arrested for various sexual crimes, including trafficking.
She says Epstein accuser Virginia Guiffre had the goods, and then some, including photographs. Robach names former President Bill Clinton, Alan Dershowitz, and Prince Andrew. All three deny any wrongdoing.
“I’ve had this interview with Virginia [Guiffre],” Robach says of the year 2015. “We would not put it on the air. I was told, ‘Who’s Jeffrey Epstein? No one knows who that is.  “She had pictures. She had everything.”
Of Prince Andrew, she says ABC “quashed the story” out of the fear the Palace would not allow the network to interview “Kate and Will.”
“It was unbelievable what we had. We had Clinton. We had everything.”
Robach says Attorney Brad Edwards told her that “there will come a day when we will realize Jeffrey Epstein was the most prolific pedophile this country has ever known.”
In the video below, O’Keefe points out how far apart the candid video is from Robach’s ridiculous statement. He also promises more to come:
Robach’s statement is absurd. In a moment of candor, she does not appear to be bragging; she does not come off like someone who is puffing herself up to impress someone else. And her frustration is not aimed at NOT being able to nail down the story. She’s furious because she HAD the story, and the revelations coming out three years after she had it confirm her reporting… and ABC News “quashed” it.
That’s her word… “quashed.”
And why, when it comes to a friend of the Clintons, when it comes to a high-profile Democrat donor, are we supposed to believe the same ABC News that was happy to spend three years pushing the totally bogus and never confirmed Russia Collusion Hoax, suddenly had an attack of ethical journalism over an already-convicted sex offender?
Well, no one believes that and shame on Amy Robach for toeing the company line. Shame on ABC News for putting “Will and Kate” above all the Epstein victims who might have been warned off years ago by this reporting, and don’t ever let yourself forget that ABC is owned by the Walt Disney Company, and that Disney will always protect the Clintons, but not your children.
Let’s not forget that 2015, the year ABC quashed this, Hillary Clinton was gearing up her presidential run.
Let’s not forget Clintonista George Stephanopoulos is the big star at ABC News.
And let’s not forget that during some of this same time, NBC was covering up for Clinton friend and big time Democrat donor Harvey Weinstein.
Follow John Nolte on Twitter @NolteNC . Follow his Facebook Page here .


The best stores for Black Friday deals
Should you shop Target, Walmart, Best Buy, Kohl's or others?
by John MatareseThe Black Friday ads are now out, which means it's time to start preparing for shopping Thanksgiving night or (a bit more civilized) the Friday after.
But even if you are a die-hard Black Friday shopper, very few people enjoy fighting crowds at three or four different stores.
SAN DIEGO, CA - NOVEMBER 25: Customers shop for electronics items during 'Black Friday' at a Best Buy store on November 25, 2011 San Diego, California. Thousands of consumers are queuing at various stores across the nation to take advantage of 'Black Friday' deals as the holiday shopping season begins in America. (Photo by Sandy Huffaker/Getty Images)
So if you have to choose just one, which should it be? It turns out there is a store for every need, but you need to know what you are looking for.
So with the help of DealNews.com and WalletHub, we found some of the best places to save the most on Black Friday.
Which stores have the best deals on which items
Macy's: Great for clothing and $8 small kitchen appliances, with some items free after mail-in rebate. Be sure to bring bonus savings coupons, such as $20 off a $50 item.
JC Penney: Also good for clothing, but it really shines with bedding and home goods.
Kohl's: One of the top choices of Black Friday shoppers for its bonus Kohl's Cash rebates all weekend, along with great deals on clothing, jewelry and some toys.
Target: Great deals on electronics, especially TVs, and toys, where it has recently expanded its toy department to lure former Toys "R" Us shoppers. Gift cards with Apple products.
Walmart: The best store for off-brand TVs at super low prices, along with gaming consoles and toys. Gift cards with Apple products.
Best Buy: Tops for name-brand 4K TVs (Sony, Samsung, LG) and laptops. Gift cards with Apple products.
The Apple Store: One of the rare days to find a deal at the Apple Store, but you may find better iPhone and iPad deals at Walmart, Best Buy, and Target on Black Friday. (See above)
Amazon: This one is tricky because Amazon does not have a traditional Black Friday ad. Deal News says Amazon requires patience, as you have to watch their lightning deals. Overpay and you'll say "doesn't that stink?"
The good news: You can set up Amazon price alerts at sites like Honey, and Camel Camel Camel.

Don't Waste Your Money" is a registered trademark of Scripps Media, Inc. ("Scripps").
Like" John Matarese Money on Facebook
Follow John on Twitter (@JohnMatarese)
For more consumer news and money saving advice, go to www.dontwasteyourmoney.com


Gboard: Google's Android keyboard suggests suitable GIFs for emojis -
by Efe UdinGboard: Google’s Android keyboard suggests suitable GIFs for emojis
4 (80%) 2 votes
Google is constantly improving its services which makes it absolutely important for Android users. According to the latest reports, the company has updated Gboard. Now, when we type using Gboard, it proposes appropriate GIF animations on request for your written emojis. This makes writing with the Google keyboard even more interactive.
When you access the emoji keyboard, we now have a new “Suggestions” bar that prompts you to “Tap an emoji to get suggestions.” Selecting a character will load related GIFs and stickers for you to insert into any conversation.
Suggests GIF / Sticker content for you when you select emojis on the emoji keyboard.
You can swipe across Gboard translate results to chose an appropriate sticker. If there is no result for your request, you get the response “No suggestions here… try a different emoji”. At the top-right of the display, you can access Gboard’s main Preferences page. Here, you can disable “Emoji browsing suggestions”
As of now, this feature is available on Gboard 8.8 beta. The emoji translator feature is not widely available for now thus not every user can access it. If you can not access the feature, just be patient, it will eventually become active.


{% raw %}{% extends "account/base_account.html" %} {% load bootstrap4 %} {% block account_title %}Change Password{% endblock %} {% block account_css_class %}page-account-password-reset-from-key{% endblock %} {% block account_content %}
The password reset link was invalid, possibly because it has already been used. Please request a new password reset.
{% else %} {% if form %} {% else %}Your password is now changed.
{% endif %} {% endif %} {% endblock %} {% endraw %}


When programming, there are many ways to get the outcome you want. It's simple when you want your program to do a very small task that doesn't require more than using a built-in class for that language. With Object Oriented Proframming(OOP), you have the ability to create programs that are quite extensive and can carry out many different programs for different scenarios.
When coding using the built in Classes, you can sometimes share the methods from other Classes in the one you are currently working with. This is fine. But as the program becomes more and more complex, with many developers working on it, it may be much more useful to work with new Classes that have not only Semantic meaning but can also have methods created for use within just that Class. This prevents future bugs from occuring because a method for one Class was used improperly and is now casuing havoc on the rest of your program.
Code becomes more maintainable. This is because objects are self contained within each Class. The reusability of ojects becomes important. A Class used in one program can be ported to another program if they are to be used in a similar fashion. Your programs are also easily scaled as the Classes can be updated to contain new algorithms and newer technology.
Classes keep order within your program. If you want items to be within a certain family, you can create a Class to rule them. Create methods for them and only them.
class Ball
attr_accessor :size, :sport, :color
def initialize(size, sport, color)
@size = size
@sport = sport
@color = color
end
def which_sport
puts "The sport you can play with this is #{@sport}"
end
def what_size
puts "The size of this ball is #{@size}"
end
def what_color
puts "The color of this ball is #{@color}"
end
end
Classes are created using the class keyword. As you can see, this Class if for all manner of balls for various sports. You can then initialize the Class with any attributes you like. Then define specific methods for only your Class. These methods are called Instance Methods. You can also create Instance variables. This variables can only be used within this Class. They cannot be accessed by any objects in any other Class and so it is protected by manipulation from elsewhere in the program.


?L.
Catasus
Diciembre
2003
Province
of
Pinar
del
Rio
Vicinity
of
Pinar
del
Rio
/L>'
IAš-?
}
'└&▒C└LL.
N.
L.
Britton
E.
G.
Britton
Oolleotors
0.8.
Gaqer
Sept.
6-12,18IO
THE
NEW
YORK
BOTANICAL
GARDEN
EXPLORATION
OF
CUBA
1604956
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


Product Categories
Check Out The Latest Products On Our Website. Exciting Discounts, Hurry!!
Choose The Desired Product Image To View The Product Details.


The Game of Life, also known simply as Life, is a cellular automaton devised by the British mathematician John Horton Conway in 1970.
The Game of Life is turing complete.
The Game of Life is undecidable, which means that given an initial pattern and a later pattern, no algorithm exists that can tell whether the later pattern is ever going to appear.
This is a corollary of the halting problem of a turing system: the problem of determining whether a given program will finish running or continue to run forever from an initial input.
Rules -
- live cell with two or three live neighbours survives.
- Any dead cell with three live neighbours becomes a live cell.
- All other live cells die in the next generation.


--- layout: default title: "Home" ---
The LLF honors those unsung heroes whose efforts might otherwise go unnoticed. The LLF exists because of a need to recognize and promote the achievements of those members of the radio, music and entertainment industries and to help secure their place in history.
Over the years The Living Legends Foundation, through our annual awards banquet, has honored dozens of the most notable stars and executives in the entertainment business. These are the people who built the foundation of the industry.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Itaque, dolor vitae praesentiu.


-
‘If masterpiece means anything, it means Cat’s Cradle’: the Kurt Vonnegut novels everyone should read
https://www.theguardian.com/books/2022/nov/11/cats-cradle-kurt-vonnegut-novels-everyone-should-read
On his centenary, there are many glories to honour, not least Slaughterhouse-Five. But his best book is this pocket epic in which the world ends to [...]
-
Trump is on the defense as he prepares for expected 2024 announcement | CNN Politics
https://edition.cnn.com/2022/11/15/politics/trump-announcement-2024/index.html
Should Donald Trump announce his third presidential bid on Tuesday, as is widely expected, he will begin the next phase of his political career under [...]
-
Gamma-ray Bursts Don't Always Signal the Birth of a Black Hole, Sometimes It's Just a New Neutron Star
Astronomers observed a gamma-ray burst in a distant galaxy that heraled the birth of a new magnetar -- a highly magnetic neutron star.
-
How FTX Went Bankrupt | What Went Wrong | WSJ
Former CEO Sam Bankman-Fried was hailed as a savior of crypto before FTX’s implosion.Cryptocurrency exchange FTX was seen as a survivor in a [...]
-
Booster 7 14 Engine Static Fire | SpaceX Boca Chica
Booster 7 has conducted a record 14 engine static fire, thus far the highest number of Raptor engines tested at once and more thrust than a Falcon [...]
-
4 University of Idaho Students Killed in ‘Crime of Passion’
https://www.nytimes.com/2022/11/14/us/university-idaho-deaths.html
The authorities were still piecing together what had transpired at a home near the University of Idaho campus.
-
Utah skiers report traffic delays before hitting the slopes
https://www.ksl.com/article/50516869/utah-skiers-report-traffic-delays-before-hitting-the-slopes
Drivers in Big Cottonwood Canyon reported traffic delays and limited parking in the first few days of 2022 ski season.
-
Christina Applegate Makes Emotional First Public Appearance After MS Diagnosis: ‘I Love You All So Much’
https://variety.com/2022/tv/news/christina-applegate-first-public-appearance-ms-diagnosis-1235432159
Christina Applegate attended her Hollywood Walk of Fame ceremony on Monday, Nov. 14, which notably marked the Emmy winner’s first public appearance [...]