|
| class | GameListener |
| | action listener for the game page
|
| |
| class | ModeListener |
| | action listener for the game mode page
|
| |
| class | TutorialListener |
| | action listener for the tutorial page
|
| |
| class | WelcomepageListener |
| | action listener for the welcome page
|
| |
§ GameController()
| startGame.GameController.GameController |
( |
GameView |
v, |
|
|
GameModel |
m |
|
) |
| throws ArithmeticException |
this is the constructor for the controller
contains methods for detecting environment variables and passing variables between model and view.
- Parameters
-
| v | is the view framework |
| m | is the model framework |
- Exceptions
-
| ArithmeticException | object position could not be out of the game frame |
Set default game mode to be single
Set up velocities
Obtain the window frame dimentions
Setups for ball in the Model
Setups for the bomb in the Model
Setups for the paddles in the Model
- obtain paddle dimensions
- initialize paddle positions for the player paddle
- initialize paddle positions for the ai paddle
Setups for the players in the Model
- initialize number of life for the player and the ai
Setups for the View
- obtain windows from the view
- add action listener for different windows
Initialize the start time and end time for a player
§ checkGameOver()
| void startGame.GameController.checkGameOver |
( |
| ) |
|
|
private |
checks whether the game ends
if the score of one side is 0, redirect to the ending state (stop the game and display message).
- Exceptions
-
| IOException | cannot find and read the highScore.txt |
- If the number of life for the ai is 0, the player wins
- If the number of life for the player is 0, the ai wins.
- Calculate the time a player has played, if breaks the record, save the record.
§ display()
| void startGame.GameController.display |
( |
| ) |
|
sets the display
opens a window
§ getbombVelX()
| int startGame.GameController.getbombVelX |
( |
| ) |
|
returns the velocity of bomb in the x direction.
- Returns
- bombVelX
§ getbombVelY()
| int startGame.GameController.getbombVelY |
( |
| ) |
|
returns the velocity of bomb in the y direction.
- Returns
- bombVelY
§ getElapsedTime()
| void startGame.GameController.getElapsedTime |
( |
| ) |
|
|
private |
obtains the time the user plays.
calculates the time elapsed and save it into a variable.
§ getVelX()
| int startGame.GameController.getVelX |
( |
| ) |
|
returns the velocity of ball in the x direction.
- Returns
- velX
§ getVelY()
| int startGame.GameController.getVelY |
( |
| ) |
|
returns the velocity of ball in the y direction.
- Returns
- velY
§ resetGame()
| void startGame.GameController.resetGame |
( |
| ) |
|
|
private |
resets to initial when the player exits a game.
re-initializes the variables in the game model and update the variables in view and model.
Reset player scores/lives in the model.
Reset the game mode
Reset ball and bomb position
Reset the ball and bomb speed
Re-obtain scores/lives from the model
Reset scores in the view
§ setSpeed()
| void startGame.GameController.setSpeed |
( |
| ) |
|
|
private |
resets speed to ball and bomb
re-initialize by randomized values
Randomize the velocity for bomb
§ ADVANCE
| final int startGame.GameController.ADVANCE = 1 |
|
private |
§ ai
| Player startGame.GameController.ai |
|
private |
| Ball startGame.GameController.b |
|
private |
§ ballX
| int startGame.GameController.ballX |
|
private |
§ bomb
| Ball startGame.GameController.bomb |
|
private |
§ bombVelX
| int startGame.GameController.bombVelX |
|
private |
§ bombX
| int startGame.GameController.bombX |
|
private |
§ bottomPadX
| int startGame.GameController.bottomPadX |
|
private |
§ displayScore
| HighScore startGame.GameController.displayScore |
|
private |
§ endTime
| long startGame.GameController.endTime |
|
private |
§ exit
| JButton startGame.GameController.exit |
|
private |
§ frameWidth
| int startGame.GameController.frameWidth |
|
private |
§ gameDisplay
§ gameFrame
| JFrame startGame.GameController.gameFrame |
|
private |
Variable declarations for the game
- frame dimension
- paddle information
- ball information
- bomb information
- player information
§ gameMode
| int startGame.GameController.gameMode |
|
private |
§ inset
| int startGame.GameController.inset |
|
private |
§ keys
| HashSet<String> startGame.GameController.keys = new HashSet<String>() |
|
private |
Declare a variable for storing the key pressed records
§ mode
| Mode startGame.GameController.mode |
|
private |
§ paddle_player
| Paddle startGame.GameController.paddle_player |
|
private |
§ padWidth
| int startGame.GameController.padWidth |
|
private |
§ pause
| JButton startGame.GameController.pause |
|
private |
§ player
| Player startGame.GameController.player |
|
private |
§ resume
| JButton startGame.GameController.resume |
|
private |
§ save
| JButton startGame.GameController.save |
|
private |
§ scoreTop
| int startGame.GameController.scoreTop |
|
private |
§ SINGLE
| final int startGame.GameController.SINGLE = 0 |
|
private |
§ startTime
| long startGame.GameController.startTime |
|
private |
| Timer startGame.GameController.t |
|
private |
§ timeElapsed
| double startGame.GameController.timeElapsed |
|
private |
§ tut
Import model and view to the controller (this interface).
§ velX
| int startGame.GameController.velX =1 |
|
private |
Variable declarations for storing the game view windows
- welcome page
- mode page for showing different modes
- tutorial page for giving instructions to the students
The documentation for this class was generated from the following file:


