This function creates a callback that is called after the whole test group is run, and only once.
The function to be run after each test in the current test group.
This function creates a callback that is called after each individual test is run in this test group.
The function to be run after each test in the current test group.
This function creates a callback that is called before the whole test group is run, and only once.
The function to be run before each test in the current test group.
This function creates a callback that is called before each individual test is run in this test group.
The function to be run before each test in the current test group.
This is called to stop the debugger. e.g. node --inspect-brk asp
.
This function creates a test group in the test loader.
This is the name of the test group.
A function that contains all of the closures for this test group.
Describes a value and returns an expectation to test the value.
The value being tested.
Describes a void function and returns an expectation to test the function.
This function creates a test inside the given test group. It must be placed inside a describe block.
This is the name of the test, and should describe a behavior.
A function that contains a set of expectations for this test.
This function creates a test that is expected to fail. This is useful to verify if a given behavior is expected to throw.
This is the name of the test, and should describe a behavior.
A function that contains a set of expectations for this test.
A message that describes why the test should fail.
Logs a single value to the logger, and is stringified. It works for references, values, and strings.
The value to be logged.
This function creates a test inside the given test group. It must be placed inside a describe block.
This is the name of the test, and should describe a behavior.
A function that contains a set of expectations for this test.
This function creates a test that is expected to fail. This is useful to verify if a given behavior is expected to throw.
This is the name of the test, and should describe a behavior.
A function that contains a set of expectations for this test.
A message that describes why the test should fail.
Describes a test that needs to be written.
The description of the test that needs to be written.
A test that does not run, and is longhand equivalent to using todo function without a callback. This test does not get run and is reported like a todo.
This is the name of the test, and should describe a behavior.
A function that contains a set of expectations for this test.
A test that does not run, and is longhand equivalent to using todo function without a callback. This test does not get run and is reported like a todo.
This is the name of the test, and should describe a behavior.
A function that contains a set of expectations for this test.
Generated using TypeDoc
@as-pect/assembly
This is the main package, which contains the AssemblyScript used to write tests.
Table Of Contents
Usage
To use the
@as-pect/assembly
package, typically, it's best to use the@as-pect/cli
package to output a binary using--outputBinary
. However in the case of generating the binary manually, it's possible to use the following AssemblyScriptasc
cli options:asc entry.ts<EMAIL_ADDRESS>\ --use ASC_RTRACE=1 \ --explicitStart
This will compile the binary with all of the required
as-pect
setup functions.Comparisons
There are a set of comparison functions defined in the
types/as-pect.d.ts
types definition. These comparison functions allow you to inspect object and memory state.toBe
This comparison is used for comparing data using the
==
operator. In AssemblyScript this operator is used for comparing strings, numbers, and exact reference equality (or pointer comparison.)For example, the following statements are valid
toBe
assertions:let a = new Vec3(1, 2, 3); expect<Vec3>(a).toBe(a); expect<i32>(10).toBe(10); expect<Vec3>(null).toBe(null);
This method is safe to use portably with
jest
.toStrictEqual
This method performs a single
memory.compare()
on two blocks of data. This is useful for references and strings. For example, using atoBe()
assertion on two different references results in a failed assertion:let a = new Vec3(1, 2, 3); let b = new Vec3(1, 2, 3); expect<Vec3>(a).toBe(b); // fails!
Instead, it's posible to compare two different references like this:
expect<Vec3>(a).toStrictEqual(b); // passes!
The following snippet an approximate the JavaScript equivalent for the
toStrictEqual
comparison:// loop over each property (properties are the same at compile time) for (let prop in a) { if (a[prop] === b[prop]) { // exact equality check continue; } else { assert(negated); } } assert(!negated);
If the object has child references, like strings or pointers to other blocks of memory, the comparison will fail because the pointers are different. This happens because
as-pect
cannot perform object traversal. Instead, a custom method should be used to traverse child references to compare equality.The
toStrictEqual
comparison, however, does perform a==
comparison before opting into using a full memory comparison. If the@operator("==")
is overridden, then it's possible for two references to be compared using this method:class Vec3 { constructor(public a: f64 = 0.0, public b: f64 = 0.0, public c: f64 = 0.0) {} // override the operator @operator("==") protected __equals(ref: Vec3 | null): bool { return this === ref || (this !== null && ref !== null && this.a == ref.a && this.b == ref.b && this.c == ref.c); } }
This method is not safe to use portably with
jest
yet. OnceReflection
is supported by AssemblyScript,as-pect
will support compatibility betweenjest
's version of this function.toBlockEqual
This comparison is the same comparison used on
ArrayBuffer
andString
s. It compares the bytes of the heap allocations by obtaining the exact size of the block and then performing a memcompare if theactual
andexpected
blocks match.Only use this comparison when comparing
ArrayBuffer
references.let buffer = new ArrayBuffer(100); // 100 bytes long heap allocation let buffer2 = new ArrayBuffer(100); // another buffer expect<ArrayBuffer>(buffer).toBlockEqual(buffer2);
toBeTruthy and toBeFalsy
These comparisons are used to determine if a value is truthy or falsy in the JavaScript sense. In JavaScript there are only six falsy values:
false
0
""
null
undefined
NaN
In AssemblyScript, there is no
undefined
, soas-pect
will treat each of those values as falsy. Truthy values are anything that is not falsy,expect<bool>(true).toBeTruthy(); expect<Vec3>(new Vec3(1, 2, 3)).toBeTruthy(); expect<i32>(1).toBeTruthy(); expect<string>("Something!").toBeTruthy(); expect<bool>(false).toBeFalsy(); expect<Vec3>(null).toBeFalsy(); expect<i32>(0).toBeFalsy(); expect<f64>(NaN).toBeFalsy(); expect<string>("").toBeFalsy();
These methods are safe to use with
jest
.toBeNaN
This comparison is only used for float values to determine if the value is a
NaN
value.expect<f32>(NaN).toBeNaN(); // passes expect<f64>(1.0).not.toBeNaN(); // passes /** This results in a runtime error, despite not being NaN. */ expect<Vec3>(new Vec3()).not.toBeNaN();
If this method is called with anything other than a
f32 | f64
type, it will result in a compile time error.This method is safe to use with
jest
portably.toBeNull
This comparison looks specifically for a
null
value.expect<Vec3>(null).toBeNull(); // valid assertion
In the case of numeric values, numbers cannot be
null
in AssemblyScript, thus, if this method is called with anything other than a reference type, this will result in a compile time error.This method is safe to use with
jest
portably.toBeFinite
This comparison is used to detect if float values are finite. The following values are not finite in JavaScript or AssemblyScript.
Infinity
-Infinity
NaN
The following assertions are true.
expect<f64>(1.0).toBeFinite(); expect<f32>(Infinity).not.toBeFinite(); expect<f64>(NaN).not.toBeFinite();
As long as the number values are always
f32
orf64
(ornumber
in JavaScript or AssemblyScript,)toBeFinite
is a safe assertion to use portably with jest.If this method is called without a float without a float value type, it will result in a compile time error.
toThrow
This comparison is used to test and see if a function throws an error. In the case of AssemblyScript and
as-pect
, the function will be called from within a JavaScripttry
block, and if the function throws, the assertion is valid, unless it is negated with thenot
property.expect<() => void>(() => { throw new Error("Whoops!"); }).toThrow(); // valid assertion // alternative shorter convenience syntax expectFn(() => { throw new Error("Whoops!"); }).toThrow();
Closure is not supported in AssemblyScript yet. Also, any references that are left dangling on the stack will hang around un
__release()
ed by AssemblyScript.If this function is used on anything other than a
() => void
function type, it will result in a compile time error.This function is safe to use with
jest
.toBeGreaterThan and toBeLessThan
This set of comparisons validate that a value is greater than, less than, or equal to another value. The following assertions are true.
expect<i32>(100).toBeGreaterThan(42); expect<i32>(0).toBeLessThan(100); expect<i32>(0).not.toBeGreaterThan(100); expect<f64>(1.0).toBeGreaterThanOrEqual(1.0); expect<f64>(1.0).not.toBeLessThanOrEqual(0);
These assertions also work with reference types when the
@operator(">" | "<" | ">=" | "<=")
is used on a method in the class.class Vec3 { constructor(public x: f64 = 0.0, public y: f64 = 0.0, public z: f64 = 0.0) {} @operator(">") protected __gt(other: Vec3): bool { return ( this.x * this.x + this.y * this.y + this.z * this.z > other.x * other.x + other.y * other.y + other.z * other.z ); } } // valid assertion because `@operator` was overloaded expect<Vec3>(new Vec3(1, 2, 3)).toBeGreaterThan(new Vec3(0, 0, 0));
These methods are safe to use portably with
jest
, provided they aren't used with reference types.toBeCloseTo
When doing floating point math, it's possible that values will not be exactly as expected because of floating point error.
expect<f64>(0.1 + 0.2).toBe(0.3); // fails > 0.1 + 0.2 0.30000000000000004
Instead, use
expect().toBeCloseTo()
to validate an expected floating point value.expect<f64>(0.1 + 0.2).toBeCloseTo(0.3); // passes!
Reference values and integer values will result in a runtime error, because
toBeCloseTo
comparisons require a floating point number to work.if this method is called on anything other than a
f64 | f32
type, it will result it a compile time error.This method is safe to use portably with
jest
.toHaveLength
This comparison verifies the length of a given object. This includes Arrays, TypedArrays, ArrayBuffers, and custom classes that have a
length
property.class LengthExample { constructor(public length: i32 = 0) {} } const array = new Array<Vec3>(100); const typedarray = new Uint8Array(42); const buffer = new ArrayBuffer(29); const custom = new LengthExample(50); expect<Array<Vec3>>(array).toHaveLength(100); expect<Uint8Array>(typedarray).toHaveLength(42); expect<ArrayBuffer>(buffer).toHaveLength(29); expect<LengthExample>(custom).toHaveLength(50);
If this method is used with anything other than a reference type, it will result in a compile time error.
This method is safe to use with
jest
, with the exception of usingArrayBuffer
type references.toContain and toInclude
This comparison is used to determine if an Array contains a value.
All the values returned by
T[index]
will be compared using the==
operator, so overloading the class@operator("==")
can be used in conjunction with this comparison. Theindex
must be a number value, and there must be alength
property that matches theindex
type. All values from0
tolength - 1
will be checked.const data = new Uint8Array(100); data[5] = 255; expect<Uint8Array>(data).toContain(255);
This method is portable with
jest
using thetoContain()
method.toContainEqual and toIncludeEqual
This comparison is used to determine if an Array contains a reference that equals another reference.
All the values returned by
T[index]
will be compared using the==
operator, and if that comparison does not work, a memcompare will be used. Overloading the class@operator("==")
can be used in conjunction with this comparison. Theindex
must be a number value, and there must be alength
property that matches theindex
type. All values from0
tolength - 1
will be checked.const reference = new Vec3(1, 2, 3); const data = new Array<Vec3>(0); data.push(new Vec(0, 0, 0)); data.push(new Vec(1, 2, 3)); data.push(new Vec(4, 5, 6)); expect<Uint8Array>(data).toContainEqual(referece);
This method is portable with
jest
using thetoContainEqual()
method.Custom Assertions
In order to write a custom assertion that is compatible with
as-pect
output, anActual
andExpected
namespace is provided. For example, we can write a custom assertion like this:function expectToBeEven(value: i32, negated: bool = false, message: string = null): void { Actual.report<i32>(value); Expected.report<string>("Even", i32(negated)); // check if the first bit is 0 let isEven = (value & 1) == 0; // use exclusive or to determine if the assertion passes assert(i32(isEven) ^ i32(negated), message); // dont forget to clear the value Actual.clear(); Expected.clear(); }
Types And Tooling
The
as-pect
assembly comes with a way to generate the types for all the globals used by the framework. This will greatly increase your productivity because it comes with lots of documentation, and adds a lot of intellisense to your development experience.It is also possible to reference the types manually. Use the following reference at the top of your
assembly/index.ts
file to include these types in your project automatically. If you use this method for your types, feel free to delete the auto-generated types file in your test folder./// <reference<EMAIL_ADDRESS>/> /// <reference<EMAIL_ADDRESS>/>
AssemblyScript Compiler Options
In general the best way to use the
as-pect
testing suite to compile your tests to Wasm is to use theasp
cli option--outputBinary
. This will compile every test and output binary files for each test that matches theinclude
property in theas-pect.config.js
file.In order to compile the test binary correctly, the
@as-pect/assembly/assembly/index.ts
file must be included as an entry point. Also,--use ASC_RTRACE=1
is required in order to enable RTrace error reporting and reference counting statistics. Finally, the--explicitStart
flag must be passed to the compiler to enable proper test name and group name collection sinceas-pect
will call thewasm.__start()
method manually after the loader is instantiated. The following example can be used to help manually compileas-pect
tests.asc {testentry.ts}<EMAIL_ADDRESS>\ --use ASC_RTRACE=1 \ --explicitStart \ --binaryFile {testentry.wasm} \ --textFile {testentry.wat}
Closures
AssemblyScript currently does not support closures around local scopes, only around the global scope. However, you can place all relevant tests and setup function calls for a test suite into a corresponding
describe
block after declaring a global variable.import { Vec3 } from "./setup/Vec3"; // setup a global vector reference var vec: Vec3; describe("vectors", () => { // this runs before each test function, and must be placed within the describe function beforeEach(() => { // create a new vector for each test vec = new Vec3(1, 2, 3); }); // this runs after each test function, and must be placed within the describe function afterEach(() => { vec = null; // free the vector }); // use `test()` or `it()` to run a test test("vec should not be null", () => { // write an expectation expect<Vec3>(vec).not.toBeNull(); }); });
Nested
describe
blocks are supported and the outer describe should be evaluated first.describe("vector", () => { // this test block runs first it("should run first", () => {}); describe("addition", () => { // this test block runs second it("should add vectors together", () => { expect<Vec3>(vec1.add(vec2)).toStrictEqual(new Vec3(1, 2, 3)); }); }); });
Expectations
Calling the
expect<T>(value: T)
function outside of the following functions will result in unexpected behavior:beforeEach()
afterEach()
beforeAll()
afterAll()
test()
it()
throws()
itThrows()
If this happens, the entire test suite will fail before it runs in the CLI, and the error description will be reported to the console.
Logging
A global
log<T>(value: T): void
function is provided byas-pect
to help collect useful information about the state of your program. Simply give it the type you want to log, and it will append aLogValue
item to the correspondingTestResult
orTestGroup
item thelog()
function was called within.log<string>("This will log a string"); // Remember, strings are references log<f64>(0.4); // this logs a float value log<i32>(42); // this logs the meaning of life log<Vec3>(new Vec3(1, 2, 3)); // this logs every byte in the reference log<i32[]>([1, 2, 3]); // this will log an array
This log function does not pipe the output to stdout. It simply attaches the log value to the current group or test the
log()
function was called in. Then the after the test runs the configuredReporter
decides if it is piped to stdout, which is whatDefaultTestReporter
does.


-
Google Discussiegroepen
groups.google.com
Met Google Discussiegroepen kun je online forums en e-mailgroepen maken en eraan deelnemen. Bovendien profiteer je van uitgebreide ...
-
Introducing split diffs
github.com
Diffs now come in two flavors, unified and split. Switch between them on pull request, commit, and compare pages using the toggle in the top right of ...
-
If programming languages were weapons • Bjorn Tipling
bjorn.tipling.com
C is an M1 Garand standard issue rifle, old but reliable. C++ is a set of nunchuks, powerful and impressive when wielded but takes many years of pain ...
-
Apple
www.apple.com
Apple designs and creates the iPhone, iPad, Mac notebooks and desktop computers, iOS 8, OS X, iPod and iTunes, and the new Apple Watch.
-
Medium’s CSS is actually pretty f***ing good.
medium.com
Some notes on Medium’s CSS, the steps we’ve taken to get it to where it is, and the world we live in today.
-
twbs/bootstrap
github.com
bootstrap - The most popular front-end framework for developing responsive, mobile first projects on the web.
-
London Meetup
github.com
I'll be at London's Future of Web Apps 2014 next week, and we're throwing a meetup for Londoners on Sunday. Join us! You don't need to be going to ...
-
View Issue/Pull Request buttons for Gmail
github.com
If you're a Gmail user who gets GitHub notifications via email, you'll notice that we've added subject-line links to issues and pull requests on ...
-
Jamiehankins.co.uk DNS Lookup | Nameserver Lookup - Who.is - Who.is
who.is
Jamiehankins.co.uk DNS Lookup | Nameserver Lookup - Who.is information. Search for name server and DNS record information for domain names using our ...
-
Better Word Highlighting in Diffs
github.com
Commits, compare views, and pull requests now highlight individual changed words instead of the entire changed section, making it easier for you to ...
-
Government opens up: 10k active government users on GitHub
github.com
In the summer of 2009, The New York Senate was the first government organization to post code to GitHub, and that fall, Washington DC quickly ...
-
Introducing the Revert Button
github.com
We've all merged bad pull requests and wanted to roll back the changes without having to rely on Git commands. Starting today, you can easily revert ...
-
Atom Is Now Open Source
blog.atom.io
At GitHub, we’re building the text editor we’ve always wanted: hackable to the core, but approachable on the first day without ever touching a config ...
-
Goodbye from Justin.tv
www.justin.tv
The Justin.tv website, mobile apps, and APIs are no longer in service. Thank you sincerely for seven years of live video memories.
-
Using Sass with Jekyll
markdotto.com
While upgrading my suite of Jekyll themes to utilize the built-in Sass compiler, I found the official docs and example project a bit scattered and ...
-
Patchwork Night SF Edition
github.com
We're happy to announce a Patchwork hack night on Tuesday, September 30, 2014 at GitHub HQ. No coding experience needed Patchwork is a hands-on ...
-
Join GitHub in support of the open Internet
github.com
Our open and free Internet fuels some of the most incredible innovation in history. It provides new opportunities for billions of people to ...
-
Matthew Inman sur Twitter : ""Hey bro, you got the time?" "Yeah, it's ... ...
twitter.com
Mot de passe oublié ? Vous utilisez déjà Twitter via SMS ?
-
Experience the power of a bookbook™
www.youtube.com
At only 8mm thin, and weighing in at less than 400g, the 2015 IKEA Catalogue comes pre-installed with thousands of home furnishing ideas. Join the ...
-
Shipping GitHub's split diffs
markdotto.com
GitHub has been around for over six years, and in all that time there’s only been one mode for diffing code—the unified diff. Until yesterday, that ...
-
Clone Graphs
github.com
Our traffic graphs tab shows you a lot of information about who's visiting your repository on the web. We've added a new graph to this tab, showing ...
-
Pay for GitHub with PayPal
github.com
GitHub is now accepting PayPal, in addition to credit cards, to pay for personal plans and organization accounts. We've been working closely with ...
-
Octicons for everyone!
github.com
Two years ago we started using Octicons—our icon font—on GitHub. We use them in many of our sites and include them in Atom. Now we are making them ...
-
Say hello to GitHub for Windows 2.0
github.com
Two years ago we launched GitHub for Windows as the easiest way to use Git and GitHub on Windows. Today we're shipping a major update that helps you ...
-
PSD Viewing & Diffing
github.com
We've supported image viewing and diffing for quite some time now, but today we're happy to announce that we're adding PSD files to the images we ...
-
GitHub Town Hall: Open Source and the Enterprise
github.com
Lots of businesses today are experimenting with open source, both by maintaining open source projects and also by internalizing open source ...
-
The truth behind Open Source apps
www.commitstrip.com
Every sunday, receive not only the 5 strips of the week, but also our selection of videos, animated gifs and articles, which we found fun and you ...
-
Riding Rails: Rails 4.1.0: Spring, Variants, Enums, Mailer previews, ...
weblog.rubyonrails.org
Posted by dhh , April 8, 2014 @ 8:15 pm


?NEW
YORK
BOTANICAL
GARDEN
01
15981
CO
'M&W
Y0f?
botanica
pA
RDE
<^>IMAGEr
PLANTS
OF
BAHAMA
ISLANDS
Manilkara
bahamensis
(Baker)
Lam.
&
Meeuse
Great
Inagua:
on
rock
flats
back
from
beach
area
on
north
coast
along
West
Shore
Road.
Small
rigidly
erect
tree
to
3
m,
tall;
sap
milky.
March
4,
1974
D.
S.
Correli
41797
Herbarium
FAIRCHILD
TROPICAL
GARDEN
01159813
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


Agentho.me is a tool to help facillitate ingress-specific communication outside of in-game "secure" (often comprimised) comm.
We are currently in alpha, but feel free to sign in and take a look around.


When Access mdb's hit their limit of scalability, corrupting too often and
unable to handle the number of concurrent users required, it's time to upsize
to SQL Server. But upsizing your application involves a lot more than running
the Upsizing Wizard... This session will demonstrate what changes to make to
your application before running the Upsizing Wizard and what to do after. You
will be walked through development tools, application interface changes, query
design and stored procedures to bring scalability for more users.
More


Shoes
Apparel
Training
About
Need shoes! Look no further!
Name
Support
Price
GT-750
5
$189.00
Air 340
3
$128.00
Ultra Flow
2
$165.00
Gel Glide
1
$125.00
Did I mention that none of these shoes are real?
Yeah they aren't!


Evaluate the current issues
Target population
This usability testing target population is the younger
generation who are currently between 18-39 years old and own a
personal computer to enjoy gaming. According to the sales,
demographic and usage data of 2018 from the Entertainment
Software Association, the average gamer is 34 years old. Based
on the same source of data, the main device to play a game is a
personal computer (41%), followed by smartphone (36%) and
dedicated game console (36%). Based on the target user group, we
built two personas for this project.
IA & Competitive analysis
And then I conducted Competitive analysis on generalized
topologies, content and IA of competitors(Origin and Epic games)
along with Steam website.
As their main goal is to sell games, “Store” is placed on the
very first of the navigation menu on three websites. And as all
three companies have the standalone launcher, there is a
CTA(Click-To-Action) button to download a launcher. In addition,
to help users to find a game from tons of products, games are
categorized by various criteria, but three companies have a
filtering option by genre.
Cognitive Walkthrough and Heuristic Evaluation
Before we conducted usability testings with users, we had two
usability evaluation sessions: heuristic evaluation and cognitive
walkthrough. Each team member, including myself, conducted these two
testings individually and have findings aggregated.
For the heuristic evaluation, we evaluated the system based on
Jakob Nielsen's 10 heuristics
and used the tool "Heurio" which
helps us to make comments on the website that we evaluate. When
evaluating heuristics of the website, we used severity ratings and
added detailed desciptions to share findings with the team. This
allowed us to assess the various problems easily even if we have not
found them in our own evaluation session.
And for the cognitive walkthrough, we made a template on Google docs
and aggregated findings there. To conduct a cognitive walkthrough,
first, we defined 6 specific steps of purchasing a game and all 4
questions were answered in each step.
We found too many problems!
After completing the above steps, we found TOO MANY USABILITY
PROBLEMS! 😱 Steam's IA is awful (it has two navigation bars!), the
user experience is horrible (The only way to you continue shopping
is to go back to the home page and resume the whole process), and is
cluttered, chaotic and otherwise distracting interfaces! (Too many
visual contents pull users' working memory)
As purchasing a game and organizing game collections are the main
purpose of using a digital game distribution platform for users, we
decided to improve the user experience from visiting Steam website
to completing order.
Communicate, don't
Decorate
Plan UX research
Usability testing plan
Before we conduct usability testing, we develop the test plan
that includes scope, purpose, schedule, sessions, participants,
scenarios and metrics. Our testing plan is built on the template
from
usability.gov
The main scenario is to purchase a game, and the scenario
consists of 6 tasks. During the test, I will measure "successful
task completion", "Critical errors", "Time on task" and
"perceived ease of use" After users complete tasks that we ask,
they will be asked to have a 15-min semi-structured interview to
further understand their subjective feedback, likes, dislikes
and recommendations.
Prepare testing materials
To conduct a sucessful usability test, we prepared all the
necessary testing materials. The test plan includes research
questions, usability goals and metrics, task description,
observer guidelines, test script, user introduction, data
collection sheet(observation), pre-test and post-test
questionnaire.
The full document is available 👉 👉 👉
HERE! 👈 👈 👈
Conduct testings
First, we ran the mock usability test
Even though we prepared the comprehensive test plan, we wanted to
make sure that our test materials are optimized to solicit users'
feedback and assess their performance during the test. Moreover, we
believed that conducting the mock usability test helps us be trained
as test facilitators and observers. This step allowed us to refine
the test materials again so that we valued every single time that
participants were willing to take them out of their day.
Then we conducted the actuall usability test with 3 participants
We conducted the usability testing with three participants. All
sessions were dome remotely via zoom. After the testings, we also
wrote up the final report in two different formats: the word
document and presentation.
Here are the full version of 👉
the word document 👈 and
👉 presentation
👈(Please click to download!)
Recommendations for improvement
Based on the findings from UX testings and evaluation, we drew the
recommendations:
1. Allowing the user to select multiple games at once and add them
to the cart
2. Making the Call to Action of “Continue Shopping” to stand out
3. Modify the user path of the “Continue Shopping” button; allow the
user to go back to the search results page instead of the homepage
4. Implementing the two most frequently violated Neilsen’s
heuristics throughout the website (H2-4: Consistency and Standards &
H2-8: Aesthetics and minimalistic design)
5. Make the terminology used to “Checkout” the games more familiar
to a first-time user (as it currently uses “Purchase for myself”,
deviating from industry standards)
6. Make the tags/filters to narrow the search easily findable
7. Add a button on the “Library” page to create a collection
8. Provide an instruction as to how the user can create a collection
& a shelf from the “Collection” tab
Redesign
Then I created the hi-fi prototypes to redesign the steam!
First, the website is redesigned by considering the widescreen and
the font size becomes bigger as some users complained about it.
Visual contents are now organized to increase the readability of the
website and some filters that are not widely used are hidden to
avoid any cognitive overload. All important information that users
might want to know are displayed but on more well-organized and
intuitive interfaces.
Reflections
The usability testing is crucial
Critical to a project’s success is empathizing with the users so
that we can fully understand and solve their problems. Refining
the prototype with product validation allowed me to analyze such
perspectives closely. A major part of my role in this project was
research planning and documentation. I learned to re-frame the
questions when the team encountered a roadblock related to users
being unable to complete certain validation tasks.
Be mindful with the discrepancy between user ratings and their
performance
"I don't think it's easy to use, but someone else think it's
easy".
Some users gave subjective feedback that didn’t truly reflect
their actual testing experience. Even if a user had poor
completion time and continuously met errors in the prototype, they
still gave it an overall higher rating. As a UX Researcher, I had
to prompt the users to explain why they were evaluating the
product in a certain way. I also had to analyze and improve the
testing script so that it focused more on their actual experience.
Some UX testing software will increase the validity and accuracy
As I was analyzing the recorded testing sessions, it was
interesting to manually study the user’s mouse movement data which
revealed the user’s specific click path. This insight was an
important finding for our next iteration as I learned more about
the customer’s as-is journey. In the future, I hope we have
funding to incorporate Hotjar or a mouse movement tracking tool.


Trey Gossett
Sculpture/Woodworking
<EMAIL_ADDRESS>Sean Perdue
Painting/Drawing
<EMAIL_ADDRESS>Brian Somerville
Clay/Sculpture
<EMAIL_ADDRESS>Jason The York
Jewelry/Metalsmith/Blacksmith
<EMAIL_ADDRESS>Our mission is to create the highest quality artwork and craftsmanship for the American home and collector. With the depth of talent and range of material knowledge among our members there is nothing that is out of the range of possibility to be built or fabricated. With the creative minds and artistic visions we possess there is no dream that can't be realized. Get in touch today.


Game View
Unity3D View of Mole Exploding When Tapped
A Sneaky Mole!
Gameplay Demo
Credits: this game uses free Unity assets and Freesound.org's creative commons Attribution Licence sounds.
Assets:
Low Poly Survival Essentials by Broken Vector,
Cartoon Farm Crops by False Wisp Studios,
Lovely Animals PACK by JKTimmons,
Cartoon FX Free by Jean Moreno (JMO),
Sound:
Metal Hit Cartoon by Johnnyfarmer,
RainbowGlazeLoop16 by sirplus


--- layout: page title: Projects ---
My GitHub has started to get crowded, so here's some of the cooler things I've made, newest first. These were mostly made in under 24 hours, so they're mostly rough around the edges.
{% for project in site.data.projects %}


I am the lead of the team and my task was to make the group work together and to cooperate to produce at last a good videogame. I tried that the team had a good communication, because it’s very important that every member of the team know well what is his job. Finally, we had good and bad times but at the end we manage to produce a very good game. I also was the person in charge of the programation of all the enemies of the game, unless the Boss.
I’ve not only did the behaviour of all the enemies, I also tried to make easier the game designer’s job because I made that the enemies could have a layer on tiled and all the enemies had their own tile. That means that enemies could be placed and changed on the game easier that it could be. I applied the pathfinding for some enemies and also, I also needed to use the Bezier curve for some of them.
Finally, I have programmed all the NPC and the interaction with them, I also made the Save and Load with the NPC Navi. I also made the link’s attack.


My Bachelor of Science thesis topic was "Calculating GPS position using open source libraries"
My Master of Science topic was "Prototype for Automatic Content Discovery in Mobile Ad Hoc Networks"
NiSa anomus is a 2048 clone that I created for Partioaitta stipend application. Purpose was to separate my scout troop from the rest of the applications.


小知识备忘（不知道什么时候会整理）
标长(scale length): \(n(R) \sim exp(-R/h_{\rm R})\), \(h_{\rm R}\)为标长，即沿银盘方向向外移动\(h_{\rm R}\)，恒星密度下降e倍。
标高(scale height): 类似于标长，垂直于银盘方向，当恒星密度下降e倍时候的高度。薄盘指的是所有年轻大质量恒星所定义，而厚盘指的是其余恒星的定义。
银河系黑洞质量约为$4\times 10^{6}$M$_{\odot}$.
Galactic year (cosmic year): 太阳绕银心一周所需要的时间，\(\frac{2\pi \times 8.4\;kpc}{240\;\rm km/s} \sim 200 Myr\)。
主序恒星质量半径关系：\(R \sim R_{\odot}(\frac{M}{M_{\odot}})^{0.7}\), 主序恒星半径约为0.1--25R$_{\odot}$
主序恒星质量光度关系：\(L \sim L_{\odot}(\frac{M}{M_{\odot}})^{\alpha}\), 当$M\le M_{\odot}$时$\alpha \sim 5$, 当$M_{\odot}\le M\le 10M_{\odot}$时$\alpha \sim 3.9$, 当$M\gt 10M_{\odot}$时$\alpha \sim 2.2$.
黑体谱峰值位置： $\lambda_{\rm max}=[2.9/T(K)]$mm, 太阳6000K对应的是5000埃.
相对太阳的丰度： [A/B] = log$_{10}${$\frac{(N_{\rm A}/N_{\rm B})_{*}}{(N_{\rm A}/N_{\rm B})_{\odot}}$}, Z$_{\odot} \sim$0.02.
三角视差距离：以周年视差测距定义秒差距，即: 1"=$\frac{1AU}{1pc}$, 则在1kpc处1个角分的距离为60000AU或者是0.3 pc (1pc=206265AU).
磁场： 尘埃消光：偏振平行磁场； 尘埃热辐射：偏振垂直于磁场。
啥是星际介质? 在太阳附近， 10 pc3内只有一颗恒星，而太阳直径仅仅10-7pc,所以大部分星际空间内是没有恒星的，但是它们充满了气体和尘埃，这就是我们所要研究的星际介质。
等强度线R25, B band, 25 mag,测量大小。
哈勃时间Hubble time, $t = 1/H_{0}$,约137亿年。
暗物质的可能来源是WIMP, 弱相互作用有质量的粒子，如，中微子等。
为什么早期宇宙中质子比反质子多一点？？？
宇宙微波背景辐射来着与正反质子湮灭产生的光子。
模数转换器即A/D转换器，或简称ADC，通常是指一个将模拟信号转变为数字信号的电子元件。模拟信号是一串连续分布的振幅，而数字信号是离散取值的分布，因而转换的时候是有压缩的。
What is the CO-dark gas?
Answer:: The mass of molecular gas in an interstellar cloud is often measured using line emission from low rotational levels of CO, which are sensitive to the CO mass, and then scaling to the assumed molecular hydrogen H2 mass. However, a significant H2 mass may lie outside the CO region, in the outer regions of the molecular cloud where the gas-phase carbon resides in C or C+. Here, H2 self-shields or is shielded by dust from UV photodissociation, whereas CO is photodissociated. This H2 gas is “dark” in molecular transitions because of the absence of CO and other trace molecules, and because H2 emits so weakly at temperatures 10 K < T < 100 K typical of this molecular component. This component has been indirectly observed through other tracers of mass such as gamma rays produced in cosmic-ray collisions with the gas and far-infrared/submillimeter wavelength dust continuum radiation.
巨星支在HR图中是垂直的，所以通过分光时差来测量距离的误差较大，最佳的情况下，绝对星等有0.5 m的误差，所以距离精度会达到25%。
RATRAN can be installed with CRETE github
radio recombination lines
The H109$\alpha$ line was first detected by P. Mezger in 1965, despite (incorrect) theoretical predictions that pressure broadening would smear out the lines in frequency and make them undetectable. It is true that atomic collisions in the interstellar medium significantly disturb the energy levels of large atoms, but this disturbance is about the same for adjacent energy levels, so the differential disturbance that alters the line frequency is actually much smaller. His advice: “Don’t abandon an observation just because you have been told that it will fail.”
The RRL has a Voigt profile with line width (Gordon & Sorochenko 2002):
$\Delta v_{\rm rrl} = 0.534\Delta v_{\rm pre} + (\Delta v_{\rm tur}^{2}+\Delta v_{\rm the}^{2}+0.217\Delta v_{\rm pre}^{2})^{1/2}$
where, "rrl", "pre", "tur", "the" represent the line width of radio recombination lines, pressure broadening, turbulence broadening, thermal broadening.
And the pressure broadening can be assessed with the formula of Brocklehurst & Seaton (1972):
$\Delta v_{\rm pre} = 4.287 (\frac{n}{100})^{7.4}(\frac{10^{4}}{T_{\rm e}})^{0.1}(\frac{n_{\rm e}}{10^{4}}) (km/s)$,
where n is the principle quantum number, Te is the electron temperature, and ne is the electron density.
天马65m
2012年10月26日 first light
接收机： 1-50 GHz， 8个波段
主动面板系统
虽然在L波段有RFI，但是OH可做，C波段完全没有问题。Chat with Yan Sun, 6 GHz 以下RFI非常严重，高频所受影响较小。
HI 第一次发现是通过frequency switch得到的，因为银道面附近有大量的HI发射，难以得到干净的off点，之前的position switch尝试并不好。
南极天文台
median PWV = 0.14 mm 南极， 1 mm Mauna Kea, 0.5 mm ALMA
甘氨酸是最简单的氨基酸，所以是目前天体化学的圣杯，Glycine, NH3CH2COOH.
The system temperature of a telescope can be estimated with the equation,
$T_{\rm sys} = (T_{\rm r} + T_{\rm sky})/(exp(-\tau))$,
where $T_{\rm r}$ is the receiver temperature, $T_{\rm sky}$ is the sky temperature inside the atmosphere ($2.73*exp(-\tau)+T_{\rm a}*(1-exp(-\tau))$), $\tau$ is the opacity, and $T_{\rm a}$ is the atmosphere effective temperature.
SKYDIP (Tipping): measure the optical depth of atmosphere at zenith (Wilson, T. L., Tools of Radio Astronomy).
$T_{\rm abs}(z) = T_{\rm rx}+\eta T_{\rm atm}(1-e^{-\tau_{0} sec(z)})+T_{\rm amb}(1-\eta)$.
This can be converted to $V_{\rm abs}(z) = -V_{\rm atm} e^{-\tau_{0} sec(z)}+ (V_{\rm rx}+V_{\rm atm})$. With this equation and measurements of $V_{\rm abs}(z)$ and z at different zenith angles, we can fit $\tau_{0}$ and other constants.
A source can reach the highest EL: $EL=90-|\phi - \delta|$, where $\phi$ is the latitude and $\delta$ is the declination.
The N2H+ ion is mainly formed through reactions between H3+ and N2. It is mainly destroyed by N2H+ + CO ---> HCO+ + N2.
The solid angle is 1.133$\theta^{2}$.
To upgrade packages of pip, pip install aplpy --upgrade.
To upgrade pip itself, pip install --upgrade pip.
In case that MAC OS lack python-dev, try "xcode-select --install".
down the whole directory, wget -c -r -np -k -L -p /the/directory/url/
for Synchrotron Emission which is highly linearly polarised, this emission is parallel to E, and thus perpendicular to B.
13C fractionation into CO at low temperatures due to the reaction:
13C+ + 12CO ---> 13CO + 12C+ erengy (35 K)
Notes on Imagemagick: create a gif movie
/usr/local/bin/convert -resize 50% -delay 5 -loop 0 *png try.gif
Main beam efficiencies change from compact sources to extended sources (increasing). Greve+1998
Using VNC:
vnc
vncserver -geometry 1360x850 -depth 16 :1
..password..
ssh -g -L 5902:ip1.ip2.ip3.ip4:5901 portal.mpifr-bonn.mpg.de -l ygong
..password..
command+K
vnc://localhost:5902
To-do list:
- run RT (RATRAN) codes to model the CC spectrum.


- expression - package expression
-
- Expression - Class in expression
-
An Expression
is a tree which encapsulates arbitrary
mathematical functions according to a specific grammar.
- Expression(double) - Constructor for class expression.Expression
-
Builds an Expression
that consists of a single real
number.
- Expression(char) - Constructor for class expression.Expression
-
Builds an Expression
that consists of a variable.
- Expression(Expression, char, Expression) - Constructor for class expression.Expression
-
A binary tree of Expression
s.
- ExpressionCopier - Class in expression
-
Tools for copying Expression
s, especially deep copies.
- ExpressionCopier() - Constructor for class expression.ExpressionCopier
-
- expressionToString(Expression) - Static method in interface transpile.Transpiler
-
An intermediary helper function which transforms an Expression
into a general arithmetic form that many languages are happy to parse.
- ExpressionType - Enum in expression
-
An enum outlining the three different types of Expression
.
The three types are as follows:
Number: A real number.
Ex: f(x) = 2
Variable: A variable function.


Runs consensus clustering across subsamples of the data, clustering algorithms, and cluster sizes.
consensus_cluster( data, nk = 2:4, p.item = 0.8, reps = 1000, algorithms = NULL, nmf.method = c("brunet", "lee"), hc.method = "average", xdim = NULL, ydim = NULL, rlen = 200, alpha = c(0.05, 0.01), minPts = 5, distance = "euclidean", prep.data = c("none", "full", "sampled"), scale = TRUE, type = c("conventional", "robust", "tsne"), min.var = 1, progress = TRUE, seed.nmf = 123456, seed.data = 1, file.name = NULL, time.saved = FALSE )
| data | data matrix with rows as samples and columns as variables |
|---|---|
| nk | number of clusters (k) requested; can specify a single integer or a range of integers to compute multiple k |
| p.item | proportion of items to be used in subsampling within an algorithm |
| reps | number of subsamples |
| algorithms | vector of clustering algorithms for performing consensus clustering. Must be any number of the following: "nmf", "hc", "diana", "km", "pam", "ap", "sc", "gmm", "block", "som", "cmeans", "hdbscan". A custom clustering algorithm can be used. |
| nmf.method | specify NMF-based algorithms to run. By default the
"brunet" and "lee" algorithms are called. See |
| hc.method | agglomeration method for hierarchical clustering. The
the "average" method is used by default. See |
| xdim | x dimension of the SOM grid |
| ydim | y dimension of the SOM grid |
| rlen | the number of times the complete data set will be presented to the SOM network. |
| alpha | SOM learning rate, a vector of two numbers indicating the amount
of change. Default is to decline linearly from 0.05 to 0.01 over |
| minPts | minimum size of clusters for HDBSCAN. Default is 5. |
| distance | a vector of distance functions. Defaults to "euclidean".
Other options are given in |
| prep.data | Prepare the data on the "full" dataset, the "sampled" dataset, or "none" (default). |
| scale | logical; should the data be centered and scaled? |
| type | if we use "conventional" measures (default), then the mean and standard deviation are used for centering and scaling, respectively. If "robust" measures are specified, the median and median absolute deviation (MAD) are used. Alternatively, we can apply "tsne" for dimension reduction. |
| min.var | minimum variability measure threshold used to filter the
feature space for only highly variable features. Only features with a
minimum variability measure across all samples greater than |
| progress | logical; should a progress bar be displayed? |
| seed.nmf | random seed to use for NMF-based algorithms |
| seed.data | seed to use to ensure each algorithm operates on the same set of subsamples |
| file.name | if not |
| time.saved | logical; if |
An array of dimension nrow(x)
by reps
by length(algorithms)
by
length(nk)
. Each cube of the array represents a different k. Each slice
of a cube is a matrix showing consensus clustering results for algorithms.
The matrices have a row for each sample, and a column for each subsample.
Each entry represents a class membership.
When "hdbscan" is part of algorithms
, we do not include its clustering
array in the consensus result. Instead, we report two summary statistics as
attributes: the proportion of outliers and the number of clusters.
See examples for how to use custom algorithms and distance functions. The default clustering algorithms provided are:
"nmf": Nonnegative Matrix Factorization (using Kullback-Leibler Divergence or Euclidean distance; See Note for specifications.)
"hc": Hierarchical Clustering
"diana": DIvisive ANAlysis Clustering
"km": K-Means Clustering
"pam": Partition Around Medoids
"ap": Affinity Propagation
"sc": Spectral Clustering using Radial-Basis kernel function
"gmm": Gaussian Mixture Model using Bayesian Information Criterion on EM algorithm
"block": Biclustering using a latent block model
"som": Self-Organizing Map (SOM) with Hierarchical Clustering
"cmeans": Fuzzy C-Means Clustering
"hdbscan": Hierarchical Density-based Spatial Clustering of Applications with Noise (HDBSCAN)
The progress bar increments on every unit of reps
.
The nmf.method
options are "brunet" (Kullback-Leibler Divergence) and
"lee" (Euclidean distance). When "hdbscan" is chosen as an algorithm to
use, its results are excluded from the rest of the consensus clusters. This
is because there is no guarantee that the cluster assignment will have
every sample clustered; more often than not there will be noise points or
outliers. In addition, the number of distinct clusters may not even be
equal to nk
.
Derek Chiu, Aline Talhouk
data(hgsc) dat <- hgsc[1:100, 1:50] # Custom distance function manh <- function(x) { stats::dist(x, method = "manhattan") } # Custom clustering algorithm agnes <- function(d, k) { return(as.integer(stats::cutree(cluster::agnes(d, diss = TRUE), k))) } assign("agnes", agnes, 1) cc <- consensus_cluster(dat, reps = 6, algorithms = c("pam", "agnes"), distance = c("euclidean", "manh"), progress = FALSE) str(cc)#> int [1:100, 1:6, 1:4, 1:3] 1 1 NA NA NA 1 1 NA 2 NA ... #> - attr(*, "dimnames")=List of 4 #> ..$ : chr [1:100] "TCGA.04.1331_PRO.C5" "TCGA.04.1332_MES.C1" "TCGA.04.1336_DIF.C4" "TCGA.04.1337_MES.C1" ... #> ..$ : chr [1:6] "R1" "R2" "R3" "R4" ... #> ..$ : chr [1:4] "PAM_Euclidean" "PAM_Manh" "AGNES_Euclidean" "AGNES_Manh" #> ..$ : chr [1:3] "2" "3" "4"


Careers: Web Developement Web Designing Big Data Data Science Full Stack Development Python Communication Skills Aptitude


The results can not be displayed because the maximum number has been reached ({{gridSource.source.limit}}).
Please refine your query.
{{ctrl.getSelectedRowCount()}} selected element(s)


<EMAIL_ADDRESS>home.herculas.net
(+852) 6775-2862
Synopsis
- Research interests
- Computer security and privacy / Blockchain / Cryptography
- Programming languages / Type systems / Meta-programming
- Personal interests and skills
- Film and video editing / Special effects
- History of official system in Song / Ming Dynasty
- Providing psychological consultation
- Rail-fan of Kantō region
Education
- Ph.D. Candidate
- Computer Science, The Hong Kong Polytechnic Univ., Hong Kong
- Sept. 2021 -
- M.Phill.
- Cyberspace Security, Southeast Univ., China
- Sept. 2017 - Jun. 2020
- B.Eng.
- Information Engineering, Southeast Univ., China
- Aug. 2013 - Jun. 2017
Publications
Conferences
- Rui Song, Shang Gao, Yubo Song and Bin Xiao, "zkDET: A Traceable and Privacy-Preserving Data Exchange Scheme based on Non-Fungible Token and Zero-Knowledge", 42nd IEEE International Conference on Distributed Computing Systems (ICDCS 2022), Bologna, Italy, 2022.
- Haotian Wu, Rui Song, Kai Lei and Bin Xiao, "Slicer: Verifiable, Secure and Fair Search over Encrypted Numerical Data Using Blockchain", 42nd IEEE International Conference on Distributed Computing Systems (ICDCS 2022), Bologna, Italy, 2022.
- Congcong Shi, Rui Song, Xinyu Qi, Yubo Song, Bin Xiao and Sanglu Lu, "ClickGuard: Exposing Hidden Click Fraud via Mobile Sensor Side-Channel Analysis," 2020 IEEE International Conference on Communications (ICC 20), Dublin, Ireland, 2020.
- Rui Song, Yubo Song, Shang Gao, Bin Xiao and Aiqun Hu, "I Know What You Type: Leaking User Privacy via Novel Frequency-Based Side-Channel Attacks," 2018 IEEE Global Communications Conference (GlobeCom 18), Abu Dhabi, United Arab Emirates, 2018.
Journals
- Rui Song, Bin Xiao, Yubo Song, Songtao Guo, Yuanyuan Yang, "A Survey of Blockchain-based Schemes for Data Sharing and Exchange", IEEE Transactions on Big Data (TBD), 2023.
- Haotian Wu, Zecheng Li, Rui Song, Bin Xiao, "Enabling Privacy-Preserving and Efficient Authenticated Graph Queries on Blockchain-Assisted Clouds", IEEE Transactions on Knowledge and Data Engineering (TKDE), 2023.
- Yubo Song, Qi Chen, Rui Song, Aiqun Hu, "Android Application Privacy Protection Mechanism based on Virtual Machine Bytecode Injection", Journal on Communications, 2021, 42(6): 171-181.
Honor and Awards
- Oct. 2019, National Scholarship
- Oct. 2018, National Cybersecurity Scholarship
- Nov. 2017, 3rd Prize, National Graduate Mathematical Modeling Competition
Experience
- Teaching Assistant
- COMP1011
- Programming Fundamentals
- B.Sc. (Hons) in Comp-Sci, Fin-Tech, and Info-Sys
- 22-23-Spring
- COMP4142
- E-payment and cryptocurrency
- B.Sc. (Hons) in Fin-Tech and Info-Sys
- 21-22-Fall, 22-23-Fall
- COMP5434
- Big Data Computing
- M.Sc. in Info-Tech
- 22-23-Summer
- COMP5521
- Distributed Ledger Technology, Cryptocurrency and E-Payment
- M.Sc. in Info-Tech
- 21-22-Spring
- Research Assistant
- Dec. 2020 - Aug. 2021
- Dept. of Computing, The Hong Kong Polytechnic Univ., Hong Kong
- Ultrasonic Jammer to Prevent Eavesdropping on Portable Devices
- R&D Engineer
- Jul. 2020 - Oct. 2020
- Global Energy Intercommunication Research Institute, State Grid Co. Ltd., Nanjing, China
- Federal Learning Implementation and Data Compliance Control in Smart Grid
Skills
Programming
- Languages: Java / C++ / JavaScript (TypeScript) / Swift / Python / Go
- Databases: MySQL / MongoDB / Redis / LevelDB / SQLite
- Others: Linux / Git / Docker / LaTeX / Bash
Languages
- English
- IELTS (Total 7.5, 8.5(L)-8.5(R)-7.0(W)-6.5(S), Nov. 2020)
- CET-6 (591, Dec. 2014)
- CET-4 (631, Jun. 2014)
- Japanese


--- layout: post title: The Importance of Agile date: 2006-09-07 00:00:00 category: software-development ---
The Importance of Agile: "Our prevailing system of management has destroyed our people. People are born with intrinsic motivation, self-respect, dignity, curiosity to learn, joy in learning. The forces of destruction begin with toddlers—a prize for the best halloween costume, grades in school, gold stars—and on up through the university. On the job, people, teams, and divisions are ranked, rewarded for the top, punished for the bottom. Management by Objectives, quotas, incentive pay, business plans, put together separately, division by division, cause further loss, unknown and unknowable."


OPEN INTERFACE
SPECIFICATION
SEQUENTIAL
MODULAR SPECIFIC TOOLS
NUMR Work Package
CO-NUMR-IN-08
version 2.0
al and Materials
Technologiesť (Brite-EuRam III), reference BRPR-CT96-0293.
Important
Notices - Summary - CAPE-OPEN
Archival Information - CAPE-OPEN Document Road
Map - Acknowledgements - Help


@(contributors: List[Option[service.Github.User]]) @layout.main(Some("About"), "about") {
We are a bunch of software developers interested in discovering Scala, learning about new techniques and frameworks and meeting other Scala developers in the Vienna area. Our aim is to meet regularly in 4 week cycles and share knowledge and experiences about the Scala programming language and its ecosystem.
We our Google group for communication, so make sure you subscribe to it to be informed: http://groups.google.com/group/scala-vienna
We post our code to: https://github.com/scala-vienna.
We are on Twitter as @@ScalaVienna, we use hashtags #scala #vienna.
We are part of a worldwide network of Scala meetups: http://scala.meetup.com
Developers from all skill levels eager to learn more about this great language are welcome! Come on and join us!
Scala is an acronym for “Scalable Language”. This means that Scala grows with you. You can play with it by typing one-line expressions and observing the results. But you can also rely on it for large mission critical systems, as many companies, including Twitter, LinkedIn, or Intel do.
Play Framework makes it easy to build web applications with Java & Scala. Play is based on a lightweight, stateless, web-friendly architecture. Built on Akka, Play provides predictable and minimal resource consumption (CPU, memory, threads) for highly-scalable applications.
ROME is a set of RSS and Atom Utilities for Java that is open source under the Apache 2.0 license.
Sleek, intuitive, and powerful mobile first front-end framework for faster and easier web development.
GitHub is a web-based hosting service for software development projects that use the Git revision control system. GitHub offers both paid plans for private repositories, and free accounts for open source projects. As of May 2011, GitHub was the most popular code repository site for open source projects.
Meetup is an online social networking portal that facilitates offline group meetings in various localities around the world. Meetup allows members to find and join groups unified by a common interest, such as politics, books, games, movies, health, pets, careers or hobbies.


Country singer Sam Hunt arrested on DUI charge in Nashville
by Jessica NapoliCountry singer Sam Hunt has been charged with DUI in East Nashville, Tenn., Fox News has learned.
Hunt was arrested early on Thursday morning after allegedly driving the wrong way down a one-way road, according to the police report obtained by Fox News. He was also allegedly swerving in and out of his lane and "crossed the center divide several times," the report said.
The 34-year-old musician was pulled over and booked for allegedly driving under the influence and having an open container in the vehicle.
SAM HUNT TIES THE KNOT WITH HANNAH LEE FOWLER
The arresting police officer said that Hunt smelled of alcohol, had "bloodshot" and "watery" eyes, and there were "two empty beer cans" next to him. Hunt had "difficulty retrieving his ID and attempted to give a credit card and passport instead," the report said.
Hunt was alone in the car and admitted to "consuming alcohol recently," police said. He was read his rights, then performed a sobriety test administered by the arresting officer and was breathalyzed. His blood-alcohol level was .173, according to the arrest warrant.
SAM HUNT MAKES HISTORY, EXPLAINS ORIGIN OF SINGLE 'BODY LIKE A BACK ROAD'
Hunt was released later on Thursday morning after posting $2,500 bail and will have to appear in court on Jan. 17.
A rep for the singer did not immediately return Fox News' request for comment.
The singer rose to fame in 2016 with his album "Montevallo" and his best known for his 2017 chart-topping hit song, "Body Like a Back Road."
In April 2017, he married Hannah Lee Fowler.


public class ServerComm
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
class |
ServerComm.Accepter |
| Modifier and Type | Field and Description |
|---|---|
boolean |
accepting |
| Constructor and Description |
|---|
ServerComm(CommChannel channel,
ServerCommReceiver commReceiver,
java.lang.String[] events1,
java.lang.String[] events2)
Create an instance of a ServerComm, which allows a device to constantly listen for
multiple connections, via the AdvancedComm class.
|
| Modifier and Type | Method and Description |
|---|---|
void |
acceptConnections()
Starts the connection listener thread that will constantly accept incoming connections
from other devices.
|
boolean |
send(java.lang.String event1,
java.lang.String event2,
lejos.robotics.Transmittable data)
The send method sends the same data and events to every device that is connected to it.
|
void |
stopAcceptingConnections()
Stops the accepter thread from running.
|
public ServerComm(CommChannel channel, ServerCommReceiver commReceiver, java.lang.String[] events1, java.lang.String[] events2)
channel
- the typical CommChannel to connect withcommReceiver
- the base receiver that will be cloned to each new AdvancedComm instanceevents1
- the first set of events receivedevents2
- the second set of events receivedpublic void acceptConnections()
public boolean send(java.lang.String event1, java.lang.String event2, lejos.robotics.Transmittable data)
event1
- the first eventevent2
- the second eventdata
- the information to be transmittedpublic void stopAcceptingConnections()


Sadko
Even run, though not run, but nowhere to hide from love. Neither in chambers of the Novgorod prince, nor at the bottom of the sea. Especially if your name is Sadko, and you are a cute cheerful guy. Besides, play the whale on the harp. That's just for true love and still have to make war. Yes, not with someone, but with the underwater witch Barracuda. But love will win anyway. You will see!


Click to update product prices:
| CheckBox | Coffee | Description | Value |
| Just Java |
Regular hour blend, decaffeinated coffee, or flavor of the day.
Endless Cup $2.00 |
||
| Cafe au Lait |
House blended coffee infused into a smooth, steamed milk.
Single $2.00 Double $3.00 |
||
| Iced Cappucino |
Sweetened espresso blended with icy-cold milk and served in a chilled glass.
Single $4.75 Double $5.75 |


PLANET SICK-BOY: http://www.sick-boy.com "We Put the SIN in Cinema" ©Copyright 2001 Planet Sick-Boy. All Rights Reserved.
George A. Romero, the writer/director credited with ushering in the modern horror film era with 1968's Night of the Living Dead, brings his latest film to Rochester this Saturday as part of the Dryden Theater's continuous `Visiting Filmmaker' series. Bruiser, full of Romero's trademark humor and lower-than-low budget for acting talent, is an interesting but gimmicky parable that is more remarkable for its similarity to two recent films than anything else.
Jason Flemyng (Lock, Stock and Two Smoking Barrels) plays Henry Creedlow, an employee of a men's magazine called `Bruiser.' Despite having a somewhat successful career, a hot wife and a giant, newly constructed home, Henry is Joe Vanilla – one of those guys you never notice because he doesn't have a smidgen of character (kind of like the straight white guys on the last few seasons of The Real World). He's practically invisible and lacks the backbone to stand up to anybody who gets in his face or questions his opinions.
 His wife, Janine, (Nina Garbiras, The $treet) is unfaithful and keeps her thumb on Henry's money. His best friend Jimmy (Andrew Tarbet) is a financial advisor who is robbing Henry blind. Even his housekeeper gets in on the action, pilfering money from Henry's wallet when she thinks he isn't looking.
We can tell Henry is close to some kind of breaking point from his homicidal/suicidal fantasies (the highlight of the film) that begin with his repetitive morning bathroom and workout ritual (like American Psycho). Waking up to discover his face has become white and featureless is the last straw, and you know what that means, don't you? No more Mr. Nice Guy.
Henry spends the rest of the film righting all of the wrongs that he feels have, literally, stolen his identity. Like Kevin Bacon in Hollow Man, Henry dons a hat, sunglasses and flesh-colored makeup to walk the streets unnoticed, leading to the big masquerade party finale, which is as anticlimactic as most of the film's revenge killings. As an added bonus, The Misfits play three songs, including one called `Bruiser,' written for this film, at the over-the-top party climax.
Speaking of over-the-top, that's just what Stormare is in his role. His accent seems to change from Russian to Irish from line to line, no doubt distracted by the stress of chewing up the scenery every time the camera focuses on him. When he gets his at the end, it's a huge letdown, considering how despicable the character was. Other disappointments include the failure to use a dangerous table saw as an implement of destruction, and the fact that Janine's annoying poodle doesn't meet the grisly fate it deserves.
 But Romero fans will likely be hooting and hollering from the opening scene, right through the odd cover of A-Ha's `Take on Me' that plays during the closing credits.
1:35 – R for nudity, sexual content, violence, and adult language
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


Share to Tipworthy
Title:
URL:
Recipient:
Recipient Channel:
GitHub
GooglePlus
SoundCloud
TipMe
Twitter
Youtube
Amount:
Connect Changetip
Options


Pulls the names of the sounds that were played by this button.
The name returned will be a file name excluding the path (E:\Stream\sound.ogg
will return sound.ogg
).
| Box Name | Type | Description |
|---|---|---|
| Variable | String | Variable name to store the pull in |
| Array Number | Real | Which sound to get in order they appear in the list. <br>0 will be the one at the top of the list. |


Each grade level has standards that are organized around topics, with each addressing one topic. Topics are interconnected and a deeper understanding at higher grades requires foundational understanding of many of these topics.
There are indicators that reflect the three dimensions of science learning, they each include a disciplinary core idea, a crosscutting concept, and a science and engineering practice.
Disciplinary core ideas are focused and limited set of ideas that have been identified as necessary for all students for their education. Crosscutting concepts are used to organize and understand the disciplinary core ideas. They help bridge disciplinary boundaries and help deepen the understanding of science content. Science and Engineering practices are used by students to demonstrate their understanding of disciplinary core ideas and crosscutting concepts.
-Asking Questions and Defining Problems
-Developing and Using Models
-Planning and Carrying Out Investigations
-Analyzing and Interpreting Data
-Using Mathematics and Computational Thinking
-Constructing Explanations and Designing Solutions
-Engaging in Argument from Evidence
-Obtaining, Evaluating, and Communicating Information
-From Molecules to Organisms: Structures and Processes
-Ecosystems: Interactions, Energy, and Dynamics
-Heredity: Inheritance and Variation of Traits
-Biological Evolution: Unity & Diversity
-Matter and Its Interactions
-Motion and Stability: Forces and Interactions
-Energy
-Waves and Their Applications in Technologies for Information Transfer
-Earth’s Place in the Universe
-Earth’s Systems
-Earth and Human Activity
-Engineering Design
-Patterns
-Cause and Effect
-Scale, Proportion, and Quantity
-Systems and System Models
-Energy and Matter
-Structure and Function
-Stability and Change


I am a photographer currently located in Spokane Valley. I take portraits, family photos, maternity, lifestyle, or do product photography. I dabble in webdesign, and enjoy running social media accounts for nonprofits or buisnesses. I ran Summer Connect's social media during the summer of 2017, and currently am employed at Norlift, managing their social media. Contact me for photos or media positions!
Email<EMAIL_ADDRESS>Phone:<PHONE_NUMBER>
More Coming Soon!


Data Design Project
Dana Whitfield
-
Age:
25
-
Gender:
Female
-
Ethnicity:
Latina
-
Occupation:
Program Developer
-
Insurance type:
None
-
Attitude:
Dana likes to search the internet for her medical needs rather than calling. She likes when she can schedule online, make only 1 payment online via paypal or venmo, and likes to fill out any paperwork prior to the appointment and have it submitted online, as well.
- Technology:
Dana has an Apple 13.3" MacBook Pro (Space Gray, Late 2016) equipped with a 2.0 GHz Intel Core i5 Dual-Core 8GB of 1866 MHz RAM, 256GB PCIe SSD, 720p FaceTime HD Camera & Dual Mics, 3.5mm Headphones Jack, Stereo Speakers. She also has an iPhone X running iOS 12.0.1.
-
Needs:
Availability to schedule appointments online, make payments online, and complete/submit any paperwork prior to her appointments.
-
Goals:
Dana's goal is to schedule aappointments strictly online and go to a physician's office ready to see the Doctor.
-
Frustrations:
She is not able to find a way to make payments online and sometimes has to call into the office to make appointments that she already thought she made online and does not like dealing with multiple payment.
User Story
Dana would like to find the physicians she needs in her time online, make the appointment online, and pay out of pocket online.
Use Case
Title:
Making an appointment with a new OBGYN and making payments online.
Name of user & their role:
Dana; a woman looking for a new OBGYN who wants to do so strictly online.
Usage preconditions:
Must create an account with ThriveMo and fill out prior paperwork that medical offices will ask for.
Usage postconditions:
Dana will be a member on ThriveMo.com and will have most prior paperwork done. If and when a physician requires more paperwork to be completed, she can do so online via ThriveMo.com in her personal account.
Interaction Flow
- Dana enters ThriveMo.com in her chrome web browser
- The server return to ThriveMo's main page
- Dana then clicks on the sign up link in the browser on ThriveMo's main page
- Server completes the request and is now on the sign up page.
- Dana enters the required fields and submits her information.
- The server then
- The browser then submits her information and return letting her know that her data has been submitted.
Conceptual Model
Entities & Attributes
PATIENT
- patientId (primary key)
- patientProfileId
- patientEmail
- patientInformation
- patientUsername
- patientDate
Comment
- commentPatientId (foreign key)
- commentDate
- commentProviderId
- commentPysicianId
PROVIDER
- providerId (foreign key)
- providerEmail
- providerVisits
- providerRatings
- providerReviews
PHYSICIAN
- physicianId (primary key)
- physicianEmail
- physicianUsername
- physicianComments
- physicianDate
REALTIONS
- Many physicians may belong to one provider (1 to 1)
- One patient may belong to many physicians (1 to m)
Click link below for the Enitity Relationship Diagram