design that looks alive, user stimulating and interactive
Responsive
Optimized designs for any screen, small or big.
Intuitive
Clear layouts, user friendly, embracing website accessibility
Who is this guy?
I'm Cristian Montenegro, a Full-Stack Web Developer based in Seattle, WA.
I deeply care about a seamless user experience, team work and a robust back end that
provides needed functionality and rich front-end features


Psalms 92:13
Those that be planted in the house of the LORD shall flourish in the courts of our God.


The purpose of this challenge is to demonstrate the MITRE Top 25 programming flaw: 'Use of a Broken or Risky Cryptographic Algorithm'.
Periodically ensure that the cryptography has not become obsolete. Some older algorithms, once thought to require a billion years of computing time, can now be broken in days or hours. This includes MD4, MD5, SHA1, DES, and other algorithms that were once regarded as strong.
This is the same vulnerable application from the previous challenge. The developers are now hashing the user password but is it the right algorithm? They still haven't fixed the missing authorization issue by the way.
Did you know that the site CrackStation.net maintains a list of known hashes for numbers and dictionary words, also known as a 'Rainbow Table'?
Obtain the password for user
and login to solve the challenge.
See if you can spot the problem in the code below.
<!--contents of administration page cwe327admin.jsp--> ... byte [] hash = Crypto.getInstance().getHash(tmpPwd,"SHA-1"); tmpPwd = Util.bytesToHex(hash); ...