(#) Expensive Assertions !!! WARNING: Expensive Assertions This is a warning. Id : `ExpensiveAssertion` Summary : Expensive Assertions Note : **This issue is disabled by default**; use `--enable ExpensiveAssertion` Severity : Warning Category : Performance Platform : Any Vendor : Android Open Source Project Feedback : https://issuetracker.google.com/issues/new?component=192708 Affects : Kotlin and Java files Editing : This check runs on the fly in the IDE editor Implementation : [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/AssertDetector.kt) Tests : [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/AssertDetectorTest.kt) Copyright Year : 2014 In Kotlin, assertions are not handled the same way as from the Java programming language. In particular, they're just implemented as a library call, and inside the library call the error is only thrown if assertions are enabled. This means that the arguments to the `assert` call will **always** be evaluated. If you're doing any computation in the expression being asserted, that computation will unconditionally be performed whether or not assertions are turned on. This typically turns into wasted work in release builds. This check looks for cases where the assertion condition is nontrivial, e.g. it is performing method calls or doing more work than simple comparisons on local variables or fields. You can work around this by writing your own inline assert method instead: ```kotlin @Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") inline fun assert(condition: () -> Boolean) { if (_Assertions.ENABLED && !condition()) { throw AssertionError() } } ``` In Android, because assertions are not enforced at runtime, instead use this: ```kotlin inline fun assert(condition: () -> Boolean) { if (BuildConfig.DEBUG && !condition()) { throw AssertionError() } } ``` !!! Tip This lint check has an associated quickfix available in the IDE. (##) Example Here is an example of lint warnings produced by this check: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text src/test/pkg/AssertTest.kt:18:Warning: Kotlin assertion arguments are always evaluated, even when assertions are off. Consider surrounding assertion with if (javaClass.desiredAssertionStatus()) { assert(...) } [ExpensiveAssertion] assert(expensive()) // WARN ----------- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Here is the source file referenced above: `src/test/pkg/AssertTest.kt`: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers package test.pkg class AssertTest { fun test() { assert(true) // Error on Android, not elsewhere assert(false) // Error on Android, not elsewhere assert(true, { "My lazy message" }) // Error on Android, not elsewhere assert(true) { "My lazy message" } // Error on Android, not elsewhere } fun testNotExpensive(int: Int, bool1: Boolean, bool2: Boolean) { assert(int < 5) assert(!bool1 || bool2 == bool1) assert(int != bool1) { "This is $int and x2=$bool2" } // ERROR } fun testExpensive() { assert(expensive()) // WARN } fun testOk() { if (AssertTest::class.java.desiredAssertionStatus()) { assert(expensive()) // Error on Android, ok elsewhere } if (javaClass.desiredAssertionStatus()) { assert(expensive()) // Error on Android, ok elsewhere } } private fun expensive(): Boolean { Thread.sleep(500) return (System.currentTimeMillis().rem(1L)) == 0L } fun foo(x1: Boolean, x2: Boolean, x3: Number?) { assert(x1 == x2) // ERROR assert(x3 != null) // ERROR } } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You can also visit the [source code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/AssertDetectorTest.kt) for the unit tests for this check to see additional scenarios. The above example was automatically extracted from the first unit test found for this lint check, `AssertDetector.testExpensiveKotlinCalls`. To report a problem with this extracted sample, visit https://issuetracker.google.com/issues/new?component=192708. (##) Suppressing You can suppress false positives using one of the following mechanisms: * Using a suppression annotation like this on the enclosing element: ```kt // Kotlin @Suppress("ExpensiveAssertion") fun method() { assert(...) } ``` or ```java // Java @SuppressWarnings("ExpensiveAssertion") void method() { assert(...); } ``` * Using a suppression comment like this on the line above: ```kt //noinspection ExpensiveAssertion problematicStatement() ``` * Using a special `lint.xml` file in the source tree which turns off the check in that folder and any sub folder. A simple file might look like this: ```xml <?xml version="1.0" encoding="UTF-8"?> <lint> <issue id="ExpensiveAssertion" severity="ignore" /> </lint> ``` Instead of `ignore` you can also change the severity here, for example from `error` to `warning`. You can find additional documentation on how to filter issues by path, regular expression and so on [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). * In Gradle projects, using the DSL syntax to configure lint. For example, you can use something like ```gradle lintOptions { disable 'ExpensiveAssertion' } ``` In Android projects this should be nested inside an `android { }` block. * For manual invocations of `lint`, using the `--ignore` flag: ``` $ lint --ignore ExpensiveAssertion ...` ``` * Last, but not least, using baselines, as discussed [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html).


Fall 22 - Present
large language models and explanations
Summer 21 - Summer 22
developed deep learning models for pathology
Fall 17 - spring 22
phd research in interpretable ml
Summer 20
developed methods for causal benchmarking of fairness in computer vision models
Summer 19
developed methods for interpreting medical machine-learning models
Summer 17
Worked on unsupervised pretraining of CNNs for semantic segmentation
Fall 16 - Spring 17
Contributed to development of novel weighted-L1, multi-task Gaussian graphical models
Summer 14, 15, 16
Improved CNNs for neural-image segementation + explored dendritic backpropagation
Fall 14 - Fall 16
Simulated computational models of stochastic neurons
I've been lucky to be advised by / collaborate with many amazing people
It has been my pleasure to help advise some incredible students
MSR PhD interns


Monkey Login
I am here for:
Bananas
Lady Monkeys
Fun
Forgot
Username / Password?
Create your Account


Element index for package Controller
[ a ]
[ c ]
[ d ]
[ e ]
[ g ]
[ h ]
[ i ]
[ l ]
[ m ]
[ n ]
[ r ]
[ s ]
[ u ]
[ _ ]
_
- _addParamArray
- in file Controller.php, method Controller::_addParamArray()
Method: _addParamArray Adds an array to $params
- _getBaseUrl
- in file Controller.php, function _getBaseUrl()
Method: _getBaseUrl Returns the BaseUrl
- _getBaseUrlPath
- in file Controller.php, function _getBaseUrlPath()
Method: _getBaseUrlPath Retuns the called Uripath
- _getFullUrl
- in file Controller.php, function _getFullUrl()
Method: _getFullUrl Returns the full URL
- _setCalledUrl
- in file Controller.php, function _setCalledUrl()
Method: _setCalledUrl
- _setParamArray
- in file Controller.php, method Controller::_setParamArray()
Method: _setParamArray Set $params, mostly used by the dispatcher
- __getFullRequest
- in file Controller.php, function __getFullRequest()
Method: __getFullRequest returns baseurl array
top
a
- addRoute
- in file Dispatcher.php, method Dispatcher::addRoute()
Method: addRoute Lets you set a Controller and an Action which gets called when your rout was requested.
top
c
- Controller
- in file Controller.php, class Controller
dioxid\controller$Controller Baseclass for Normal Controllers
- Controller.php
- procedural page Controller.php
top
d
- dispatch
- in file Dispatcher.php, method Dispatcher::dispatch()
Method: dispatch
- Dispatcher
- in file Dispatcher.php, class Dispatcher
dioxid\controller$Dispatcher Crawls the URL for requestet Controller and Actions and calls them.
- Dispatcher.php
- procedural page Dispatcher.php
top
e
- externalRedirect
- in file Controller.php, function externalRedirect()
Method: externalRedirect Triggers an external redirect
top
g
- getParam
- in file Controller.php, method Controller::getParam()
Method: getParam Gets an Paaram
- getParamArray
- in file Controller.php, method Controller::getParamArray()
Method: getParamArray Returns the complete $params array
- getView
- in file Controller.php, function getView()
Method: getView Returns an View instance
top
top
i
- index
- in file Controller.php, method Controller::index()
Method: index
- internalRedirect
- in file Controller.php, function internalRedirect()
Method: internalRedirect Triggers an internal redirect
top
l
- load
- in file Dispatcher.php, method Dispatcher::load()
Method: load Calls the Controller and the action and sets the params This lacks also error handling.
top
m
- matchRoutes
- in file Router.php, function matchRoutes()
Method: matchRoutes
top
top
top
s
- setParam
- in file Controller.php, method Controller::setParam()
Method: setParam Sets an key-value pair in $params
top
u
- useREST
- in file RestfulController.php, method RestfulController::useREST()
Method: useREST Checks the REQUEST_METHOD and calls a callback for each provided method.
top
|
|


Education
Elementary: Philex Mines Elementary School Inc.(PMESI)
High School: Saint Louis High School-Philex(SLHS-P)
College: University of the Cordilleras(UC)
Career Objective
To work for an organization which provides me the opportunity to improve my skills and knowledge to growth along with the organization objective.
To secure a position where I can efficiently contribute my skills and abilities to the growth of the organization and build my professional career.
Skills and Ability
Computer Skills
Software: Microsoft Office, Microsoft Word, Windows, Excel, PowerPoint.
Other Skills
Creative Writing; Good at Dancing and Singing
Hobbies and Interest
-Music
-Playing Badminton
-Creating Stories
-Writing
Personal Information
Birthday: May 30, 1997
Age: 20
Address: Philex Mines Padcal, Tuba, Benguet, Camp 3
Gender: Male
Civil Status: Single
Religion: Roman Catholic


PyPlotter - A Python/Jython Graph Plotting Package. Manual
|
5.2 Class Graph.Cartesian
Class Graph.Cartesian is versatile high level class for
drawing graphs on a cartesian plain. It supports linear and logarithmic
scales and automatic adjustment of the coordinate range as well as
automatic captioning.
- __init__
- (self, gfx, x1, y1, x2, y2,
title = “Graph”, xaxis=”X”,
yaxis=”Y”,
styleFlags = DEFAULT_STYLE,
axisPen = Gfx.BLACK_PEN, labelPen = Gfx.BLACK_PEN,
titlePen
= Gfx.BLACK_PEN, captionPen = Gfx.BLACK_PEN,
backgroundPen
= Gfx.WHITE_PEN,
region = REGION_FULLSCREEN)
Initializes
the class with the following parameters:
- gfx
- Gfx.Driver: The Gfx drivers used for drawing the graph. Use AUTO_PEN
if you want the Graph.Cartesian object to find a suitable driver (depending
on the installed widget toolkits) on its own.
- x1,y1,x2,y2
- floats: Coordinate range.
- title
- string: Title string.
- xaxis, yaxis
- strings: Axis descriptions.
- styleFlags
- integer: Interpreted as a bitfield of flags that define the style of
the graph. The following flags can be set:
- AXISES, AXIS_DIVISION, FULL_GRID
- Draw axises, axis divisions and (or) a full grid.
- LABELS, CAPTION, TITLE
- Draw axis labels, a caption with descriptions (generated from the pen
names) below the graph, a title above the graph.
- SHUFFLE_DRAW, EVADE_DRAW
- Two different algorithms to allow for the visibility of overlapping
graphs.
- LOG_X, LOG_Y
- Use a logarithmic scale for the x or y axis respectively.
- KEEP_ASPECT
- Keep the aspect ratio of the coordinates.
- AUTO_ADJUST
- Automatically adjust the range of the graph when a point is added that
falls outside the current range.
- axisPen, labelPen, titlePen, captionPen, backgroundPen
- Gfx.Pen: Pens (sets of graphical attributes) for the respective elements
of the graph.
- region
- 4-tuple of floats. The part of the screen that is used for the graph.
Example: (0.05, 0.05, 0.95, 0.95) would leave a border of 5 % of the
screen size on each side.
- adjustRange
- (self, x1, y1, x2, y2) - Adjusts the range of the coordinate plane.
- setStyle
- (self, styleFlags=None, axisPen=None,
labelPen=None, titlePen=None,
captionPen=None,
backgroundPen = None) - Changes the style
of the graph. Only parameters that are not None will be
changed.
- setTitle
- (self, title) - Changes the title of the graph.
- setLabels
- (self, xaxis=None, yaxis=None) - Changes the labels of the graph.
- resizedGfx
- (self) - Takes notice of a resized window.
- changeGfx
- (self, gfx) - Switch to another device context. This can be useful
if you want to draw the current graph into a buffered image that you
want to save on a disk. In this case you have to create the buffered
image, create the Gfx driver for your buffered image, call changeGfx
and then redraw. After that you can call changeGfx to switch back to
the former output device.
- redrawGraph
- (self) - Redraws the graph, but not the caption, title or labels.
- redrawCaption
- (self) - Redraw only the caption of the graph.
- redraw
- (self) - Redraws the whole graph including, title, labels and the caption.
- reset
- (self, x1, y1, x2, y2) - Restarts with a new empty graph of the given
range. All pens are removed.
- addPen
- (self, name, pen=AUTO_GENERATE_PEN,
updateCaption=True) - Adds
a new pen with name “name” and attributes “pen”
to the graph.
- removePen
- (self, name, redraw=True) - Removes a pen from the graph. All coordinate
pairs associated with this pen will be discarded.
- addValue
- (self, name, x, y) - Add the point (x,y) to the graph drawn with pen
“name”.
- peek
- (self, x, y) - Returns the graph coordinates of the screen coordinates
(x,y)
- xaxisSteps
- (self, x1, x2) - Returns a list of virtual x-coordinates in the range
[x1,x2] with one point for each screen pixel. This is especially useful
when working with large range logarithmic scales.
- yaxisSteps
- (self, y1, y2) - Returns a list of virtual x-coordinates in the range
[y1,y2] with one point for each screen pixel. This is especially useful
when working with large range logarithmic scales.
|
|
g+
f
@


A Patchy Franz
Python
C++
C
JavaScript
Submit
STDOUT
Output of your code
STDERR
Error messages generated by your code


September 22
Unto what is the kingdom of God like? and whereunto shall I resemble it? It is like a grain of mustard seed, which a man took, and cast into his garden; and it grew, and waxed a great tree; and the fowls of the air lodged in the branches of it. Luke 13:18-19
If you're going to grow in the kingdom of God, you're going to do it just like a seed that's been planted in the ground. How does a seed grow? All at once? No, it grows constantly-- 24 hours a day--a little all the time until it accomplishes what it was created to do.
Many of us don't operate that way spiritually. We study and pray very hard for a few days and then quit. Then, when some disaster comes, we make a mad attempt to pray and stand on the Word, all the while realizing that, for some reason, we're just not as strong as we ought to be.
There's no such thing as an overnight success in the kingdom of God! Real strength, real growth comes as you consistently and constantly keep the Word before your eyes, in your ears, and in the midst of your heart. Not just when you want to or when you feel like it, but constantly, like the seed, a little all the time. A man came up to me once and said, "Man, your ministry just took off overnight, didn't it?" "If it did," I answered, "it was certainly the longest night I ever spent in my life!"
From his perspective my success did seem to spring up quickly. That's because he didn't see me during all those hours and weeks and months and years I spent in the Word of God. He didn't see the daily process that lay behind that success. He just saw the results.
Make up your mind to begin that daily process of constant growth today. Determine to start putting the Word in your heart consistently. Every day a line here, a line there--a tape here, a tape there. Begin to act as though that Word is true every hour of the day regardless of what comes or how you feel. Keep adding to your faith, meditating on it, confessing it, seven days a week. Eventually, your faith will be bigger than you ever dreamed it could be. Scripture Reading: Luke 13:18-21


Admin View Page
Back To Home
ABS-Product:
Block Chain Type:
| Index |
Content |
Updated Time |
Updated User |
hash |
prevHash |
Comment |
|
|
|
|
|
|
|
ADD New Block: * input
content which contain "illegalContent" for testing the illegalContent
Value is calculated automatically, unable to add
by manually.
Bank record is add by bank transaction account
automatically, unable to add by manually.
Rank is caculated by click button at home page, unable to add by manually.
This CDO is belong to follow CDOs
This CDO is not belong to any
CDOs
This CDO contains following ABS product(s):
ABSs' Data missed, please contact admin.
This CDOs contians follow CDO(s)
View Details
（Faked product, no link provided）
This CDO contains following ABS product(s):
ABSs' Data missed, please contact admin.
No CDO(s) data found, maybe data missed
Data missed, please contact admin.


Coderz Ensemble
{% if messages %} {% for message in messages %}
{{ message }}
{% endfor %} {% endif %}
Programming is a challenging role and once you enter this field you will encounter new hurdles and life enduring challenges.
{% csrf_token %}
Username
Email
Password
Already a member?
Login Here


Handy Enumerable Methods
In this section I'll work with a sample array of strings and integers, to demonstrate some especially handy methods that use Ruby's Enumerable Module. Which deal in:
- Enumerable - a module that can be applied to any Ruby class with an #each method
- Enumerator - a class. An enumerator is produced implicitly when you call an iterative method on a collection. It's what your method iterates over. It can also be produced as a more static object, and stored, as a variable, with #to_enum.
["a","b","c"].to_enum
returns#=> <Enumerator: ["a", "b", "c"]:each>
magic_words = ["julie", "andrews"]
with_feeling = magic_words.map {|word| word.upcase}
#=> ["JULIE","ANDREWS"]
p magic_words
["julie", "andrews"]
magic_words.map!
#=> ["JULIE","ANDREWS"]
p magic_words
["JULIE","ANDREWS"]
#map
and its destructive equivalent,#map!
apply whatever code you pass to them to every element of the array.
confused_array = ["even","even", "odd", "odd","even"]
confused_array.each_with_index do |elem, index|
if (index + 1) % 2 == 0
confused_array[index] = "even"
else confused_array[index] = "odd"
end
end
p confused_array
#=> ["odd", "even", "odd", "even", "odd"]
#each_with_index
allows you to declare two variables, first for the item (as in #each), and second for the index in the array. This allows you to test the index, or to work with several instances of the same value, while keeping tabs on what index they each occur at. You cannot write over the value of each element, but you can overwrite it if you refer to the array at the index.
exclusive_range = (0...80)
exclusive_range.include?(80)
#=> false
inclusive_range = (0..80)
inclusive_range.include?(80)
#=> true
#include?
checks whether the enumerator contains the value you pass as an argument, and returns true/false.
arr = ["John","Jacob","Jingleheimer","Schmidt"]
arr.cycle
#=> <Enumerator: ["John", "Jacob", "Jingleheimer", "Schmidt"]:cycle>
arr_enumerated = arr.cycle(1)
5.times {p arr_enumerated.next}
"John"
"Jacob"
"Jingleheimer"
"Schmidt"
#[Error raised]: in `next': iteration reached an end (StopIteration)
arr.cycle(2) {|name| p name + "!"}
#displays each name with an exclamation mark, twice, in sequence.


Infos
Fun
utility
about me
About me
Hi there! I am Sourabh. Passionate front end developer, expert in web UI. You can ping me at sourabh3339@gmail.com


Mikkel Bergmann
Tagging, filtering, globbing, Querying, plugins, event subscription. These are all words that usually aren't associated with things that a console can do; that is all about to change!
Let us take the red pill..."You can actually use structured and semantic logging to generate unit tests?!"
Mikkel Bergmann
Automatically refreshes your styles in the browser when files are updated, optionally executing a compilation step.
Surely this takes a lot of effort? Why don't we take the easy way?
If you are interested in presenting a lightning talk, please let me know for next month.


--- layout: default title: Home ---
{{ upcomming.content | strip_html | truncate: 150 }} Read more {{ upcomming.date | date_to_string }} - {% include read-time.html %}


trustwave
Businessmodel of Trustwave
Customer Segments
Trustwave has a mass market business model, with no significant differentiation between customer segments. The company targets its offerings at firms across industries and sizes.
Value Proposition
Trustwave offers four primary value propositions: convenience, performance, risk reduction, and brand/status.
The company offers convenience by providing automated information security, a service it calls “Smart Security on Demand”. Also, many of its solutions are available across numerous delivery mechanisms, providing clients with flexibility.
The company has demonstrated strong performance through tangible results for customers. In 2015, it researched over nine million Web application attacks, over five million malicious websites, and over two million network and vulnerability scans. It also scanned over 20 billion e-mails. Furthermore, in 2016 an indepedent study carried out by NSS Labs showed that the Trustwave Secure Web Gateway blocked 100% of exploits, passed all reliability and stability tests, and proved to be effective against all types of evasion techniques, including URL, HTML, and binary obfuscation.
The company reduces risk through high security standards. It has been a leader in the PCI compliance space, which involves payment card fraud. Its framework also helps ensure compliance with business-impacting standards such as HIPAA, GLBA, FISMA, SOX, and ISO. Lastly, it maintains the following credentials: QSA (Qualified Security Assessor), ASV (Approved Scanning Vendor), PFI (PCI SSC Forensic Investigator), and QPASC (Qualified Payment Application Security Company).
The company has established a strong brand due to its success. More than three million business enrollees operating in over 96 countries utilize the TrustKeeper Cloud. Its prominent clients include Manna Enterprises, Intergraph, and Magnolia Hotels. It is the only firm that is an authorized PCI Forensive Investigator in every geographic region. Lastly, it has won many honors, including:
- Recognition as a “Leader“ in the IDC MarketScape for Emerging Managed Security Services Providers (2016)
- Recognition as a “Leader“ in the Managed Security Services market by Forrester Research (2014)
- A Secure Web Gateway & Web Filtering Product Differentiation Award from Frost & Sullivan (2012)
- Induction into the Industry Innovator’s Hall of Fame in the Anti-Malware Technology category by SC Magazine (2013) ### Channels
Trustwave’s main channels are its direct sales team and its website. The company promotes its offering through its social media pages, participation in webinars and conferences, and an e-mail newsletter providing the latest security trends and news.
Customer Relationships
Trustwave’s customer relationship is primarily of a self-service, automated nature. Customers utilize the service through the main platform while having limited interaction with employees. The company’s website features a “TrustKeeper Portal” through which customers can access support tools. It also has a “Resource Library” section that includes articles, white papers, research reports, analyst reports, data sheets, spec sheets, guides, infographics, videos, webinars, and trial software.
Despite this orientation, there is a personal assistance component. The company provides phone and e-mail support (including a 24-hour hotline for security breaches) and consulting services for a fee.
Key Activities
Trustwave’s business model entails maintaining a robust cloud platform for its clients.
Key Partners
Trustwave operates the Partner Program, which includes the following types of partnerships:
Alliance Partners – The company works with financial institutions, service providers, and processors to develop and implement their merchant compliance programs. The programs include proprietary and on-demand technology solutions and are scaled for merchants of all sizes and shapes.
Reseller Partners – The company works with systems integrators, value-added resellers, and solution providers to help them sell its products and services to their customers.
SSL Partners – The company allows ISPs, hosting providers, eCommerce providers, and registrars to utilize its solutions in order to provide PCI scanning and SSL certificates to their customers.
Members of Trustwave’s Partner Program receive access to multiple benefits, including:
- Sales and marketing training and enablement tools
- High-level account support
- Competitive pricing
- Attractive profit margins
- Sustainable revenue opportunities
- Extensive industry expertise Beyond the Partner Program, Trustwave also maintains technology partnerships through which it works with other tech firms to develop and introduce security solutions, providing extra value for customers. Specific technology partners include Akamai, Carbon Black, Cisco, CounterTack, Fortinet, Juniper, Palo Alto Networks. The company also has strategic relationships with telecommunications firms, specifically Singtel, Optus, Globe Telecom, and Rogers Communications.
Key Resources
Trustwave’s main resource is its proprietary software platform, which serves over three million businesses.
It depends on human resources in the form of technology employees who maintain the platform, its consulting staff members who provide advisory services, and its customer service staff. Furthermore, it relies on its SpiderLabs team, which includes security and penetration testers, forensic investigators, incident responders, malware reversers, security researchers, and published authors.
The firm has important physical resources, namely its network of eight Security Operations Centers (SOCs) in Chicago, Minneapolis, Denver, Waterloo, Warsaw, Singapore, Manila, and Sydney. Lastly, it places a high priority on intellectual property, with 44 granted and 13 pending patents.
Cost Structure
Trustwave has a cost-driven structure, aiming to minimize expenses through significant automation.
Its biggest cost driver is likely sales/marketing, a fixed cost. Other major drivers are in the areas of customer support/operations and product development, both fixed expenses.
Revenue Streams
Trustwave has two revenue streams:
- Subscription Revenues – Revenues it generates from the fees it charges for regular access to its Trustwave cloud platform.
- Service Revenues – Revenues it generates from the fees it charges for receipt of professional services such as consulting.


{% extends 'layouts/user.html' %} {% block title %}Home{% endblock %} {% block content %}
Dear {{username}}, create new Message and start your journey with us.
Dear user, create new Message and start your journey with us.


2.2.3. Roof Shape Classifier¶
The Roof Shape Classifier is a module built upon the Generic Image Classifier module. It’s purpose is to classify the roof shape of a building. The roof classifier takes a list of satellite images as the input and will classify the roof type into one of three categories: gabled, hipped, and flat.
Note
The Roof shape classifier will only identify one roof type per image. As a consequence, the image you provide should only contain the building whose roof type is to be determined.
Many roof shapes found these days are classified as complex. The categories hipped, flat, and gabled were chosen as these are the classifications used in Hazus.
Warning
The classifier takes an image as the input and will always produce a prediction. Since the classifier is trained to classify only a specific category of images, its prediction is meaningful only if the input image belongs to the category the model is trained for.
<IP_ADDRESS>. Use the module¶
Suppose you had a number of images in a folder named image_examples/Roof.
The following is a python script you would create to use the RoofClassifier to predict the roof shapes for these images:
# import the module
from brails.modules import RoofClassifier
# initialize a roof classifier
roofModel = RoofClassifier()
# define the paths of images in a list
imgs = ['image_examples/Roof/gabled/76.png',
'image_examples/Roof/hipped/54.png',
'image_examples/Roof/flat/94.png']
# use the model to predict
predictions = roofModel.predict(imgs)
The predictions obtained when the script runs will look like following:
Image : image_examples/Roof/gabled/76.png Class : gabled (83.21%)
Image : image_examples/Roof/hipped/54.png Class : hipped (100.0%)
Image : image_examples/Roof/flat/94.png Class : flat (97.68%)
Results written in file roofType_preds.csv
Note
The reference to a pretrained model is in a file shipped with BRAILS and the first time you use this module, it will download that model from the internet to your local computer. This will allow you to use it directly without training your own model.
The current pretrained model was trained with 6,000 labeled images utilizing ResNet50. To perform the training a number of buildings with the roof classifications desired were identified utilizing OpenStreetMaps, including 2,000 ‘flat’, ‘gabled’, and ‘hipped’, respectively. Satellite images for those buildings were obtained using Google Maps, and these images were placed into one of three folders as discussed in Generic Image Classifier module. Prior to training the model, the images in the folders were reviewed to ensure they contained an image of a roof and were of the correct roof shape. The noise in this dataset is negligible.
As mentioned in the introduction, SimCenter is constantly updating these trained models. The simplest way to get the latest model is to update your BRAILS installation. This can be done by issuing the following in a terminal/powershell window:
pip install -U BRAILS --upgrade
The images used in the example can be downloaded from Zenodo.
<IP_ADDRESS>. Retrain the model¶
You can retrain the existing model with your own data. To do so, you would place each of your labeled images (images of type .png) into one three seperate folders.
my_roof_shapes
│── flat
│ └── *.png
│── hipped
| └── *.png
└── gabled
└── *.png
Then you would create a python script as shown below and run finally run that script to train the model.
# Load images from a folder
roofModel.loadData('my_roof_shapes')
# Re-train it for only 1 epoch for this demo. You can increase it.
roofModel.retrain(initial_epochs=1)
# Test the re-trained model
predictions = roofModel.predict(imgs)
# Save the re-trained model
roofModel.save('myCoolNewRoofModelv0.1')
To use your newly trained model with the Roof Shape classifier, you would include in the RoofClassifier’s constructor the name of the trained model as shown in the following script.
# import the module
from brails.modules import RoofClassifier
# initialize a roof classifier
roofModel = RoofClassifier('myCoolNewRoofModelv0.1')
# define the paths of images in a list
imgs = ['image_examples/Roof/gabled/76.png',
'image_examples/Roof/hipped/54.png',
'image_examples/Roof/flat/94.png']
# use the model to predict
predictions = roofModel.predict(imgs)


Weather Dashboard
Search for a City :
City (Month DD, YYYY)
Temperature:
Humidity:
Wind speed:
UV-index:
5-Day Forecast:


[gecode-users] C++ search tree viewer
Guido Tack
tack at ps.uni-sb.de
Fri Oct 6 16:13:31 CEST 2006
Hi everyone.
I hope I can do some of you a favour by announcing a preview version
of the Gecode/C++ search tree explorer. You can get it from our svn at
https://svn.gecode.org/svn/explorer/trunk/
It is based on Trolltech's Qt toolkit and should compile on Linux,
Mac OS and Windows. You will need at least Qt 4.1. The build system
uses Trolltech's qmake (we'll probably change that later). To build
the explorer, just run configure and then make - we don't provide any
install target yet. Configure assumes that you have pkg-config
installed, and that it can find the Gecode config files (otherwise
you'll have to set PKG_CONFIG_PATH to <prefix>/lib/pkgconfig if you
installed Gecode to <prefix>).
This should give you a library libGecodeExplorer.so (on Linux,
different names on different platforms...). You can have a look at
the example file test.cc to get an idea how to use it.
To compile test.cc, just run (using gcc on Linux or Mac OS)
g++ `pkg-config --cflags gecode gecode-minimodel` -c test.cc -o test.o
g++ -o test `pkg-config --libs gecode gecode-minimodel` -L. -
lGecodeExplorer test.o
There are no fancy menus yet, but you can try the context menu on
search nodes. I hope this tool will be useful, and I would be happy
to get some feedback.
Cheers,
Guido
--
Guido Tack
Programming Systems Lab, Saarland University, Germany
http://www.ps.uni-sb.de/~tack
More information about the gecode-users
mailing list


Ordered facts encode information positionally. To access that information,
a user must know not only what data is stored in a fact but which field
contains the data. Non-ordered (or deftemplate) facts provide the user
with the ability to abstract the structure of a fact by assigning names
to each field found within the fact. The deftemplate construct is
used to create a template which can then be used by non-ordered facts to
access fields of the fact by name. The deftemplate construct is analogous
to a record or structure definition in programming languages such as Pascal
and C.
The syntax of the deftemplate construct is:
(deftemplate <deftemplate-name> [<comment>]
<slot-definition>*)
<slot-definition> ::= <single-slot-definition> |
<multislot-definition>
<single-slot-definition> ::= (slot <slot-name>
<template-attribute>*)
<multislot-definition> ::= (multislot <slot-name>
<template-attribute>*)
<template-attribute> ::= <default-attribute> |
<constraint-attribute>
<default-attribute>
::= (default ?DERIVE | ?NONE | <expression>*) |
(default-dynamic <expression>*)


Welcome to the skinning 5-minute tutorial.
By now you've gone through a few of the other tutorials and so probably know how to work with some of the features that XChain's provides. Since you're familiar with how the files work lets jump right in. Open up the skins/index.xhtml file.
You should see the code below at the top of the document.
<!--
<?skin system-id="resource://servlet-context/skins/base.xhtml"?>
-->
Remove the comment and reload this page.


DRE DATA UPLOADER
Artboard 1
Created with Sketch.
Connect to Service
Downloading Health Records...
Login to DRE
Save and Upload Health Records
Thanks!
Choose Provider:
Username
Password
Manual Upload
Upload your medical record here. Acceptable formats are: xml, pdf, txt
{{progress}}%
{{progressAlert}}
DRE Username
DRE Password
File Name
Type
Save to Computer
Upload to DRE
{{fileButton.filename}}
{{fileButton.filetype}}
Save
Upload
Upload
Upload
Upload
✅
{{dreAlert}}


About This Report
Statement of compliance with GRI principles
Ziraat Bank declares that this report was prepared in accordance with Level A of Global Reporting Initiative (GRI) Reporting Guide version 3.1.
Scope of the report
This is the first sustainability report published by Ziraat Bank.
Ziraat Bank’s sustainability performance, as covered by this report, is primarily concerned with a variety of economic, social and environmental issues These issues are considered from the standpoints of stakeholders, the corporate structure, banking, the environment, human resources and the community.
This report, designed to provide stakeholders with access to detailed and current information on the Bank’s sustainability performance, enriches Ziraat Bank’s information sharing, reporting and transparency traditions. The report is designed to demonstrate Ziraat Bank’s accountability and transparency and to record its corporate performance, while also showing how sustainability is being integrated into all aspects of the Bank’s business.
In addition, the report serves as a research and teaching tool for the Bank’s internal and external stakeholders and drives best practices throughout the Bank.
The matters considered in this report were determined in light of systematic and internationally recognized auditing procedures carried out at Ziraat Bank during 2013 as a result of discussions and meetings held with members of the Bank’s top and middle management and also on the basis of stakeholder feedback.
The Bank’s Sustainability Policy was approved by the Board of Directors on 30 September 2014. The content of this report is limited to Ziraat Bank’s own activities and does not cover the Bank’s subsidiaries and affiliates.
The information contained in the sustainability report is supplemented by other Ziraat Bank reports and documents.
Period covered by the report
Unless otherwise indicated, this report covers the period of 1 January 2013 - 31 December 2013. The information provided in this report will serve as a benchmark in any future sustainability reports which Ziraat Bank may publish.
Reporting cycle
Ziraat Bank will continue to report on its sustainability performance at 12-month intervals in the future.
Reporting content and external assurance
The performance of Ziraat Bank undergoes periodic inspection and approval by public agencies and organizations.
The information in this scope are summarized below:
How this report is published
Ziraat Bank’s Sustainability Report was
published in Turkish and English. For PDF file
of the report:
http://www.ziraatbank.com.tr/en/InvestorRelations/CorporateGovernance/Pages/SustainabilityReports.aspx


PlanetM
language
My profile
My profile
signout
TRENDING
Let Your Home
Album by
Rock star
TRENDING
Charis Brown feet
Album by
Rock star
TRENDING
Let Your Home
Album by
Rock star
New Releases
New
See all
Listen now
Listen now
Listen now
Listen now
Listen now
Listen now
Listen now
Listen now
Discover
View
See all
Pop
Pop
Pop
Pop
Pop
Pop
Pop
Pop


$routeProvider
(service in module ui.router.compat
)
$routeProvider
of the ui.router.compat
module overwrites the existing
routeProvider
from the core. This is done to provide compatibility between
the UI Router and the core router.
It also provides a when()
method to register routes that map to certain urls.
Behind the scenes it actually delegates either to
$urlRouterProvider or to the
$stateProvider to postprocess the given
router definition object.
Registers a route with a given route definition object. The route definition object has the same interface the angular core route definition object has.
url – {string} –
URL as string
route – {object} –
Route definition object
{object}
– $routeProvider - $routeProvider instance
var app = angular.module('app', ['ui.router.compat']); app.config(function ($routeProvider) { $routeProvider.when('home', { controller: function () { ... }, templateUrl: 'path/to/template' }); });


使用视图引擎¶
Since Feathers is just an extension of Express it’s really simple to render templated views on the server with data from your Feathers services. There are a few different ways that you can structure your app so this guide will show you 3 typical ways you might have your Feathers app organized.
A Single “Monolithic” App¶
You probably already know that when you register a Feathers service, Feathers creates RESTful endpoints for that service automatically. Well, really those are just Express routes, so you can define your own as well.
ProTip: Your own defined REST endpoints won’t work with hooks and won’t emit socket events. If you find you need that functionality it’s probably better for you to turn your endpoints into a minimal Feathers service.
Let’s say you want to render a list of messages from most recent to oldest using the Jade template engine.
// You've set up your main Feathers app already
// Register your view engine
app.set('view engine', 'jade');
// Register your message service
app.use('/api/messages', memory());
// Inside your main Feathers app
app.get('/messages', function(req, res, next){
// You namespace your feathers service routes so that
// don't get route conflicts and have nice URLs.
app.service('api/messages')
.find({ query: {$sort: { updatedAt: -1 } } })
.then(result => res.render('message-list', result.data))
.catch(next);
});
Simple right? We’ve now rendered a list of messages. All your hooks will get triggered just like they would normally so you can use hooks to pre-filter your data and keep your template rendering routes super tight.
ProTip: If you call a Feathers service “internally” (ie. not over sockets or REST) you won’t have a
context.params.provider
attribute. This allows you to have hooks only execute when services are called externally vs. from your own code.
Feathers As A Sub-App¶
Sometimes a better way to break up your Feathers app is to put your services into an API and mount your API as a sub-app. This is just like you would do with Express. If you do this, it’s only a slight change to get data from your services.
// You've set up your main Feathers app already
// Register your view engine
app.set('view engine', 'jade');
// Require your configured API sub-app
const api = require('./api');
// Register your API sub app
app.use('/api', api);
app.get('/messages', function(req, res, next){
api.service('messages')
.find({ query: {$sort: { updatedAt: -1 } } })
.then(result => res.render('message-list', result.data))
.catch(next);
});
Not a whole lot different. Your API sub app is pretty much the same as your single app in the previous example, and your main Feathers app is just a really small wrapper that does little more than render templates.
Feathers As A Separate App¶
If your app starts to get a bit busier you might decide to move your API to a completely separate standalone Feathers app, maybe even on a different server. In order for both apps to talk to each other they’ll need some way to make remote requests. Well, Feathers just so happens to have a ../api/client that can be used on the server. This is how it works.
// You've set up your feathers app already
// Register your view engine
app.set('view engine', 'jade');
// Include the Feathers client modules
const client = require('@feathersjs/client');
const socketio = require('@feathersjs/socketio-client');
const io = require('socket.io-client');
// Set up a socket connection to our remote API
const socket = io('http://api.feathersjs.com');
const api = client().configure(socketio(socket));
app.get('/messages', function(req, res, next){
api.service('messages')
.find({ query: {$sort: { updatedAt: -1 } } })
.then(result => res.render('message-list', result.data))
.catch(next);
});
ProTip: In the above example we set up sockets. Alternatively you could use a Feathers client REST provider.
And with that, we’ve shown 3 different ways that you use a template engine with Feathers to render service data.


Quote Type: {{myQuote.tittleQuote}}
{{myQuote.messageQuote}}
Posted By: {{myQuote.author}}
This Quote was posted for {{myQuote.postedOn|date|datesCount}} days


The following list has list-style-position: inside:
The following list has list-style-position: outside:
"list-style-position: outside" is the default setting.


Annotation Property: relation
http://purl.org/dc/terms/relation
Annotations (8)
-
description "Recommended best practice is to identify the related resource by means of a string conforming to a formal identification system. " (en-us)
-
hasVersion http://dublincore.org/usage/terms/history/#relationT-001
-
issued "2008-01-14" ()
-
modified "2008-01-14" ()
-
comment "A related resource." (en-us)
-
isDefinedBy http://purl.org/dc/terms/
-
label "Relation" (en-us)
-
note "This term is intended to be used with non-literal values as defined in the DCMI Abstract Model (http://dublincore.org/documents/abstract-model/). As of December 2007, the DCMI Usage Board is seeking a way to express this intention with a formal range declaration." (en-us)
Superproperties (1)
Usage (15)


Definition: An individual throws an object which is retrieved by an animal and returned to the person.
Explication: Fetching is traditionally a trick performed by dogs, and originated in the activity of bird hunting, where a dog would be trained to retrieve the birds shot down by the hunter and bring them back unharmed. Other animals, generally other household pets such as cats or birds, can also be trained to fetch. The animal is supposed to bring the object back to the person's hand or close to their reach, and release the object to the person. Often the person will then immediately throw the object again. Fetching may be done many times in a row. If the animal does not bring the object back to within the person's reach, the person may retrieve the object from the animal and throw it again. Most fetching is done by the animal carrying the object in their mouth, alternatively they may push the object along the ground with their face/paws. The person may or may not give a verbal command when they throw the object.


User showcase¶
Since its creation for OUI.sncf in 2016 to the French AlloCovid service in 2020, Tock has been used by more and more teams (including SNCF but not only) to build conversational bots dedicated to various use cases :
- business to customer and business to business
- e-commerce, transactions, payment
- assistance, care, help desks
- FAQ and decision trees
This page presents various assistants and products built and powered by Tock, some of them awarded by the community.
AlloCovid¶
The AlloCovid conversational service informs and guides French population about the Covid-19.
It results from the collaboration of numerous French experts, tech partners and volunteers. To find out more about the project, the team and partners, how the bot works, etc. visit www.allocovid.com.
Available by phone, on the Web and WhatsApp, AlloCovid builds around a Tock bot and integrates with additional technologies such as Allo-Media and Voxygen voice solutions.
The AlloCovid bot is powered by open source technologies (Tock) and open source itself: its sources are available on
repository allocovid
.
The source repository also includes the Allo-Media connector, technical details about the bot and its functional specification.
- Name: AlloCovid
- Date of birth: in production since spring 2020
- Field: health information and guidance
- Channels: text & voice, by phone, on WhatsApp and Website
OUIbot, the OUI.sncf bot¶
OUIbot is the conversational assistant from OUI.sncf. Available since 2016 on Facebook Messenger, OUIbot was built along with the first versions of Tock.
With OUIbot, booking a train ticket has never been easier! It assists you in the preparation of your trips, allows you to make a complete reservation quickly and easily, from research to purchase (payment included), and accompanies you during your trip.
Thanks to the numerous connectors, OUIbot is now available on multiple conversational channels, such as the company Website www.oui.sncf, social networks, voice assistants, smart display and even SmartBrics with JCDecaux devices.
In 2019, OUIbot answers approximately 10.000 users a day. It has been awarded Best Robot Experience for the second year in a row.
- Name: OUIbot
- Date of birth: in production since 2016
- Field: e-commerce/travel, transactions (booking, payment), alerts & push notifications, push messages to an agent
- Channels: text & voice, on the company Website, Messenger, WhatsApp, Business Chat (Messages), Google Assistant, Google Home, Alexa, JCDecaux SmartBrics
MaxBot, bank bot for Aumax pour moi¶
Aumax pour moi is an application that allows you to gather your cards in one and only place. Your every day is eased by using only one application and an unique card. To support you every day, Aumax allow you to :
- earn cashback ;
- send and receive money ;
- use a concierge service ;
- ask for financial advice, plan for life's projects, etc.
- and so much more !
Through the app, the Aumax pour moi's bot, based on Tock, assists you through every question you may have on the app, your accounts or on your card.
The bot is available on the Aumax pour moi's app. Aumax pour moi takes care and answers up to 5 000 requests a day.
- Nom : Aumax pour moi
- Date of birth: in production since 2019
- Field: banking, services, personal assistant
- Channels: text, on the mobile app
Enedis internal Chatbot¶
The Enedis internal Chatbot gives the 39 000 employees a simplified means to access the company logistics services.
The conversational agent provides level-1 support by answering frequent employee questions, as well as guiding them to Business service-desk tools. It also aims at better understanding employee needs through the analysis of most frequent demands.
Built with Tock, the chatbot is available on an internal company Website.
- Name: Chatbot interne Enedis
- Date of birth: in production since 2020
- Field: internal logistics services
- Channels: text, on an internal Website
L'Assistant SNCF¶
L' Assistant SNCF is the mobile application for SNCF passengers on Android and iOS, covering both trains and other modes of transport.
With L' Assistant (the SNCF Assistant), you can plan your itinerary, stay informed in real time, buy your transport tickets directly or book a taxi ride. More features are yet to come.
Accessible via the "microphone" in the mobile application, le SNCF Assistant's conversational bot is built with Tock plus the speech-to-text Android and iOS functions.
- Name: L' Assistant SNCF
- Date of birth: in production, featuring Tock voice function since 2019
- Field: travel & transport (multi-modal route research, etc.)
- Channels: voice, on the SNCF mobile application for Android and iOS
LinTO by Linagora¶
The LinTO platform is an Open Source toolbox designed to address professional and industry needs by enabling the development and integration of voice operated processes.
LinTO is a smart Open Source assistant designed by LINAGORA: based only on Open Source technologies, LinTO is cloud enabled but GAFAM-free (Google-Amazon-Facebook-Apple-Microsoft), and respects your privacy as it doesn’t share your data for commercial use.
LinTO is designed to reduce time-consuming & stressful tasks, using a smart AI program to understand your voice and help you all along the office day even during meetings: agenda management, reminders, notetaking, e-mails, weather forecast, traffic, words definition, newspaper headlines, etc.
The research project, which is funded by the French government's PIA (for “Future Investment Program”) as part of the Grands Défis du Numérique, is a collaboration between French companies, LINAGORA and ZELROS, and French research laboratories, IRIT, LaaS and LIX.
The LinTO NLU (Natural Language Understanding) system is based on Tock to support the use of several AI models dedicated to specific use cases. It automatically learns according to one's usage when adding or removing skills from the platform.
- Name: LinTO
- Date of birth: in production, leveraging Tock since 2019
- Field: Smart Business Assistant (agenda, e-mails, notetaking, etc.)
- Channels: voice (portability: Raspberry Pi, ARM, Android, Web...)
Tilien, the Transilien chatbot¶
Tilien is the Transilien chatbot on Messenger.
Designed as a personal and friendly travel companion, it informs you about upcoming departures, the service status, current and future works, itineraries and much more (route plans, timetables, etc.) on the entire Ile-De-France rail network: Metro, RER, Transilien, Tram.
Powered by Tock, the chatbot is waiting for you on Facebook Messenger.
- Name: Tilien
- Date of birth: in production, since 2018 with Tock
- Field: transport & assistance (route research, route plans, traffic conditions, etc.)
- Channels: text, on Messenger (botsncftransilien)
Mon Assistant TGV INOUI¶
Mon Assistant advises customers and travellers of the TGV INOUI brand before, during and after their journey.
The chatbot can tell you all about the service status, train departure platforms, customer seats, onboard services (bar, electrical outlets, etc.). It also allows you to talk with a SNCF agents while remaining in the same conversation.
Located on the TGV INOUI Facebook page and the WiFi Portal
aboard the train, the assistant is based on Tock and the tock-react-kit
.
- Name: Mon Assistant TGV INOUI
- Date of birth: in production since 2019
- Field: assistance & passenger information (dock information, current travel information, on-board services), relay to an agent
- Channels: text, on Messenger (TGV INOUI) and the WiFi Portal aboard the train
L' Agent virtuel SNCF¶
L' Agent virtuel SNCF (SNCF Virtual Assistant) presents passenger information and any disruptions on all trains (TGV, Intercites, TER, Eurostar, etc.) in a conversational manner.
Query the bot by train number, passenger file, next departures, etc. to get the latest information and traffic status.
Accessible via the SNCF Facebook page, Twitter and sncf.com,
the Agent virtuel leverages Tock and the tock-react-kit
.
- Name: Agent virtuel SNCF
- Date of birth: in production since 2019
- Field: travel & transport (traffic situation, works, next departures), relay to an agent
- Channels: text, on sncf.com (direct link), Messenger (SNCFOFFICIEL) and Twitter (@sncf)
Eve, the e-voyageurs internal assistant¶
Eve is the internal assistant of e-voyageurs SNCF employees.
The chatbot answers common questions, refers to the right interlocutors and collaborative tools of the company, automates common requests to IT Support, General Services, Legal Department, etc. DevOps teams can also ask it for production status, next planned operations, or even to manage certain operations directly for greater simplicity and reactivity.
Eve is always listening to the employees, both within the offices and on-the-go using Teams applications with Tock.
- Name: Eve
- Date of birth: in production since 2019
- Field: internal & B2B support (FAQ, IT Support, HR, Legal), DevOps automation (monitoring, deployments, production management, etc.)
- Channels: text & voice, internally within the offices and on-the-go via Teams
Other Tock bots...¶
Various organizations already leverage Tock to build conversational agents, which are not mentionned here (among them, several of the TOSIT companies). Sometimes these applications are not dedicated to public usage and their organization will not communicate about them. We will mention them here when it is possible ;)
Do not hesitate to look at the Gitter community chat to see professionals, students, large and smaller companies currently using or experimenting with Tock for their conversational or NLU projects.
What about you?¶
As a generic platform, Tock enables numerous use cases and integration of internal as well as external channels. Please feel free to contact us in case of doubts or questions about Tock features or possibilities for a new project of your own.
And don't hesitate to share your achievements with the community! 🙂