This page gives a brief overview of the functionality of the Signbank website.
A user who is not logged in will be able to perform a keyword search and will see pages that match a given keyword; each page represents one sign and links are provided to other matches for that keyword. Keyword searches are based on the start of the word, so a search for 'ab' will find all keywords starting with those letters.
The view shown to a public user includes the video for the sign (if any), the keywords associated with the sign, and a list of definitions (noun, verb etc). The definitions that are shown on this page can be customised for a given Signbank site; for example, it is possible to show no definitions at all, even if they have been entered into the database.
This page can be configured to show links to the next/previous sign in the dictionary. These links will only work reliably if sign numbers have been used consistently in the dictionary since these define the order of signs. These links can be turned off for a particular Signbank.
A member of the public can register for the site and is then given the option of providing feedback on individual signs. Feedback can include uploading a video. The feedback and any video is only ever visible to staff and is never made publicly available.
A number of different levels of staff access are possible, the different capabilities are summarised later. This section gives a summary of all of the different staff capabilities.
At present, a user can only be given staff status by the administrator (Steve Cassidy), in the future some level of control over this may be added to the normal site owner capabilities. For now, please send a request to change a user's status to me.
Once a staff user is logged in they will see an additional menu containing links to staff only options. Other pages (such as this one) can also be limited to certain groups of users.
Staff have access to a more advanced search page for signs that includes all fields associated with signs and associated tags. The search form is shown at the top of the page, by default only the SN/Gloss and keyword search boxes are visible. There is an "Advanced Search" bar which will show more search options when clicked. Below the search from there is also an option to add a new sign.
The Search Gloss/SN field allows a search on either the sign number (SN), ID Gloss or Annotation ID Gloss. The search is on the first characters of these fields so entering 'ab' will show all signs with an ID Gloss or Annotation ID Gloss starting with these letters; entering '12' will show signs with a sign number starting with these digits. The keyword field allows search on the keywords associated with a sign in the same manner as the public search option, however this version is not limited to published signs. The user can just hit Enter or click on the Search button to perform the search.
Searches in the form use an implicit AND between fields - that is, if you enter 'ab' in the Gloss field and 'dry' in the keyword field you would see signs with an ID Gloss starting with 'ab' which also have a keyword 'dry' (eg. ABSORB in BSL Signbank).
Search results are shown in the list below the form, a summary of the number of matches to the search term is also shown. The results are shown in a table which lists the Sign Number, ID Gloss, Annotation ID Gloss, Morphology and tags associated with each matching sign. The sign number (which may be None if no sign number is set) is a link to a page that displays the full details of the sign.
Another option from this page is to export a version of the search results as a CSV
(spreadsheet) file. If you click on this button instead of the Search button the results
will be downloaded as dictionary-export.csv
. This file contains all of the
fields stored with each sign as well as the keywords and tags. No definitions or notes
are included in the CSV file.
If you click on a sign in the search results you will be taken to a detailed view of that sign, this is a variation on the view shown to the public but has much more detail. It includes all fields in the database and allows a user with the required permissions to edit the sign entry.
The sign detail page shows a video if one has been uploaded for this sign. Below the video is
a list of tags that have been associated with the sign. Tags encode binary
properties of a sign and each tag has a prefix that groups them together. For example
semantic:education
or phonology:two handed
. New tags can only be
added by the site administrator (but adding them is straightforward).
On the right of the page the properties of the sign are listed. These are grouped together and by default only the basic properties are shown. Clicking on the grey title bars show the fields for 'Publication Status', 'Phonology', 'Relations to Other Signs' or 'Definitions/Notes'. In the case that there is no value in the database for a field 'No Value Set' is shown. Most fields also have a special value 'N/A' which can be used to signify 'Not Applicable'; the intention is to be able to tell the difference between 'value not yet entered' and 'this field does not apply to this sign'.
If the user has the required permission, a blue "Enable Edit" button shows at the top right of the page. When clicked, this will turn red and enable editing of all fields for the sign. A new "Delete Sign" button will appear and all editable fields will turn red. To modify a field, click on the red text and make the required change (this will either be a text entry, a checkbox or a selection from a list). Buttons for OK and Cancel will appear, clicking Ok will save the change and Cancel will revert to the previous value. All changes take effect immediately.
The "Delete Sign" button will show a dialogue box that asks the user to confirm the deletion of the sign entry. Clicking on "Confirm Delete" will delete the entry and return to the sign search page. Clicking on "Cancel" will return to the sign page.
In the "Relations to Other Signs" tab, any relations such as Synonyn, Homonym etc are show. The target sign is shown as the sign number followed by the ID Gloss, eg. 10620-about2a. In edit mode the text of the role (Synonym) and target sign are shown red and can be edited. When editing the target sign, enter either the ID Gloss, Annotation ID Gloss or Sign Number of the sign you want to link to, you will see a list of possible completions as you type. Click on the required sign once you see it in the list. The text box will show the sign ID Gloss followed by a number in brackets. This number is an internal identifier, not the sign number. When you click "OK" the change will be made and the SN-ID Gloss form will be shown. A relation can also be deleted by clicking on the trashcan icon at the start of each line.
Below the list of relations in edit mode is a form to create a new relation. Select the role from the drop down list and enter the target sign as above. When you click "Add Relation" the page will refresh, you will need to click on the "Relations to Other Signs" tab to see the new entry.
In the "Definitions/Notes" tab a list of defnitions or notes is shown. Each of these has a "Role" label such as "As a Noun", "Private Note" etc. and an integer "Index" that defines the order within the category when they are listed on the public pages. Each entry also has a "Published" field which controls whether the definition or note can be shown in the public view. A definition/note can also be deleted by clicking on the trashcan icon at the start of each row.
Below the list of definitions/notes in edit mode is a form to create a new entry. As with the relation form, the page will refresh when you submit this form and you will need to click on the "Definitions/Notes" tab again to view the change. By default, new definitions have the Published field set to No.
In edit mode, a form to allow upload of video will be shown below the video for the sign. Select a file and click "Upload Video" and the page will refresh and the new video should be show. In edit mode, a count of the number of videos for this sign is shown. Each time you upload a new video, the old one is retained but the new one is shown in preference. If there is at least one video for a sign, a button is shown below the upload form to allow deletion of the current video. Clicking this button will delete the current video and revert to an earlier version if present. If there is only one video then no video will be shown for the sign.
Videos uploaded should be saved in a web friendly format. Technically this is H264 encoded video, but most programs that save video for the web will use this format. There is no requirement on the name of the video file, whatever file you upload will be associated with this sign. Videos are displayed in 320x240 pixels and so you should save them at this size for best performance, however higher resolution videos will be ok (but will be slower to play, eg. on the mobile version of the site).
Below the video forms is a list of tags associated with this sign. In edit mode a small red cross will appear in each tag. Clicking on this cross will delete the tag. New tags can be added via the dropdown menu below the tags.
It will be possible to finely control the level of access for different groups of users. At present we have three groups:
In future we will develop a richer set of user levels, we've had some discussion about this and will make a proposal for feedback.


|
OpenM++ compiler (omc)
|
Two points in a source file. More...
Public Types | |
| typedef position::filename_type | filename_type |
| Type for file name. | |
| typedef position::counter_type | counter_type |
| Type for line and column numbers. | |
Public Member Functions | |
| location (const position &b, const position &e) | |
| Construct a location from b to e. | |
| location (const position &p=position()) | |
| Construct a 0-width location in p. | |
| location (filename_type *f, counter_type l=1, counter_type c=1) | |
| Construct a 0-width location in f, l, c. | |
| void | initialize (filename_type *f=YY_NULLPTR, counter_type l=1, counter_type c=1) |
| Initialization. | |
Line and Column related manipulators | |
| void | step () |
| Reset initial location to final location. | |
| void | columns (counter_type count=1) |
| Extend the current location to the COUNT next columns. | |
| void | lines (counter_type count=1) |
| Extend the current location to the COUNT next lines. | |
Public Attributes | |
| position | begin |
| Beginning of the located region. | |
| position | end |
| End of the located region. | |
Two points in a source file.


X Factor: Celebrity star responds to Nicole Scherzinger dating rumours
by Ciara WalshX Factor: Celebrity star Thom Evans has responded to reports that he's dating judge Nicole Scherzinger.
The rugby player, who is competing in the competition as part of trio Try Star, was first linked to the judge earlier this week after reports suggested that romance had blossomed following some flirty text message exchanges.
Now, Thom has commented on the speculation, stating that dating Nicole had crossed his mind, but his schedule is getting in the way.
Speaking to MailOnline, he said: "She's stunning. And has romance crossed my mind? Yes. But we don't have much time."
Thom said "To be honest, we are focusing on the bromance and getting to the final! We are working on choreography, vocal lessons, and it's all so full-on. So there's not a lot of time for much else. "
Reports last week suggested the rugby player was smitten with Nicole.
An insider previously told The Sun on Sunday: "Thom is completely Nicole's type. And for his part, Thom was smitten early on - he's always said Nicole is one of the most beautiful women in the world."
The source claimed Thom fancied Nicole long before meeting her on the show. He was initially a bit nervous about starting something up, and ruining his chances on the series, however, they had great chemistry from the start.
They added: "And after weeks of texting, Thom finally plucked up the courage to ask her out, and took her for dinner."
Nicole has yet to comment on the rumours.