Toggle navigation
Food Hub
Home
About
Contact
Sign Up
Login
Food Hub
Quality Over Qunatity
Go For A Meal


Home
Menu
About
Team
Want to know what makes our coffee
A+
?
(We're experts when it comes to delivering a good cup of joe.
Trust us on this one, A+ coffee got your back.
Because if its not A+ then it's not coffee worth drinking)
The Perfect Cup
Supreme Beans
Friendly Staff
Yummy pastries
French Press
Coffee To Go


Wanult Validator Example
This example shows how to use validator.
Account Information
Username
Password
Confirm Password
Shipping Information
Name
Gender
Male
Female
Billing Address
State
Bei Jing
Shang Hai
Wu Han
Country
China
U.S.A
Germany
Billing Information
Card Type
Visa
Discover
American Express
Card No:
CVC
Expire
Month
1
2
3
4
5
6
7
8
9
10
11
12
Receipt
Do not include a receipt in the package
Submit
Example


STARTX(1) STARTX(1) NAME startx - initialize an X session SYNOPSIS startx [ [ client ] options ... ] [ -- [ server ] [ display ] options ... ] DESCRIPTION The startx script is a front end to xinit(1) that provides a somewhat nicer user interface for running a single session of the X Window System. It is often run with no arguments. Arguments immediately following the startx command are used to start a client in the same manner as xinit(1). The special argument '--' marks the end of client arguments and the beginning of server options. It may be convenient to specify server options with startx to change on a per- session basis the default color depth, the server's notion of the number of dots-per-inch the display device presents, or take advantage of a dif‐ ferent server layout, as permitted by the Xorg(1) server and specified in the xorg.conf(5) configuration. Some examples of specifying server argu‐ ments follow; consult the manual page for your X server to determine which arguments are legal. startx -- -depth 16 startx -- -dpi 100 startx -- -layout Multihead To determine the client to run, startx first looks for a file called .xinitrc in the user's home directory. If that is not found, it uses the file xinitrc in the xinit library directory. If command line client options are given, they override this behavior and revert to the xinit(1) behavior. To determine the server to run, startx first looks for a file called .xserverrc in the user's home directory. If that is not found, it uses the file xserverrc in the xinit library directory. If command line server options are given, they override this behavior and revert to the xinit(1) behavior. Users rarely need to provide a .xserverrc file. See the xinit(1) manual page for more details on the arguments. The system-wide xinitrc and xserverrc files are found in the /etc/X11/xinit directory. ENVIRONMENT VARIABLES DISPLAY This variable gets set to the name of the dis‐ play to which clients should connect. Note that this gets set, not read. XAUTHORITY This variable, if not already defined, gets set to $(HOME)/.Xauthority. This is to prevent the X server, if not given the -auth argument, from automatically setting up insecure host-based authentication for the local host. See the Xserver(1) and Xsecurity(7) manual pages for more information on X client/server authentica‐ tion. FILES $(HOME)/.xinitrc Client to run. Typically a shell script which runs many programs in the background. $(HOME)/.xserverrc Server to run. The default is X. /etc/X11/xinit/xinitrc Client to run if the user has no .xinitrc file. /etc/X11/xinit/xserverrc Server to run if the user has no .xserverrc file. SEE ALSO xinit(1), X(7), Xserver(1), Xorg(1), xorg.conf(5) X Version 11 xinit 1.3.2 STARTX(1)


Galaxy Tanks
PRESS ANY KEY OR CLICK TO START
SETTINGS
Nothin to see here (yet).


Web Audio API Tutorials
- Introduction: The AudioContext
- Loading Sounds
- Playing Sounds
- Changing the volume of a sound
- Cross-fading between two sounds
-
Dealing with Time: playing sounds with rhythm
- Applying a simple filter effect to a sound
- Adding a distortion effect to a sound
- Writing a simple visualizer
- Controlling and sweetening the final mix
- Playing portions of a sound
- Automation: changing audio parameters over time
- Playing a sound with a volume fade-in
- Automatic cross-fading from one sound to another
- Sweeping a filter frequency
- Adding a room effect to a sound
- Working with looped wavetable sounds
- Working with looped rhythmic sounds
- Moving a sound in space
- Creating delay effects
- Simple delay
- Delay with feedback
- Ping-pong delay
- Chorus effects
- Creating a phasor effect
- Low-level audio manipulation with JavaScript


Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam id dolor id nibh ultricies vehicula.
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec ullamcorper nulla non metus auctor fringilla. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla.
Maecenas sed diam eget risus varius blandit sit amet non magna. Donec id elit non mi porta gravida at eget metus. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit.
Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Duis mollis, est non commodo luctus.
The following snippet of text is rendered as bold text.
The following snippet of text is rendered as italicized text.
Left aligned text.
Center aligned text.
Right aligned text.
Muted: Fusce dapibus, tellus ac cursus commodo, tortor mauris nibh.
Nullam id dolor id nibh ultricies vehicula ut id elit.
Etiam porta sem malesuada magna mollis euismod.
Donec ullamcorper nulla non metus auctor fringilla.
Duis mollis, est non commodo luctus, nisi erat porttitor ligula.
Maecenas sed diam eget risus varius blandit sit amet non magna.
An abbreviation of the word attribute is attr.
HTML is the best thing since sliced bread.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.
Someone famous Source Title
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.
Someone famous Source Title
All HTML headings, h1
through h6
are available.
Bootstrap's global default font-size
is 14px, with a line-height
of 1.428. This is applied to the
and all paragraphs. In addition,

(paragraphs) receive a bottom margin of half their computed line-height (10px by default).
Make a paragraph stand out by adding .lead
.
The typographic scale is based on two LESS variables in variables.less: @font-size-base
and @line-height-base
. The first is the base font-size used throughout and the second is the base line-height. We use those variables and some simple math to create the margins, paddings, and line-heights of all our type and more. Customize them and Bootstrap adapts.
Make use of HTML's default emphasis tags with lightweight styles.

tag to set text at 85% the size of the parent. Heading elements receive their own font-size
for nested
elements.
and
in HTML5.
is meant to highlight words or phrases without conveying additional importance while
is mostly for voice, technical terms, etc.Stylized implementation of HTML's
element for abbreviations and acronyms to show the expanded version on hover. Abbreviations with a title
attribute have a light dotted bottom border and a help cursor on hover, providing additional context on hover.
title
attribute with the
element..initialism
to an abbreviation for a slightly smaller font-size.Present contact information for the nearest ancestor or the entire body of work. Preserve formatting by ending all lines with

.
For quoting blocks of content from another source within your document.

around any HTML as the quote. For straight quotes we recommend a

.

around any HTML as the quote. For straight quotes we recommend a

..pull-right
for a floated, right-aligned blockquote.list-style
and left margin on list items (immediate children only). This only applies to immediate children list items, meaning you will need to add the class for any nested lists as well.inline-block
and some light padding.inline-block
and some light padding.


HLA Reporting Implementation Guide
0.0.1 - Draft
HLA Reporting Implementation Guide - Local Development build (v0.0.1). See the Directory of published versions
Contents:
Human leukocyte antigen (HLA) genotyping is fundamental for research and clinical practice in immunogenetics and histocompatibility. This HLA Reporting Implementation Guide (IG) describes how to report HLA genotyping results using HL7 FHIR. It relies heavily on the Genomics Reporting IG developed by the HL7 Clinical Genomics Workgroup, constraining profiles for GeneticsReport, Genotype and Haplotype. It also constrains the MolecularSequence resource to allow reporting sequencing results together with novel variants.
A complete HLA genotyping report is typically contained in a FHIR transaction Bundle containing individual resources conforming to the profiles described in this IG. Examples of full transaction bundles included below. Minimally, it would contain an HLA Summary Report and one or more HLA Genotype observations.
In a simple case, the HLA Summary Report refers to an HLA Genotype observation for each HLA gene. The HLA alleles found in the genotype are assigned to alleles found in the the Immuno Polymorphism Database (IPD) through the international ImMunoGeneTics (IMGT) project (found here) and expressed as a Genotype List String (GLString) using a GLString Code.
If it is necessary to report the molecular sequence that was used to derive the HLA Genotype observation, one or more HLA Sequence profiles can be used. This is shown in Fig 1.
Figure 1
It is often desirable to identify sequence data that was used to assert or assign individual HLA alleles. This can be done by adding another Observation to capture this, shown in Figure 2.
Figure 2
The example in this figure is a simplistic and the actual results often includes multiple sequences (e.g., exons 2 and 3). Allele assignment is a complex process and may result in ambiguous results (see Reporting Ambiguity below).
We use the HLA Allele profile for Allele assignment. This profile is derived from the Haplotype profile. In domains other than HLA (e.g. Pharmacogenomics), it is common to consider gene-level alleles as named haplotypes of a set of smaller variants (Variation Modelling Collaboration Data Model and Specification). This is not how the HLA community considers Haplotype, which is typically used to describe a set of gene-level alleles from different HLA genes that are found on the same DNA molecule. To be able to represent this latter description, this IG allows the representation "haplotypes of haplotypes." (example not shown)
This pattern can be extended to multiple HLA genes in a single report. An example for HLA-A, HLA-B, and HLA-C is shown in Figure 3.
Figure 3
And adding individual alleles...
Figure 4
Once individual resources are created, including references to each other, a FHIR transaction bundle may be created. A skeleton of such a FHIR bundle containing a Summary Report and a Genotype observation is shown below
<Bundle> <type value="transaction"/>   <entry> <fullUrl value="urn:uuid:[unique uuid for HLA Summary]"/> <resource> <DiagnosticReport> <meta> <profile value="http://fhir.nmdp.org/ig/hla-reporting/StructureDefinition/hla-summary-report" /> </meta> ...snip... <result> <reference value="urn:uuid:[unique uuid for HLA Genotype found in this bundle]"/> </result> </DiagnosticReport> </resource> <request> <method value="POST"/> <url value="DiagnosticReport"/> </request> </entry>  <entry> <fullUrl value="urn:uuid:[unique uuid for HLA Genotype]"/> <resource> <Observation> <meta> <profile value="http://fhir.nmdp.org/ig/hla-reporting/StructureDefinition/hla-genotype" /> </meta> ...snip... <derivedFrom> <reference value="urn:uuid:[unique uuid for HLA Allele found in this bundle]"/> </derivedFrom> ...etc... </Observation> </resource> <request> <method value="POST"/> <url value="Observation"/> </request> </entry> ...other entries... </Bundle>
HLA allele assignment is often ambiguous. Genotype ambiguity results from an inability to establish chromosomal phase between identified polymorphisms. Allele ambiguity results when the polymorphisms that distinguish alleles fall outside of the regions assessed by the genotyping system.
Allele ambiguity is often captured using NMDP Multiple Allele Codes. Because of limitations of this system, including introducing further ambiguity into the report, the GL String is preferred. This format uses a hierarchical set of operators to describe the relationships between alleles, lists of possible alleles, phased alleles, genotypes, lists of possible genotypes, and multilocus unphased genotypes, without losing typing information or increasing typing ambiguity. To use this format, the GL String Code system can be used, which embeds this GL String into a format containing the gene system, and version of the nomenclature used within the GL String.
For example, this valueCodeableConcept would be used to describe a genotype for HLA-B, based on the 3.31.0 release of the IMGT-IPD/HLA database, that is ambiguous for one of the alleles in the genotype (HLA-B*07:02:01:01/HLA-B*07:02:01:03), and unambiguous for the other (HLA-B*13:02:01:01).
<valueCodeableConcept> <coding> <system value="http://glstring.org"/>  </coding> </valueCodeableConcept>
The Observations used in this IG require specific codes. For example, the HLA Genotype observation requires a code.coding using a LOINC code that reprepresents "Genotype display name". To indicate that this genotype is for HLA-A, we use the component for Gene Studied. Together this code.coding and the component indicate that this Observation is a Genotype for HLA-A. This 'post-coordination' of the Observation code allows for reporting for any genotype and gene name combination.
 <coding> <system value="http://loinc.org"/>  <display value="Genotype display name"/> </coding>  ... <component>  <coding> <system value="http://loinc.org"/>  <display value="Gene studied [ID]"/> </coding>  <valueCodeableConcept> <coding> <system value="http://www.genenames.org/geneId"/>  <display value="HLA-A"/> </coding> </valueCodeableConcept> </component>
Often a lab will use another LOINC code to represent this, or use a local code system. This can be included as an additional coding. For example, at the time of this writing, there are ten different LOINC codes related to typing of HLA-A. As long as the alternative coding is conceptual the same or is subsumed by the other, an additional code.coding can be included if the lab or healthcare system uses it in their current system. In the following example, the LOINC code 13298-5 representing "HLA-A [Type]" is added as an additional code.coding that is subsumed by the more general "Genotype Display Name".
 <coding> <system value="http://loinc.org"/>  <display value="Genotype display name"/> </coding> <coding> <system value="http://loinc.org"/>  <display value="HLA-A [Type]"/> </coding>  ... <component>  <coding> <system value="http://loinc.org"/>  <display value="Gene studied [ID]"/> </coding>  <valueCodeableConcept> <coding> <system value="http://www.genenames.org/geneId"/>  <display value="HLA-A"/> </coding> </valueCodeableConcept> </component>


jQuery simpleQuote Plugin Demo
-
- Before you start some work, always ask yourself three questions - Why am I doing it, What the results might be and Will I be successful. Only when you think deeply and find satisfactory answers to these questions, go ahead.
- Life is a Horse driven cart, Fate its driver. You are the horse, Passengers - as allotted by God. Sometimes rides to a wedding, sometimes to the graveyard. On stumbling, there is always the earth.
- An equation means nothing to me unless it expresses a thought of God.
- Undisturbed calmness of mind is attained by cultivating friendliness toward the happy, compassion for the unhappy, delight in the virtuous, and indifference toward the wicked.


psb_krylov -- Krylov Methods Driver
Routine
This subroutine is a driver that provides a general interface for all
the Krylov-Subspace family methods implemented in PSBLAS version 2.
The stopping criterion can take the following values:
- 1
- normwise backward error in the infinity
norm; the iteration is stopped when
- 2
- Relative residual in the 2-norm; the iteration is stopped
when
- 3
- Relative residual reduction in the 2-norm; the iteration is stopped
when
The behaviour is controlled by the istop argument (see
later). In the above formulae, is the tentative solution and
the corresponding residual at the -th iteration.
- Type:
- Synchronous.
- On Entry
-
- method
- a string that defines the iterative method to be
used. Supported values are:
- CG:
- the Conjugate Gradient method;
- CGS:
- the Conjugate Gradient Stabilized method;
- GCR:
- the Generalized Conjugate Residual method;
- FCG:
- the Flexible Conjugate Gradient method5;
- BICG:
- the Bi-Conjugate Gradient method;
- BICGSTAB:
- the Bi-Conjugate Gradient Stabilized method;
- BICGSTABL:
- the Bi-Conjugate Gradient Stabilized method with restarting;
- RGMRES:
- the Generalized Minimal Residual method with restarting.
- a
- the local portion of global sparse matrix
.
Scope: local
Type: required
Intent: in.
Specified as: a structured data of type spdatapsb_Tspmat_type.
- prec
- The data structure containing the preconditioner.
Scope: local
Type: required
Intent: in.
Specified as: a structured data of type precdatapsb_prec_type.
- b
- The RHS vector.
Scope: local
Type: required
Intent: in.
Specified as: a rank one array or an object of type vdatapsb_T_vect_type.
- x
- The initial guess.
Scope: local
Type: required
Intent: inout.
Specified as: a rank one array or an object of type vdatapsb_T_vect_type.
- eps
- The stopping tolerance.
Scope: global
Type: required
Intent: in.
Specified as: a real number.
- desc_a
- contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: a structured data of type descdatapsb_desc_type.
- itmax
- The maximum number of iterations to perform.
Scope: global
Type: optional
Intent: in.
Default: .
Specified as: an integer variable .
- itrace
- If print out an informational message about
convergence every iterations.
Scope: global
Type: optional
Intent: in.
- irst
- An integer specifying the restart parameter.
Scope: global
Type: optional.
Intent: in.
Values: . This is employed for the BiCGSTABL or RGMRES
methods, otherwise it is ignored.
- istop
- An integer specifying the stopping criterion.
Scope: global
Type: optional.
Intent: in.
Values: 1: use the normwise backward error, 2: use the scaled 2-norm
of the residual, 3: use the residual reduction in the 2-norm. Default: 2.
- On Return
-
- x
- The computed solution.
Scope: local
Type: required
Intent: inout.
Specified as: a rank one array or an object of type vdatapsb_T_vect_type.
- iter
- The number of iterations performed.
Scope: global
Type: optional
Intent: out.
Returned as: an integer variable.
- err
- The convergence estimate on exit.
Scope: global
Type: optional
Intent: out.
Returned as: a real number.
- cond
- An estimate of the condition number of matrix ; only
available with the method on real data.
Scope: global
Type: optional
Intent: out.
Returned as: a real number. A correct result will be greater than or
equal to one; if specified for non-real data, or an error occurred,
zero is returned.
- info
- Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.


You forgot your password? You dont have to worry just choose one of the following ways which is more eassy and convinient to you.
Enter your email or the email you can access
Enter your phone number


Zhen Wang / 王震
Hi! I'm a postdoctoral researcher working with Prof. Eric Xing from CMU/MBZUAI and Prof. Zhiting Hu from UCSD.
My research interests lie in natural language processing and machine learning.
I received my PhD from The Ohio State University, advised by Prof. Huan Sun.
In summer 2022, I interned at MIT-IBM Watson AI Lab working with Rameswar, Yoon, Leonid, and Rogerio on efficient adaptation of large language models.
In summer 2021, I was a research intern at the NLP group in Microsoft Research, Redmond, working with Nebojsa and Kolya, studying coherence boosting and prompting calibration on GPT-3.
In summer 2020, I was a research intern at the Data Science team in NEC Labs America working with Bo Zong, exploring commonsense knowledge representation and reasoning.
Email /
CV (Feb 2023) /
GitHub /
Twitter /
Google Scholar
|
|
Research Overview
My research is rooted in human-centered AI with the aim to infuse machine learning models, especially foundation models, with a human-like understanding of the world and knowledge to enable AI as both a reliable assistant and an insightful collaborator. I believe future AI systems need to not only augment human capabilities but also resonate with human values, understandings, accessibility, and proactive problem-solving. My ultimate goal is not to build AI that merely replicates or replaces human abilities, but to develop systems that enrich human experiences, amplify human potential, honor human values, and actively collaborate with humans in addressing real-world challenges.
-
Interpreting and steering ML models towards human values: Transparency is key in human-centered AI. I develop methodologies to unlock the black box to enhance our understanding of their behavior, and ensure they align with human values via more robust control and prompting techniques.
[ACL 2020]
[ACL 2022]
[ACL 2023]
[New preprint]
-
Adapting and transferring knowledge for dynamic human needs:
Human-centered AI demands AI systems that can swiftly adapt and learn in response to the changing needs and circumstances of its human users. I develop efficient methods to transfer knowledge between AI systems and adapt them across diverse tasks and domains for greater accessibility.
[ICLR 2023]
[NAACL SUKI 2022]
[EACL 2023]
-
Augmenting models to proactively solve real-world problems for humans:
An active problem-solving drive is a distinctive trait of human intelligence. I aim to elevate AI systems from passive respondents into proactive problem solvers by interacting with the physical world and novel domains.
[New preprint]
[New preprint]
Research Opportunities: I consistently seek out highly motivated students, particularly from underrepresented groups, to join me in various research projects both during the school year and throughout the summer. If you are eager to enhance your research abilities and be a part of this exciting opportunity, kindly email me expressing your interest.
|
News
-
07/2023: Invited to serve as a PC member for AAAI 2024.
-
06/2023: Invited to give a talk at George Mason University on June 13th, 2023.
-
06/2023: Invited to give a talk at North Carolina State University on June 3rd, 2023.
-
06/2023: Invited to serve as a Reviewer for EMNLP 2023.
-
05/2023: One paper about prompting LLMs with probabilistic reasoning was accepted to ACL 2023!
-
03/2023: Invited to serve as a Reviewer for NeurIPS 2023.
-
03/2023: Invited to serve as an Area Chair for NLPCC 2023.
-
02/2023: Kicked off my postdoc adventure! 😎 Super stoked to work with the brilliant minds from UCSD, CMU, MBZUAI, and beyond, to push the boundaries of those incredible large language models and harness their power for the human society and other scientific domains! 🚀🔬💡
-
01/2023: One paper, Multitask Prompt Tuning, was accepted to ICLR 2023!
-
01/2023: One paper, Entity Tracking via Effective Use of Multi-Task Learning Models, was accepted to EACL 2023!
-
01/2023: Invited to serve as a Reviewer for ICML 2023.
-
12/2022: Invited to serve as a PC Member for KDD 2023 Research Track.
-
12/2022: Happy to finish my first in-person NLP course teaching and I'm impressed by what students have achieved after learning the very advanced NLP techniques. Check out this quick summary of their amazing final projects!
-
11/2022: Passed the PhD dissertation defense, Toward Knowledge-centric Natural Language Processing: Acquisition, Representation, Transfer, and Reasoning. Thanks to all my committee members, Prof. Huan Sun, Srinivasan Parthasarathy, Yu Su and Wei-Lun Chao.
-
08/2022: Will be teachinng CSE 5525: Foundations of Speech and Language Processing (Undergrad & Graduate) as an instructor at OSU this fall.
-
08/2022: Invited to serve as a PC member for AAAI 2023.
-
07/2022: Attended NAACL 2022 in Seattle. Presented our CQA Knowledge Transfer paper. Glad to meet all old and new friends!
-
06/2022: Invited to serve as a PC member for EMNLP 2022.
-
06/2022: Happy to give a talk about Efficient Adaptation of Large Language Models at the MIT Summer Working Group on Large LMs.
-
06/2022: Our TacoBot earned the third-place honor in the inaugural Alexa Prize TaskBot Challenge!
-
06/2022: Happy to give a tutorial about natural language processing and large language models in TDAI Deep Learning Summer School along with Prof. Huan Sun. Slides can be found here.
-
05/2022: Excited to join MIT-IBM Watson AI Lab in Cambridge, Boston as a research intern working with Rameswar Panda and Yoon Kim on efficient adaptation/pruning for large language models.
-
03/2022: Our team TacoBot moved forward to finals of the Alexa Prize TaskBot challenge!
-
03/2022: Honored to receive the 2022 Graduate Research Award of the CSE department.
-
02/2022: One paper, Coherence boosting: When your pretrained language model is not paying enough attention, was accepted to ACL 2022!
-
02/2022: Our team TacoBot moved forward to semifinals of the Alexa Prize TaskBot challenge! Try "Alexa, let's work together" or "Alexa, assist me" in your Alexa devices or the app when you want to do a DIY or cooking task!
-
12/2021: Passed the PhD candidacy exam with the proposal, "Knowledge-centric Natural Language Processing: Acquisition, Representation, and Reasoning". Thanks to all my committee members, Prof. Huan Sun, Srinivasan Parthasarathy, Yu Su and Wei-Lun Chao.
-
05/2021: Our team was selected to participate in the Alexa Prize TaskBot Challenge as one of 10 teams over 125 applications initiated from 15 countries! Looking forward to building a smart dialogue system to guide users through complex, multi-step plans (e.g., Cooking and DIY tasks) via multimodal interactions.
-
05/2021: Started Research Intern at Microsoft Research! Excited to work with Nebojsa Jojic and Kolya Malkin on Conditional Text Generation!
-
03/2021: Invited to serve as a PC member of EMNLP 2021.
-
03/2021: Attended WSDM 2021 virtually and present our work on modeling context pair interaction and learning graph pair emebddings.
-
03/2021: Honored to win Graduate Student Research Poster Award (Top 5) for 2021 Annual Student Research Poster Exhibition in our CSE department.
-
02/2021: Panelist on the panel discussion in Department of Astronomy, "2001: A Space Odyssey - Science Fiction vs Science Fact", discussing Artificial Intelligence, Life in Universe, Time & Relativity and Anthropology.
-
01/2021: Received SIGIR Student Travel Grant for WSDM 2021.
-
01/2021: Attended CDAC Rising Stars in Data Science Workshop with the agenda here.
-
12/2020: Honored to be selected to the Rising Stars in Data Science workshop hosted by the Center for Data and Computing (CDAC) at the University of Chicago.
-
12/2020: Invited to serve as a PC member of ACL 2021.
-
10/2020: Invited to serve as a PC member of NAACL 2021.
-
10/2020: One paper, Modeling Context Pair Interaction for Pairwise Tasks on Graphs, was accepted to WSDM 2021 (Acceptance Rate: 18.6%).
-
07/2020: Attended ACL 2020 virtually and presented our paper via QA sessions and pre-recorded video.
-
05/2020: Started Research Intern at NEC Labs America! Excited to work with Dr. Bo Zong on Commonsense Reasoning for NLU.
-
04/2020: One paper, Rationalizing Medical Relation Prediction from Corpus-level Statistics, about building self-interpretable deep learning model for relation prediction was accepted by ACL 2020 (Acceptance Rate: 22.7%).
-
04/2020: Invited to serve as a PC member of NLPCC 2020.
-
09/2019: One paper, Graph Embedding on Biomedical Networks: Methods, Applications, and Evaluations, was accepted by Bioinformatics.
-
08/2019: Attended KDD 2019 in Anchorage, Alaska and presented our work in an oral talk.
-
06/2019: Received SIGKDD Student Travel Award for KDD 2019.
-
04/2019: One paper, SurfCon: Synonym Discovery on Privacy-Aware Clinical Data, about knowledge extraction from text was accepted by KDD 2019 (Research Track, Acceptance Rate: 14.2%, Oral).
-
08/2018: One paper about Code Summarization was accepted by KDD 2018, Deep Learning Day.
-
06/2018: Attended NAACL 2018 in New Orleans, LA.
|
|
|
Shibo Hao, Yi Gu, Haodi Ma, Joshua Jiahua Hong, Zhen Wang, Daisy Zhe Wang, Zhiting Hu
PDF
Shibo Hao, Tianyang Liu, Zhen Wang, Zhiting Hu
PDF
Ana Jojic, Zhen Wang, Nebojsa Jojic
PDF
|
|
|
Batu Ozturkler, Nikolay Malkin, Zhen Wang, Nebojsa Jojic
[ACL 2023] The 61st Annual Meeting of the Association for Computational Linguistics (Main)
PDF / Code / Slides / Poster
We propose a two-stage probabilistic inference paradigm, ThinkSum, to improve LLMs' abilities of reasoning over multiple objects in two steps, Think (e.g., retrieval of associations) and Sum (e.g., aggregation of results), which beats chain-of-thought prompting in hard BIG-bench tasks.
|
|
|
Zhen Wang, Rameswar Panda, Leonid Karlinsky, Rogerio Feris, Huan Sun, Yoon Kim
[ICLR 2023] The Eleventh International Conference on Learning Representations
PDF / Code / Slides / Poster
We propose Multitask Prompt Tuning (MPT) to exploit the rich cross-task knowledge for more efficient and generalizable transfer learning. MPT learns a single trasnferrable soft prompt through the use of a novel combination of prompt decomposition and prompt distillation.
|
|
|
Janvijay Singh, Fan Bai, Zhen Wang
[EACL 2023] The 17th Conference of the European Chapter of the Association for Computational Linguistics (Main)
PDF / Code / Slides / Poster
How to transfer multi-task knowledge from pre-training to niche downstream tasks, such as entity tracking on the procedural text? We show that you can reach STOA performance by simply fine-tuning T5 but with specialized QA prompt and task-specific decoding.
|
|
|
Zhen Wang
The Ohio State University, Ph.D. Dissertation, 2022
PDF
|
|
|
Nikolay Malkin, Zhen Wang, Nebojsa Jojic
[ACL 2022] The 60th Annual Meeting of the Association for Computational Linguistics
PDF / Code / Slides / Poster (Long Paper, Oral Presentation)
We demonstrate that large language models have insufficiently learned the effect of distant words on next-token prediction. We present Coherence Boosting, an inference procedure that increases a LM’s focus on a long context, which gets huge improvement on NLG and NLU tasks.
|
|
|
Lingbo Mo*, Zhen Wang*, Jie Zhao, Huan Sun
[SUKI@NAACL 2022] NAACL 2022 Structured and Unstructured Knowledge Integration
PDF / Code / Slides / Poster *Equal contribution
We study knowledge transfer for multi-hop reasoning processes between structured (Knowledge Base) and unstructred (text corpus) knowledge. We design SimultQA unifying KBQA and TextQA systems and leverage it to study how the reasoning is transferred between two knowledge sources.
|
|
|
Shijie Chen, Ziru Chen, Xiang Deng, Ashley Lewis, Lingbo Mo, Samuel Stevens, Zhen Wang, Xiang Yue, Tianshu Zhang, Yu Su, Huan Sun
[Alexa Prize TaskBot Challenge] 1st Proceedings of Alexa Prize TaskBot (Alexa Prize 2021)
PDF / Third-place honor in the TaskBot Finals!
We build TacoBot, a task-oriented dialogue system for the inaugural Alexa Prize TaskBot Challenge to assist users in multi-step cooking and home improvement tasks. We propose several data augmentation methods, such as GPT-3 simulation to bootstrap neural dialogue systems into new domains and make them more robust to noise user initiatives.
|
|
|
Zhen Wang, Bo Zong, Huan Sun
[WSDM 2021] The 14th ACM International Conference on Web Search and Data Mining
PDF / Code / Slides / Poster (Long Paper, Online Presentation)
We propose to explicitly model context interactions for pairwise prediction tasks on graphs, which consists of two perspectives, node-centric and pair-centric. We also propose to pre-train pair embeddings to facilitate the pair-centric model.
|
|
|
Zhen Wang, Jennifer Lee, Simon Lin, Huan Sun
[ACL 2020] The 58th Annual Meeting of the Association for Computational Linguistics
PDF / Code / Slides / Poster / Video (Long Paper, Online Presentation)
We propose a self-interpretable framework to rationalize the neural relation prediction based on corpus-level statistics. This framework is inspired by human cognitive theory about recall and recognition, which provides structured knowledge triplets as rationales.
|
|
|
Xiang Yue, Zhen Wang, Jingong Huang, Srinivasan Parthasarathy, Soheil Moosavinasab, Yungui Huang, Simon Lin, Wen Zhang, Ping Zhang, Huan Sun
[Bioinformatics] Volume 36, Issue 4, 15 February 2020, Pages 1241-1251
PDF / Code / Slides / Poster
We benchmark 11 representative graph embedding methods on 5 important biomedical tasks. We verify the effectivenes of recent graph embedding methods and provide general guidelines for their usage.
|
|
|
Zhen Wang, Xiang Yue, Soheil Moosavinasab, Yungui Huang, Simon Lin, Huan Sun
[KDD 2019] The 25th ACM SIGKDD Conference on Knowledge Discovery and Data Mining
PDF / Code / Slides / Poster (Research Track, Long Paper, Oral Presentation)
We propose to discover structured knowledge, synonyms from privacy-aware text corpus and present a novel framework to leverage both surface form and context information to discover out-of-distribution synonyms.
|
|
|
Jayavardhan Reddy Peddamail, Ziyu Yao, Zhen Wang, Huan Sun
[KDD 2018 Deep Learning Day] The 24th ACM SIGKDD Conference on Knowledge Discovery and Data Mining
PDF / Code / Slides / Poster (SPOTLIGHT)
We examine three popular datasets mined from Stack Overflow on the code summarization task and show that StaQC (Stack Overflow Question-Code pairs) helps achieve substantially better results.
|
|
|
Weifeng Liu, Zhen Wang, Dapeng Tao, Jun Yu
[MMM 2015] The 21th International Conference on Multimedia Modeling
PDF / Code / Slides / Poster /
Bibtex
@inproceedings{liu2015hessian,
title={Hessian regularized sparse coding for human action recognition},
author={Liu, Weifeng and Wang, Zhen and Tao, Dapeng and Yu, Jun},
booktitle={International Conference on Multimedia Modeling},
pages={502--511},
year={2015},
organization={Springer}
}
We propose Hessian regularized sparse coding (HessianSC) for action recognition, which can well preserve the local geometry and steer the sparse coding varying linearly along the manifold of data distribution.
|
Honors and Awards
-
Third-Place Honor, Inaugural Alexa Prize TaskBot Challenge, 2022
-
Graduate Research Award, CSE, OSU, 2022
-
Graduate Student Research Poster Award (Top 5), CSE, OSU, 2021
-
SIGIR Student Travel Grant, 2021
-
Rising Stars in Data Science, Center for Data and Computing (CDAC), University of Chicago, January 2021
-
SIGKDD Student Travel Award, 2019
-
China Scholarship Council (CSC) Scholarship (fully funded visiting program in Polytech Nice Sophia), Nice, France, 2015
-
National Scholarship, China, 2014
-
Soong Ching Ling Foundation (SCLF) Scholarship, China, 2013
-
National Scholarship for Encouragement, China, 2012
|
Services
Area Chair/Senior PC Member:
Program Committee Member:
-
ACL ARR (Oct'21, Nov'21, Jan'22, Apr'22, Sep'22, Oct'22, Dec'22, Feb'23)
-
NAACL (2021, 2022 SUKI 2022 Workshop)
-
EMNLP (2021, 2022, 2023)
-
ACL (2021, 2023)
-
ICML 2023
-
NeurIPS 2023
-
KDD 2023
-
AAAI (2023, 2024)
-
NLPCC (2020, 2021, 2022)
External Reviewer:
-
KDD (2019, 2020), ACL 2018, ICDM 2018
|
|