Fixtures to help testing functionality#
Utilities which modify or replace code to help with doctesting functionality. Wrappers, proxies and mockups are typical examples of fixtures.
AUTHORS:
Martin von Gagern (2014-12-15): AttributeAccessTracerProxy and trace_method
Martin von Gagern (2015-01-02): Factor out TracerHelper and reproducible_repr
EXAMPLES:
You can use trace_method()
to see how a method
communicates with its surroundings:
sage: class Foo():
....: def f(self):
....: self.y = self.g(self.x)
....: def g(self, arg):
....: return arg + 1
....:
sage: foo = Foo()
sage: foo.x = 3
sage: from sage.doctest.fixtures import trace_method
sage: trace_method(foo, "f")
sage: foo.f()
enter f()
read x = 3
call g(3) -> 4
write y = 4
exit f -> None
- class sage.doctest.fixtures.AttributeAccessTracerHelper(delegate, prefix=' ', reads=True)#
Bases:
object
Helper to print proxied access to attributes.
This class does the actual printing of access traces for objects proxied by
AttributeAccessTracerProxy
. The fact that it’s not a proxy at the same time helps avoiding complicated attribute access syntax.INPUT:
delegate
– the actual object to be proxied.prefix
– (default:" "
) string to prepend to each printed output.reads
– (default:True
) whether to trace read access as well.
EXAMPLES:
sage: class Foo(): ....: def f(self, *args): ....: return self.x*self.x ....: sage: foo = Foo() sage: from sage.doctest.fixtures import AttributeAccessTracerHelper sage: pat = AttributeAccessTracerHelper(foo) sage: pat.set("x", 2) write x = 2 sage: pat.get("x") read x = 2 2 sage: pat.get("f")(3) call f(3) -> 4 4
- get(name)#
Read an attribute from the wrapped delegate object.
If that value is a method (i.e. a callable object which is not contained in the dictionary of the object itself but instead inherited from some class) then it is replaced by a wrapper function to report arguments and return value. Otherwise an attribute read access is reported.
EXAMPLES:
sage: class Foo(): ....: def f(self, *args): ....: return self.x*self.x ....: sage: foo = Foo() sage: foo.x = 2 sage: from sage.doctest.fixtures import AttributeAccessTracerHelper sage: pat = AttributeAccessTracerHelper(foo) sage: pat.get("x") read x = 2 2 sage: pat.get("f")(3) call f(3) -> 4 4
- set(name, val)#
Write an attribute to the wrapped delegate object.
The name and new value are also reported in the output.
EXAMPLES:
sage: class Foo(): ....: pass ....: sage: foo = Foo() sage: from sage.doctest.fixtures import AttributeAccessTracerHelper sage: pat = AttributeAccessTracerHelper(foo) sage: pat.set("x", 2) write x = 2 sage: foo.x 2
- class sage.doctest.fixtures.AttributeAccessTracerProxy(delegate, **kwds)#
Bases:
object
Proxy object which prints all attribute and method access to an object.
The implementation is kept lean since all access to attributes of the proxy itself requires complicated syntax. For this reason, the actual handling of attribute access is delegated to a
AttributeAccessTracerHelper
.INPUT:
delegate
– the actual object to be proxied.prefix
– (default:" "
) string to prepend to each printed output.reads
– (default:True
) whether to trace read access as well.
EXAMPLES:
sage: class Foo(): ....: def f(self, *args): ....: return self.x*self.x ....: sage: foo = Foo() sage: from sage.doctest.fixtures import AttributeAccessTracerProxy sage: pat = AttributeAccessTracerProxy(foo) sage: pat.x = 2 write x = 2 sage: pat.x read x = 2 2 sage: pat.f(3) call f(3) -> 4 4
- __getattribute__(name)#
Read an attribute from the wrapped delegate object.
If that value is a method (i.e. a callable object which is not contained in the dictionary of the object itself but instead inherited from some class) then it is replaced by a wrapper function to report arguments and return value. Otherwise an attribute read access is reported.
EXAMPLES:
sage: class Foo(): ....: def f(self, *args): ....: return self.x*self.x ....: sage: foo = Foo() sage: foo.x = 2 sage: from sage.doctest.fixtures import AttributeAccessTracerProxy sage: pat = AttributeAccessTracerProxy(foo) sage: pat.x read x = 2 2 sage: pat.f(3) call f(3) -> 4 4
- __setattr__(name, val)#
Write an attribute to the wrapped delegate object.
The name and new value are also reported in the output.
EXAMPLES:
sage: class Foo(): ....: pass ....: sage: foo = Foo() sage: from sage.doctest.fixtures import AttributeAccessTracerProxy sage: pat = AttributeAccessTracerProxy(foo) sage: pat.x = 2 write x = 2 sage: foo.x 2
- sage.doctest.fixtures.reproducible_repr(val)#
String representation of an object in a reproducible way.
This tries to ensure that the returned string does not depend on factors outside the control of the doctest. One example is the order of elements in a hash-based structure. For most objects, this is simply the
repr
of the object.All types for which special handling had been implemented are covered by the examples below. If a doctest requires special handling for additional types, this function may be extended appropriately. It is an error if an argument to this function has a non-reproducible
repr
implementation and is not explicitly mentioned in an example case below.INPUT:
val
– an object to be represented
OUTPUT:
A string representation of that object, similar to what
repr
returns but for certain cases with more guarantees to ensure exactly the same result for semantically equivalent objects.EXAMPLES:
sage: from sage.doctest.fixtures import reproducible_repr sage: print(reproducible_repr(set(["a", "c", "b", "d"]))) set(['a', 'b', 'c', 'd']) sage: print(reproducible_repr(frozenset(["a", "c", "b", "d"]))) frozenset(['a', 'b', 'c', 'd']) sage: print(reproducible_repr([1, frozenset("cab"), set("bar"), 0])) [1, frozenset(['a', 'b', 'c']), set(['a', 'b', 'r']), 0] sage: print(reproducible_repr({3.0:"three","2":"two",1:"one"})) {'2': 'two', 1: 'one', 3.00000000000000: 'three'} sage: print(reproducible_repr("foo\nbar")) # demonstrate default case 'foo\nbar'
- sage.doctest.fixtures.trace_method(obj, meth, **kwds)#
Trace the doings of a given method. It prints method entry with arguments, access to members and other methods during method execution as well as method exit with return value.
INPUT:
obj
– the object containing the method.meth
– the name of the method to be traced.prefix
– (default:" "
) string to prepend to each printed output.reads
– (default:True
) whether to trace read access as well.
EXAMPLES:
sage: class Foo(): ....: def f(self, arg=None): ....: self.y = self.g(self.x) ....: if arg: return arg*arg ....: def g(self, arg): ....: return arg + 1 ....: sage: foo = Foo() sage: foo.x = 3 sage: from sage.doctest.fixtures import trace_method sage: trace_method(foo, "f") sage: foo.f() enter f() read x = 3 call g(3) -> 4 write y = 4 exit f -> None sage: foo.f(3) enter f(3) read x = 3 call g(3) -> 4 write y = 4 exit f -> 9 9


The segmentation of sequences of words into semantically meaningful groups is
a common NLP paradigm; this package aims to support such tasks in a general
way. Two examples of such a task, a
chunker
and a
named
entity tagger, have been implemented using the tools in this package and
the classifiers in the LBJ2.nlp
package.
@author Nick Rizzolo


Mann Library Rooms 160 (primary room) and 102 (workshop/breakout space). Mann Library is on the West side of the 'Agriculture Quad' on the Cornell University campus in Ithaca, New York. See the map below for getting around the Cornell campus.
Thursday and Friday, August 4-5, 2016. The schedule will run approximately 9 AM to 5 PM on both days, with a break for lunch on your own. A schedule will be released later this Spring, along with other logistical information.