| Module | CalendarHelper |
| In: |
lib/calendar_helper.rb
|
CalendarHelper allows you to draw a databound calendar with fine-grained CSS formatting
Returns an HTML calendar. In its simplest form, this method generates a plain calendar (which can then be customized using CSS) for a given month and year. However, this may be customized in a variety of ways — changing the default CSS classes, generating the individual day entries yourself, and so on.
The following options are required:
:year # The year number to show the calendar for. :month # The month number to show the calendar for.
The following are optional, available for customizing the default behaviour:
:table_class => "calendar" # The class for the
 tag. :month_name_class => "monthName" # The class for the name of the month, at the top of the table. :other_month_class => "otherMonth" # Not implemented yet. :day_name_class => "dayName" # The class is for the names of the weekdays, at the top. :day_class => "day" # The class for the individual day number cells. This may or may not be used if you specify a block (see below). :abbrev => (0..2) # This option specifies how the day names should be abbreviated. Use (0..2) for the first three letters, (0..0) for the first, and (0..-1) for the entire name. :first_day_of_week => 0 # Renders calendar starting on Sunday. Use 1 for Monday, and so on.
For more customization, you can pass a code block to this method, that will get one argument, a Date object, and return a values for the individual table cells. The block can return an array, [cell_text, cell_attrs], cell_text being the text that is displayed and cell_attrs a hash containing the attributes for the  tag (this can be used to change the ’s class for customization with CSS). This block can also return the cell_text only, in which case the ’s class defaults to the value given in +:day_class+. If the block returns nil, the default options are used.
Example usage:
calendar(:year => 2005, :month => 6) # This generates the simplest possible calendar. calendar({:year => 2005, :month => 6, :table_class => "calendar_helper"}) # This generates a calendar, as # before, but the
's class # is set to "calendar_helper". calendar(:year => 2005, :month => 6, :abbrev => (0..-1)) # This generates a simple calendar but shows the # entire day name ("Sunday", "Monday", etc.) instead # of only the first three letters. calendar(:year => 2005, :month => 5) do |d| # This generates a simple calendar, but gives special days if listOfSpecialDays.include?(d) # (days that are in the array listOfSpecialDays) one CSS class, [d.mday, {:class => "specialDay"}] # "specialDay", and gives the rest of the days another CSS class, else # "normalDay". You can also use this highlight today differently [d.mday, {:class => "normalDay"}] # from the rest of the days, etc. end
An additional ‘weekend’ class is applied to weekend days.
For consistency with the themes provided in the calendar_styles generator, use "specialDay" as the CSS class for marked days.
# File lib/calendar_helper.rb, line 52 52: def calendar(options = {}, &block) 53: raise(ArgumentError, "No year given") unless options.has_key?(:year) 54: raise(ArgumentError, "No month given") unless options.has_key?(:month) 55: 56: block ||= Proc.new {|d| nil} 57: 58: defaults = { 59: :table_class => 'calendar', 60: :month_name_class => 'monthName', 61: :other_month_class => 'otherMonth', 62: :day_name_class => 'dayName', 63: :day_class => 'day', 64: :abbrev => (0..2), 65: :first_day_of_week => 0 66: } 67: options = defaults.merge options 68: 69: first = Date.civil(options[:year], options[:month], 1) 70: last = Date.civil(options[:year], options[:month], -1) 71: 72: first_weekday = first_day_of_week(options[:first_day_of_week]) 73: last_weekday = last_day_of_week(options[:first_day_of_week]) 74: 75: day_names = Date::DAYNAMES.dup 76: first_weekday.times do 77: day_names.push(day_names.shift) 78: end 79: 80: cal = %(
) 81: cal << %(

#{Date::MONTHNAMES[options[:month]]}

) 82: day_names.each {|d| cal << "#{d[options[:abbrev]]}	"} 83: cal << "

" 84: beginning_of_week(first, first_weekday).upto(first - 1) do |d| 85: cal << %(<td class="#{options[:other_month_class]}) 86: cal << " weekendDay" if weekend?(d) 87: cal << %(">#{d.day}	) 88: end unless first.wday == first_weekday 89: first.upto(last) do |cur| 90: cell_text, cell_attrs = block.call(cur) 91: cell_text ||= cur.mday 92: cell_attrs ||= {:class => options[:day_class]} 93: cell_attrs[:class] += " weekendDay" if [0, 6].include?(cur.wday) 94: cell_attrs = cell_attrs.map {|k, v| %(#{k}="#{v}") }.join(" ") 95: cal << "#{cell_text}	" 96: cal << "

" if cur.wday == last_weekday 97: end 98: (last + 1).upto(beginning_of_week(last + 7, first_weekday) - 1) do |d| 99: cal << %(<td class="#{options[:other_month_class]}) 100: cal << " weekendDay" if weekend?(d) 101: cal << %(">#{d.day}	) 102: end unless last.wday == last_weekday 103: cal << "

" 104: end


View Car | Performance and Specifications
Seller
Harvey Weinstein
Phone Number
2347033503357
Condition
Used
Make and Model
Toyota Corolla
Mileage
30,000 km
Year of Manufacture
2011
Price
NGN3,000,000
Transmission
Manual
Color
Red
Registered Car
Yes
Seller
Harvey Weinstein
2347033503357
Used
Toyota Corolla
30,000 km
2011
NGN3,000,000
Manual
Red
Yes


--- layout: page title: The Justmann Band subtitle: ---
“We were at two weddings you played for last year. If we hadn’t booked your band for our wedding, we would’ve regretted it for the rest of our lives.”
(Bride & her Fiancé when booking the band in 2014)
“You guys are the best band ever!”
(Attendee at wedding anniversary. 2014)
“You told me you didn’t know of another band that did everything you do. Now I see how right you are. You’re in a class of your own! This is the first time in 30 years I have seen a band have to play an encore at a wedding…and you had to play two encores tonight!”
(Father of the Bride at 2013 wedding)
“We hire your band year after year because there is no other band that does everything you do.”
(Booking Agent for LaCrosse Oktoberfest)
“I was certain that if your band played for my wedding, no one would leave. When I looked around at midnight, No one had left! What a party!
(Groom at his wedding)
“….and Honey, he’s got a band too!
(Actor James Earl Jones introducing Charlie to his wife backstage in his dressing room on Broadway, 2012)
“You guys are the best band ever….no, I mean it. You guys are the best band ever!”
(Attendee at wedding, 2014)
“We book your band year after year because you are the favorite here.”
(Booking agent, King, WI)
“You guys never stop! You keep the crowd engaged and entertained non-stop!”
(Committee member of Rotary Oktoberfest Festival)
“Besides the obvious, a really tight band, you guys obviously enjoy what you’re doing”
(Attendee at public performance, 2010)


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.xpath.jaxp.XPathImpl
public class XPathImpl
The XPathImpl class provides implementation for the methods defined in javax.xml.xpath.XPath interface. This provide simple access to the results of an XPath expression.
| Field Summary | |
|---|---|
private static org.w3c.dom.Document |
d
|
private boolean |
featureSecureProcessing
|
private javax.xml.xpath.XPathFunctionResolver |
functionResolver
|
private javax.xml.namespace.NamespaceContext |
namespaceContext
|
private javax.xml.xpath.XPathFunctionResolver |
origFunctionResolver
|
private javax.xml.xpath.XPathVariableResolver |
origVariableResolver
|
private JAXPPrefixResolver |
prefixResolver
|
private javax.xml.xpath.XPathVariableResolver |
variableResolver
|
| Constructor Summary | |
|---|---|
XPathImpl(javax.xml.xpath.XPathVariableResolver vr,
javax.xml.xpath.XPathFunctionResolver fr)
|
|
XPathImpl(javax.xml.xpath.XPathVariableResolver vr,
javax.xml.xpath.XPathFunctionResolver fr,
boolean featureSecureProcessing)
|
| Method Summary | |
|---|---|
javax.xml.xpath.XPathExpression |
compile(java.lang.String expression)
Compile an XPath expression for later evaluation. |
private XObject |
eval(java.lang.String expression,
java.lang.Object contextItem)
|
java.lang.String |
evaluate(java.lang.String expression,
org.xml.sax.InputSource source)
Evaluate an XPath expression in the context of the specified InputSource
and return the result as a String . |
java.lang.Object |
evaluate(java.lang.String expression,
org.xml.sax.InputSource source,
javax.xml.namespace.QName returnType)
Evaluate an XPath expression in the context of the specified InputSource
and return the result as the specified type. |
java.lang.String |
evaluate(java.lang.String expression,
java.lang.Object item)
Evaluate an XPath expression in the specified context and return the result as a String . |
java.lang.Object |
evaluate(java.lang.String expression,
java.lang.Object item,
javax.xml.namespace.QName returnType)
Evaluate an XPath expression in the specified context and return the result as the specified type. |
private static org.w3c.dom.Document |
getDummyDocument()
|
javax.xml.namespace.NamespaceContext |
getNamespaceContext()
Returns the current namespace context. |
private static javax.xml.parsers.DocumentBuilder |
getParser()
|
private java.lang.Object |
getResultAsType(XObject resultObject,
javax.xml.namespace.QName returnType)
|
javax.xml.xpath.XPathFunctionResolver |
getXPathFunctionResolver()
Returns the current function resolver. |
javax.xml.xpath.XPathVariableResolver |
getXPathVariableResolver()
Returns the current variable resolver. |
private boolean |
isSupported(javax.xml.namespace.QName returnType)
|
void |
reset()
Reset this XPath to its original configuration. |
void |
setNamespaceContext(javax.xml.namespace.NamespaceContext nsContext)
Establishes a namespace context. |
void |
setXPathFunctionResolver(javax.xml.xpath.XPathFunctionResolver resolver)
Establishes a function resolver. |
void |
setXPathVariableResolver(javax.xml.xpath.XPathVariableResolver resolver)
Establishes a variable resolver. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private javax.xml.xpath.XPathVariableResolver variableResolver
private javax.xml.xpath.XPathFunctionResolver functionResolver
private javax.xml.xpath.XPathVariableResolver origVariableResolver
private javax.xml.xpath.XPathFunctionResolver origFunctionResolver
private javax.xml.namespace.NamespaceContext namespaceContext
private JAXPPrefixResolver prefixResolver
private boolean featureSecureProcessing
private static org.w3c.dom.Document d
| Constructor Detail |
|---|
XPathImpl(javax.xml.xpath.XPathVariableResolver vr, javax.xml.xpath.XPathFunctionResolver fr)
XPathImpl(javax.xml.xpath.XPathVariableResolver vr, javax.xml.xpath.XPathFunctionResolver fr, boolean featureSecureProcessing)
| Method Detail |
|---|
public void setXPathVariableResolver(javax.xml.xpath.XPathVariableResolver resolver)
Establishes a variable resolver.
setXPathVariableResolver
in interface javax.xml.xpath.XPath
resolver
- Variable Resolverpublic javax.xml.xpath.XPathVariableResolver getXPathVariableResolver()
Returns the current variable resolver.
getXPathVariableResolver
in interface javax.xml.xpath.XPath
public void setXPathFunctionResolver(javax.xml.xpath.XPathFunctionResolver resolver)
Establishes a function resolver.
setXPathFunctionResolver
in interface javax.xml.xpath.XPath
resolver
- XPath function resolverpublic javax.xml.xpath.XPathFunctionResolver getXPathFunctionResolver()
Returns the current function resolver.
getXPathFunctionResolver
in interface javax.xml.xpath.XPath
public void setNamespaceContext(javax.xml.namespace.NamespaceContext nsContext)
Establishes a namespace context.
setNamespaceContext
in interface javax.xml.xpath.XPath
nsContext
- Namespace context to usepublic javax.xml.namespace.NamespaceContext getNamespaceContext()
Returns the current namespace context.
getNamespaceContext
in interface javax.xml.xpath.XPath
private static javax.xml.parsers.DocumentBuilder getParser()
private static org.w3c.dom.Document getDummyDocument()
private XObject eval(java.lang.String expression, java.lang.Object contextItem) throws javax.xml.transform.TransformerException
javax.xml.transform.TransformerException
public java.lang.Object evaluate(java.lang.String expression, java.lang.Object item, javax.xml.namespace.QName returnType) throws javax.xml.xpath.XPathExpressionException
Evaluate an XPath
expression in the specified context and return the result as the specified type.
See "Evaluation of XPath Expressions" section of JAXP 1.3 spec
for context item evaluation,
variable, function and QName
resolution and return type conversion.
If returnType
is not one of the types defined in XPathConstants
(
NUMBER
,
STRING
,
BOOLEAN
,
NODE
or
NODESET
)
then an IllegalArgumentException
is thrown.
If a null
value is provided for
item
, an empty document will be used for the
context.
If expression
or returnType
is null
, then a
NullPointerException
is thrown.
evaluate
in interface javax.xml.xpath.XPath
expression
- The XPath expression.item
- The starting context (node or node list, for example).returnType
- The desired return type.
Object
of returnType
.
javax.xml.xpath.XPathExpressionException
- If expression
cannot be evaluated.
java.lang.IllegalArgumentException
- If returnType
is not one of the types defined in XPathConstants
.
java.lang.NullPointerException
- If expression
or returnType
is null
.private boolean isSupported(javax.xml.namespace.QName returnType)
private java.lang.Object getResultAsType(XObject resultObject, javax.xml.namespace.QName returnType) throws javax.xml.transform.TransformerException
javax.xml.transform.TransformerException
public java.lang.String evaluate(java.lang.String expression, java.lang.Object item) throws javax.xml.xpath.XPathExpressionException
Evaluate an XPath expression in the specified context and return the result as a String
.
This method calls evaluate(String expression, Object item, QName returnType)
with a returnType
of
XPathConstants.STRING
.
See "Evaluation of XPath Expressions" of JAXP 1.3 spec for context item evaluation, variable, function and QName resolution and return type conversion.
If a null
value is provided for
item
, an empty document will be used for the
context.
If expression
is null
, then a NullPointerException
is thrown.
evaluate
in interface javax.xml.xpath.XPath
expression
- The XPath expression.item
- The starting context (node or node list, for example).
String
that is the result of evaluating the expression and
converting the result to a String
.
javax.xml.xpath.XPathExpressionException
- If expression
cannot be evaluated.
java.lang.NullPointerException
- If expression
is null
.public javax.xml.xpath.XPathExpression compile(java.lang.String expression) throws javax.xml.xpath.XPathExpressionException
Compile an XPath expression for later evaluation.
If expression
contains any XPathFunction
s,
they must be available via the XPathFunctionResolver
.
An XPathExpressionException
will be thrown if the XPathFunction
cannot be resovled with the XPathFunctionResolver
.
If expression
is null
, a NullPointerException
is thrown.
compile
in interface javax.xml.xpath.XPath
expression
- The XPath expression.
javax.xml.xpath.XPathExpressionException
- If expression
cannot be compiled.
java.lang.NullPointerException
- If expression
is null
.public java.lang.Object evaluate(java.lang.String expression, org.xml.sax.InputSource source, javax.xml.namespace.QName returnType) throws javax.xml.xpath.XPathExpressionException
Evaluate an XPath expression in the context of the specified InputSource
and return the result as the specified type.
This method builds a data model for the InputSource
and calls
evaluate(String expression, Object item, QName returnType)
on the resulting document object.
See "Evaluation of XPath Expressions" section of JAXP 1.3 spec for context item evaluation, variable, function and QName resolution and return type conversion.
If returnType
is not one of the types defined in XPathConstants
,
then an IllegalArgumentException
is thrown.
If expression
, source
or returnType
is null
,
then a NullPointerException
is thrown.
evaluate
in interface javax.xml.xpath.XPath
expression
- The XPath expression.source
- The input source of the document to evaluate over.returnType
- The desired return type.
Object
that encapsulates the result of evaluating the expression.
javax.xml.xpath.XPathExpressionException
- If expression cannot be evaluated.
java.lang.IllegalArgumentException
- If returnType
is not one of the types defined in XPathConstants
.
java.lang.NullPointerException
- If expression
, source
or returnType
is null
.public java.lang.String evaluate(java.lang.String expression, org.xml.sax.InputSource source) throws javax.xml.xpath.XPathExpressionException
Evaluate an XPath expression in the context of the specified InputSource
and return the result as a String
.
This method calls evaluate(String expression, InputSource source, QName returnType)
with a
returnType
of XPathConstants.STRING
.
See "Evaluation of XPath Expressions" section of JAXP 1.3 spec for context item evaluation, variable, function and QName resolution and return type conversion.
If expression
or source
is null
,
then a NullPointerException
is thrown.
evaluate
in interface javax.xml.xpath.XPath
expression
- The XPath expression.source
- The InputSource
of the document to evaluate over.
String
that is the result of evaluating the expression and
converting the result to a String
.
javax.xml.xpath.XPathExpressionException
- If expression cannot be evaluated.
java.lang.NullPointerException
- If expression
or source
is null
.public void reset()
Reset this XPath
to its original configuration.
XPath
is reset to the same state as when it was created with
XPathFactory#newXPath()
.
reset()
is designed to allow the reuse of existing XPath
s
thus saving resources associated with the creation of new XPath
s.
The reset XPath
is not guaranteed to have the same
XPathFunctionResolver
, XPathVariableResolver
or NamespaceContext
Object
s, e.g. Object.equals(Object obj)
.
It is guaranteed to have a functionally equal XPathFunctionResolver
,
XPathVariableResolver
and NamespaceContext
.
reset
in interface javax.xml.xpath.XPath
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Philadelphia was named the best city to visit in 2020. Here are the best things to eat there, according to a local.
by Zoë Miller- National Geographic just named Philadelphia, Pennsylvania the best city to visit in 2020.
- I’ve lived right by Philadelphia for my entire life – h ere are the 18 things you absolutely must eat while in this bustling city.
- Visitors should eat dinner at Zahav, an award-winning Israeli restaurant.
- They should also get a cheesesteak from Jim’s Steaks or try vegan food at Charlie Was a Sinner.
- Visit Insider’s homepage for more.
Since I grew up right near Philadelphia, Pennsylvania, and even lived there, it’s safe to say I’ve been enjoying the city’s robust food scene first hand for my entire life.
In addition, National Geographic just named Philly the best city to visit in 2020 – and I’m confident that one of the biggest reasons is because of its diverse and scrumptious food offerings.
From the French fare at Parc to the sweet treats at Federal Donuts, here are 18 things you must eat in the City of Brotherly Love.
Eat dinner at Zahav, an award-winning Israeli restaurant.
A big winner at the 2019 James-Beard awards, Zahav is one of the crown jewels of the Philadelphia dining scene.
Open only for dinner, this Israeli spot is known for its hummus. Available in three varieties, it’s served with homemade laffa bread, a type of flatbread.
In addition to the chickpea dip, Zahav’s menu includes small plates, such as halloumi cheese and fried cauliflower, and grilled specialties ranging from eggplant to Romanian beef kebabs.
Cool off with ice cream from The Franklin Fountain.
During the warmer months, the lines at this old-fashioned ice-cream parlor and soda counter can stretch around the block.
Offering traditional (strawberry and vanilla-bean) and unusual (banana and mint-chewing-gum) flavors, The Franklin Fountain also churns out non-dairy and sugar-free scoops, as well as seasonal sorbets.
If you’re thirsty, you can choose from a selection of 25 soda flavors or indulge in an ice-cream float.
Those visiting Philly in the winter can order a toasty treat, like a hot-chocolate float (hot chocolate with a scoop of ice cream) or a “hot milkshake” (ice cream blended with warmed baked goods and toppings).
Try anything from the Reading Terminal Market.
Dating back to the late 19th century, this lively food hall is housed in a train shed once owned by the Reading Railroad Company.
From gyros and crepes to gourmet cheese and fresh produce, Reading Terminal Market has it all – and everything is worth trying here.
In addition to food vendors, you’ll also find merchants selling items such as soap, linens, and books.
A few noteworthy stalls include Miller’s Twist, an Amish stand rolling out hot, buttery pretzels, and DiNic’s, whose roast pork sandwich was named the best sandwich in America on Travel Channel’s show “Man vs. Food.”
For a French-bistro experience, head to Parc.
At Parc, a French restaurant with a cozy, romantic interior, you’ll almost feel like you’re in Paris.
The menu features classic dishes such as salad niçoise, steak frites, and quiche Lorraine. Dinner can be pricey, but Parc also serves breakfast, lunch, and weekend brunch.
When the weather is nice, sit at one of the outdoor tables facing Rittenhouse Square for even more of a Parisian vibe.
Try the square pies at Santucci’s.
New York may reign as pizza king, but Philly has plenty of pizza purveyors to call its own.
Santucci’s, a staple of the Italian-Market neighborhood, has been serving its signature square pies for decades.
Santucci’s has a few other outposts in the city, as well as several at the Jersey Shore.
Doughnut lovers can’t miss the treats at Federal Donuts.
For doughnut lovers visiting Philly, the confections at local chain Federal Donuts are a must.
The “hot fresh” doughnuts, available in three flavors, are made right when you order.
Although you can’t go wrong with any of the options, the strawberry-lavender flavor stands out. It’s rich and sweet, but not too sugary.
There are also coated “fancy” doughnuts, which come in flavors like carrot cake and caramel key lime.
In addition to dessert, Federal Donuts serves fried chicken, wings, and breakfast sandwiches, if you’re in the mood for something savory.
Get a cheesesteak from Jim’s Steaks.
No trip to Philly would be complete without sampling the food the city is best known for – cheesesteak.
Although Geno’s and Pat’s may have more name recognition (and a famous rivalry, to boot), the sandwiches from Jim’s, a shop on South Street, stand out with finely chopped steak and an even meat-to-cheese ratio.

Have a barbecue feast at Fette Sau.
Located in the hip Fishtown neighborhood, Fette Sau (German for “fat pig”) is a lively barbecue joint with indoor and outdoor communal seating.
The place specializes in smoked meat, from brisket and pulled pork to chicken and ribs, but the restaurant’s side dishes are just as tasty. The mac and cheese and mashed sweet potatoes are especially delicious.
Since you order meat by the pound, it’s typically more cost-effective to split a platter with some friends.
The tacos at South Philly Barbacoa have been featured on Netflix’s “Chef’s Table.”
Featured on the Netflix series “Chef’s Table,” South Philly Barbacoa is known for its tacos (including tortillas filled with the eponymous marinated lamb dish) and activist owners, who regularly advocate for undocumented workers.
As with traditional barbacoa restaurants in Mexico, this South Philly business is only open three days a week (Saturday, Sunday, and Monday).
For a hearty brunch, stop by Sabrina’s.
With three locations in the city and two in the suburbs, Sabrina’s Cafe is a brunch mainstay.
The generous omelets and quirky breakfast specials (including meals inspired by unusual tourist attractions) are a highlight, and so are signature dishes like panko-encrusted tater tots and stuffed challah French toast.
Sate Kampar is a popular spot for Malaysian food.
For a taste of Malaysia, check out Sate Kampar.
This restaurant serves its namesake, sate (marinated meat skewers), as well as other specialties like nasi ulam (rice salad with shredded fish and toasted coconut) and rendang daging (braised beef with spices and coconut cream).
At Double Knot, you can grab coffee during the day and enjoy sushi at night.
By day, Double Knot is a cafe that serves local coffee from Elixr and a simple menu of noodles, salads, banh mis (a Vietnamese type of sandwich), and rice bowls.
At night, the restaurant opens up its underground izakaya, or Japanese bar, where you can order sushi, sashimi, and robatayaki (foods grilled over hot charcoal).
Head to Khyber Pass Pub for Southern eats.
If you want some food that tastes truly home-cooked, Khyber Pass Pub is a great choice.
Po-boys, hickory-smoked barbecue platters, and fried green tomatoes are on the dinner menu, but the restaurant’s Cajun brunch fare is equally enticing.
The eatery’s beignets are great for sharing, and the West-Louisiana hash comes loaded with brisket, sweet potatoes, and collard greens.
Eat spaghetti at Cry Baby Pasta, which is named after a John-Waters film.
Pasta is the main event at Cry Baby, an Italian restaurant named after a John-Waters film.
From rigatoni with vodka sauce and pancetta to savory, piquant spaghetti cacio pepe, the eatery’s offerings are straightforward and flavorful.

There are great vegetarian options at Abyssinia, an Ethiopian restaurant.
Abyssinia, an Ethiopian restaurant, is a quintessential part of the West-Philly food scene.
Although there is lamb, beef, and poultry on the menu, the vegetarian platter is satisfying whether or not you eat meat.
This combo features items such as ye’misir wot (split lentils with berbere sauce) and ye’kik alicha (yellow split peas in an onion and herb sauce). Each item is placed on top of injera, a type of flatbread made from teff flour.
Above the restaurant, there’s a bar called Fiume. If you order a meal from Abyssinia, they’ll bring it to you upstairs.
For vegan eats with speakeasy vibes, visit Charlie Was a Sinner.
Between the heavy curtains by the door and the dim lighting, walking into Charlie Was a Sinner feels like entering a speakeasy.
Everything on the menu is vegan, from ricotta that’s so creamy even dairy-lovers will be duped to risotto studded with lobster mushrooms, asparagus, and chives.
The place’s inventive cocktails are worth trying, too.
Famous 4th Street Deli is a classic Jewish eatery.
Serving classic Jewish eats like matzah-ball soup, Reubens, and bagels and lox, Famous 4th Street Deli has been around since 1923.

Don’t forget to stop by the bakery counter on the way out. There, you can pick up cheesecake, apple strudel, and other goodies.
The desserts at John’s Water Ice are refreshing and tasty.
Whether you pronounce it “water ice” or “wooder ice,” there’s no question that the frozen stuff at John’s is refreshing.
Daily flavors include lemon, cherry, chocolate, and pineapple. In addition to water ice, John’s sells ice cream and gelati (an Italian frozen dessert).
Read More:
10 of the best places to eat in Chicago, according to a local
10 of the ‘most Instagrammable’ cafes in the world
I only ate home-cooked food for a month, and I felt healthier, saved money, and became a better chef
7 foods you should always order at a restaurant instead of cooking at home


Google Developer Groups (GDGs) are for developers who are interested in Google's developer technology; everything from the Android, App Engine, and Google Chrome platforms, to product APIs like the Maps API, YouTube API and Google Calendar API.
A GDG can take many forms -- from just a few people getting together to watch our
latest video, to large gatherings with demos and tech talks, to events like code sprints and hackathons. However, at the core, GDGs are focused on developers and technical content, and the core audience should be developers. No GDG Chapter in your region?
» Start your own!


Enter your name:
This is a Spiffy UI application built with Gradle. It runs a simple server and calls a simple REST endpoint.
If you have any questions or run into any issues we want to know. Drop us a note on the Spiffy UI Google Group.


Akash Manna is a Student of Siliguri Institute of Technology in the department of Information Technology. He is one of the creators of the project ©Photons and the sole creator of the project Shilabati™ and Puja2k17. Akash Manna is a programmer by heart indulging him into the deep world of programming in Java, C and C++ till the date. Keening for further.
Born on 7th august in 1997 in a small town of Ghatal. His Father is Mr. Dhananjay Manna and his Mother is Mrs. Sipra Manna.


Posts about “Software”
Not all of Apple’s offerings are shiny and perfect. And when it comes to iTunes, most sane people will agree that this music player is just plain ugly. I applaud Scott Gilberson for calling it like it is in his blog post, “The Top Ten Reasons iTunes Sucks”. Here are his main beefs:
It’s a store stupid
The library manager is prehistoric
No web browser/Wikipedia/anything
No plug-in architecture
With the recent release of Firefox 3 Beta 5, the end is in sight for an official release of this popular browser (in the meantime, Internet Explorer 8 Beta 1 has just come out). Here are some of the improvements Firefox 3 has over it’s predecessor:
Faster (better memory management). Two to four times faster than Firefox 2.
Safer. Scans for malware and checks for phishing.
More intuitive address bar (with autofill feature).
It doesn’t matter how many firewalls, P2P filters, script blockers, or spyware removers you use, the one giveaway to your identity on the Internet is your IP address. Those numbers will trumpet your location to whoever’s interested, which is why you’ll often see annoying ads like “Find friends in (insert your city here) now!” This lack of privacy is a huge problem for political dissidents in China, or for anyone in that country who wants to surf an uncensored version of the net.
PC World has boldly declared that Vista is not all that Microsoft promised it would be. Alex and Kevin from Diggnation were talking about this on their show and how they just want the latest OS despite the sacrifices in frame rates for some games. I’ve seen Vista in action and it looks slick, but it seems to be all flash at this point. I’m extremely satisfied with the robustness of Windows Server 2003, which is so rock solid because it was designed to administer networks.
 I’ve been busy writing and editing full-time at alive, and loving it! I especially enjoy interacting with readers of the magazine and answering their questions and concerns in that nice, friendly manner that sometimes straddles the line between professionalism and condescension. I’d love to write about it in more detail here, but there are confidentiality issues involved, suffice to say, I do get a lot of ‘interesting’ letters from those that perhaps do not have full reign over their mental faculties.


Engines
ID
Name
Description
Operations
Create new engine
×
Create new engine
Engine name:
Engine description:
Engine Compiler Path:
Engine Compiler Arguments:
Variables for this field:
%path% : Path to the downloaded source code
×
Update engine
Engine name:
Engine description:
Engine Compiler Path:
Engine Compiler Arguments:
Variables for this field:
%path% : Path to the downloaded source code


This project seeks to develop a web map-based data catalog for the H.J. Andrews Experimental Forest. The initial goal is to provide a central platform for researchers and the broader public to visualize geospatial data within a 3D digital landscape. The portal was developed using Cesium, an open-source JavaScript library for 3D maps, in conjunction with TerriaJS, a library for building geospatial data catalogs, and GeoServer, a Java-based software server that allows users to view and edit geospatial data. The datasets currently available are for demonstration purposes; this is a pilot project to be built upon in the future.
The H.J. Andrews Experimental Forest is an NSF-funded Long-Term Ecological Research Site situated in the Western Cascades of Oregon. Since its establishment in 1948, the Andrews research program has generated a diverse and extensive catalog of geospatial datasets. Until now, there has been no central, web map-based repository for these datasets.
The scope of this webmap is comprised of three main components:
The list below describes the function of the website elements that are highlighted in the image below:
Considering the Andrews’ large and active research community, and the extensive catalog of data available, we see an opportunity to provide a web map service that promotes collaboration and improves understanding of the forest ecosystem. We plan to build on this proof of concept by adding all of the geospatial datasets available through the H.J. Andrews website to our catalog. Other near-term goals include visualization of time-series data products derived from a spectral trajectory-based change detection algorithm known as LandTrendr (developed by Dr. Robert Kennedy), high resolution data derived from LiDAR and UAV's, and real-time data from wireless sensors. Our primary long-term goal is to develop interactive, analytical widgets for on-the-fly summarization and charting of datasets.


The objective of this project is to build the server-side component of a “movies” web application. The web application will provide users with access to information about different movies, directors, and genres. Users will be able to sign up, update their
personal information, and create a list of their favorite movies.
| Request | URL | HTTP Method | URL parameters | Request body data format | Response body data format |
|---|---|---|---|---|---|
| Get a list of all movies to th users. | /movies | GET | None | None | A JSON object holding data about all movies. |
| Get data (description, genre, director) about a single movie by title. | /movies/[Title] | GET | /movies/:title | None |
Return a JSON object by movie title. Holding data about a single movie, containing an ID, description, genre, director, image URL.Example: "Genre": "Name": "Drama", "Description": "Drama is a mode of fictional representation...", "Director": "Name": "Francis Ford Coppola", "Bio": "Francis Ford Coppola is an American film director, producer and screenwriter. He was a central figure in the New Hollywood filmmaking movement of the 1960s and 1970s, and is widely considered to be one of the greatest filmmakers of all time.", "Birth": "1939", "Death": "" }, "Actors": [], "_id": "60f7fd76aa1e79682a6c1496", "Title": "Apocalypse Now", "Description": "A U.S. Army officer serving in Vietnam is tasked with assassinating a renegade Special Forces Colonel who sees himself as a god.", "ImagePath": "https://www.imdb.com/title/tt0078788/mediaviewer/rm1007713024/?ref_=tt_ov_i", "Featured": true, |
| Get data about a movie genre by name. | /movies/genres/[Genre] | GET | /movies/genres/:genres | None | A JSON object about a genre,containing name and genre.(description) by name/title.Example: Name: “Drama”, Description: ""Drama film is a genre that relies on the emotional and relational development of realistic characters. ... Whether heroes or heroines are facing a conflict from the outside or a conflict within themselves, Drama film aims to tell an honest story of human struggles." |
| Return data about a director (bio, birth year, death year) by name. | /movies/directors/[Name] | GET | /movies/directors/:name | None | A JSON object holding data about the director.Example: Director: Name: "Stanley Kubrick" Bio: "Stanley Kubrick was an American film director, producer, screenwriter, and photographer. He is frequently cited as one of the greatest filmmakers in cinematic history. His films, which are mostly adaptations of novels or short stories, cover a wide range of genres and are noted for their realism, dark humor, unique cinematography, extensive set designs, and evocative use of music". Birth: "1928", Death:"1999". |
| Allow new users to register. | /users | POST | /users | None |
A JSON object holding data about the user to create,structured JSON in this format.Example: { Password: "4229", Email<EMAIL_ADDRESS>Birthday: "1977-03-23", } |
| Update a user information. | /users/[Username] | PUT | /users/:username |
a JSON object holding data about the user to update,structured JSON in this format like: |
A JSON object indicating the info that was updated.Example:
{ FavoriteMovies: [ movieByIDs] ], _id: Number Username: "sami22", Password: "3443", Email<EMAIL_ADDRESS>Birthday: "1977-03-23", } |
| Allow users to add a movie to their list of favorites. | /users/[Username]/favourites/[MovieTitle] | PATCH | /users/:username/favourites/:title | None |
A JSON object indicating whether the movies was successfully added to favourites. |
| Allow users to remove a movie from their list of favorites. | /users/[Username]/favourites/[MovieTitle] | DELETE | /users/:username/favourites/:title | None | A JSON object indicating whether the movies was successfully removed from favourites. |
| Allow existing users to deregister. | /users/[Username] | DELETE | /users/:username | None |
A text message indicating whether the user has been removed.Example: martabarchen was deleted. |


Weekly Report
From
To
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
Click here to download Novation Form
Scan your novation form and upload with other attachments. If tou have more than one file ,put them into a compressed folder and upload it!
Attachments
Summary
Enter your key password to put your digital Signature
Enter your key word to verify your digital Signature
Submit


About Me
Thanks for checking out my blog! My name is Steven Clontz, and I’m a mathematician / teacher / hacker / puzzle designer from Auburn, Alabama.
Life
I grew up in the suburbs outside Huntsville, Alabama, and attended Buckhorn High School. I moved to Auburn, Alabama to attend Auburn University and have stayed here happily ever since.
While she also grew up in Huntsville, I first met my wife Jessica in Auburn in 2009. We married in June 2011, and look forward to many happy years together. Jessica is an elementary school teacher in the Auburn City school system.
Mathematics
My academic pursuits have been largely mathematical, and I graduated from Auburn as a University Honors Scholar with my undergrad thesis in discrete geometry studying the unfoldings of convex polyhedra. I later earned my Masters from Auburn in set-theoretic topology studying linearly ordered topological spaces. I currently am a doctoral candidate at Auburn, continuing in set-theoretic topology and investigating ω-length topological games and characterizing various topological properties by the existence of winning limited information strategies within such games.
In addition to my topological research, I enjoy recreational mathematics and puzzles of various types, and frequent /r/math and /r/learnmath on Reddit.
I was lucky to have the opportunity to develop the first mathematical puzzle solving competition for middle schoolers (that I know of!) along with Braxton Carrigan and Auburn’s COSAM Outreach office. Our event is called the A.M.P.’d Challenge, short for Auburn Mathematical Puzzle Competition. During each event, a wacky villain pulls off a crime, and by solving math puzzles, players can collect puzzle pieces which when put together reveal the method of the crime.
Web Development and Coding
I’ve had the opportunity to serve as the webmaster for several groups over the years, including the Auburn University Bands and AU Graduate Student Council.
I started a small online business with my friend James Dabbs called Teloga, a musician networking service connecting musicians with their organizations. It’s used for online registration and management of music personnel - we think it’s pretty neat.
James and I also collaborated on the open-source Puzzle Party Console to be used for organizing and running puzzlehunt competitions. Feel free to hack away if you find that sort of thing interesting!
Teaching and Leadership
Teaching has been a passion of mine since participating in Whitefire Junior Leadership Training at Camp Westmoreland in 2002. I went on to spend the next decade serving Whitefire JLT and National Youth Leadership Training camps in almost every position available as both a youth and adult leader. (While on topic, I am also a proud Eagle Scout!)
I am blessed to have the opportunity to instruct mathematics at Auburn University while pursuing my PhD. I have taught Calculus I, II, and III multiple times, as well as instructing a senior-level Euclidean geometry course in Summer 2011. I also have privately tutored many students for college placement exams and college courses.
I had the honor of serving as Webmaster for the AU Graduate Student Council in 2010-11, and as its President in 2011-12. I try to stay actively involved in university affairs and strive to serve my fellow classmates however I can.
Music
Beginning in middle school and lasting through my undergraduate career, I was an active participant in Marching and Concert Band, playing the trombone. I know enough piano to hurt myself, and am known to sing too loudly in church on Sundays.
I was proud to be a member of the Auburn University Bands, serving as a R.A.T. (Rookie Auburn Tiger) Leader as a student, and later on staff as their webmaster and Graduate Technology Assistant.
Puzzles
I first got involved with the puzzling community in Auburn in the summer of 2009 when my friend Charles McPillan and I secretly created the Auburn Puzzler, an enigmatic entity responsible for weekly puzzlehunts throughout the summer.
After winning Auburn Puzzle Party 3 I organized the first “Puzzle Patrol” event in 2010 along with its sequel in 2012: Auburn Puzzle Parties 4 and 5. I also regularly participate in area Puzzle Potlucks. Most recently I joined a group collaborating to solve the fourth face of the Kryptos structure at the CIA headquarters.
Thanks for visiting!
It’s been a while since I hosted a website for myself, tending to keep my Facebook more up to date. But it can’t hurt to have my own place to share my projects and thoughts.


Set trusted proxies and headers. If the request origin matchs one of the proxies to trust, then trust the specified header values.
Set the values here that your load balancer is known to override and set. If you do not set a value (e.g. the value is blank) then do not trust the value.


Create microservice with REST API¶
With this tutorial, you will create a basic ASAB microservice that provides a REST HTTP API. This microservice will implement Create, Read, Update and Delete functionality, in another words CRUD. MongoDB will be used as the database.
Prerequisites¶
Python version 3.6 or later
Asynchronous Server App Boilerplate (ASAB) version 20.3 or later
MongoDB instance
Postman
Note
We will use Docker to run MongoDB. Docker installation is not covered in this tutorial, but there are scores of good ones online should you run into any trouble. If you’re not familiar with Docker yet, it is a great opportunity to start (https://www.docker.com/get-started/).
Otherwise, you can install MongoDB following one of these tutorials: https://www.mongodb.com/docs/manual/installation/
Components¶
The microservice consists of several modules (aka Python files). These modules are as follows (and also indicate the file structure) and will be discussed in more detail in the respective sections below, going from top to bottom:
.
└── myrestapi.py
─── myrestapi
└── __init__.py
─── app.py
─── tutorial
└── handler.py
└── service.py
MongoDB¶
To make things simple, let’s use a Docker image.
Pull this image: https://hub.docker.com/_/mongo
You can simply use the command below to run it. If you choose to run the instance without a password, don’t forget to adjust the related asab.Config in ./myrestapi/app.py.
docker run -d -p 27017:27017 \
-e MONGO_INITDB_ROOT_USERNAME=user \
-e MONGO_INITDB_ROOT_PASSWORD=secret \
mongo
Postman¶
We use Postman to test the webservice REST API.
You can download it here: https://www.postman.com/downloads/
The Postman is fairly straightforward to use. You can create your collection of HTTP requests, save them, or automatically generate documentation.
myrestapi.py¶
This is where everything starts. Begin with the shebang line, which tells the executing operating system python should execute this program.
#!/usr/bin/env python3
Imports follow. All you need here is the application. It is called TutorialApp:
from myrestapi import TutorialApp
Next, instantiate an application class TutorialApp in the __main__ of the application, and run it:
if __name__ == '__main__':
app = TutorialApp()
app.run()
app.py¶
./myrestapi/app.py
Define the application class TutorialApp.
Imports first:
import asab
import asab.web
import asab.web.rest
import asab.storage
Add some default configuration:
asab.Config.add_defaults(
{
'asab:storage': {
'type': 'mongodb',
'mongodb_uri': 'mongodb://mongouser:mongopassword@mongoipaddress:27017',
'mongodb_database': 'mongodatabase'
},
})
Note
To make things more simple, Mongo credentials are stored here as a default configuration. Usually, you provide your app with a configuration file using -c commandline option. Learn more in section Configuration.
Next, describe the class, it inherits from the basic ASAB Application class, but you need to expand it a little:
class TutorialApp(asab.Application):
def __init__(self):
super().__init__()
# Register modules
self.add_module(asab.web.Module)
self.add_module(asab.storage.Module)
# Locate the web service
self.WebService = self.get_service("asab.WebService")
self.WebContainer = asab.web.WebContainer(
self.WebService, "web"
)
self.WebContainer.WebApp.middlewares.append(
asab.web.rest.JsonExceptionMiddleware
)
# Initialize services
from .tutorial.handler import CRUDWebHandler
from .tutorial.service import CRUDService
self.CRUDService = CRUDService(self)
self.CRUDWebHandler = CRUDWebHandler(
self, self.CRUDService
)
__init__.py¶
./myrestapi/__init__.py
Init file is needed so myrestapi will work as a module. Just import the TutorialApp.
from .app import TutorialApp
__all__ = [
"TutorialApp",
]
handler.py¶
./myrestapi/tutorial/handler.py
The handler is where HTTP Rest calls are handled and transformed into the actual (internal) service calls. From another perspective, the handler should contain only translation between REST calls and the service interface. No actual ‘business logic’ should be here. It is strongly suggested to build these CRUD methods one by one and test them straight away. If you haven’t set up your database test instance yet, now is the time to do it.
As usual, we start by importing modules:
import asab
import asab.web.rest
Let’s start with two methods - create and read which allow us to write into database and check the record.
class CRUDWebHandler(object):
def __init__(self, app, mongo_svc):
self.CRUDService = mongo_svc
web_app = app.WebContainer.WebApp
web_app.router.add_put(
'/crud-myrestapi/{collection}',
self.create
)
web_app.router.add_get(
'/crud-myrestapi/{collection}/{id}',
self.read
)
@asab.web.rest.json_schema_handler({
'type': 'object',
'properties': {
'_id': {'type': 'string'},
'field1': {'type': 'string'},
'field2': {'type': 'number'},
'field3': {'type': 'number'}
}})
async def create(self, request, *, json_data):
collection = request.match_info['collection']
result = await self.CRUDService.create(
collection, json_data
)
if result:
return asab.web.rest.json_response(
request, {"result": "OK"}
)
else:
asab.web.rest.json_response(
request, {"result": "FAILED"}
)
async def read(self, request):
collection = request.match_info['collection']
key = request.match_info['id']
response = await self.CRUDService.read(
collection, key
)
return asab.web.rest.json_response(
request, response
)
The handler only accepts the incoming requests and returns appropriate responses. All of the “logic”, be it the specifics of the database connection, additional validations and other operations take place in the CRUDService.
POST and PUT requests typically come with data in their body. Providing your WebContainer with JsonExceptionMiddleware enables you to validate a JSON input using @asab.web.rest.json_schema_handler decorator and JSON schema (https://json-schema.org/).
Note
ASAB WebServer is built on top of the aiohttp library. For further details please visit https://docs.aiohttp.org/en/stable/index.html.
service.py¶
./myrestapi/tutorial/service.py
As mentioned above, this is where the inner workings of the microservice request processing are. Let’s start as usual, by importing the desired modules:
import asab
import asab.storage.exceptions
We want to start logging in here:
import logging
#
L = logging.getLogger(__name__)
#
Now define the CRUDService class which inherits from the asab.Service class.
Note
asab.Service is a lightweight yet powerful abstract class providing your object with 3 functionalities:
Name of the asab.Service is registered in the app and can be called from the app object anywhere in your code.
asab.Service class implements initialize() and finalize() coroutines which help you to handle asynchronous operations in init and exit time of your application.
asab.Service registers application object as self.App for you.
class CRUDService(asab.Service):
def __init__(self, app, service_name='crud.CRUDService'):
super().__init__(app, service_name)
self.MongoDBStorageService = app.get_service(
"asab.StorageService"
)
async def create(self, collection, json_data):
obj_id = json_data.pop("_id")
cre = self.MongoDBStorageService.upsertor(
collection, obj_id
)
for key, value in zip(
json_data.keys(), json_data.values()
):
cre.set(key, value)
try:
await cre.execute()
return "OK"
except asab.storage.exceptions.DuplicateError:
L.warning(
"Document you are trying to create already exists."
)
return None
async def read(self, collection, obj_id):
response = await self.MongoDBStorageService.get(
collection, obj_id
)
return response
asab.StorageService initialized in app.py as part of the asab.storage.Module enables connection to MongoDB. Further on, two methods provide the handler with the desired functionalities.
Now test it!¶
The application is implicitly running on an 8080 port. Open the Postman and set a new request.
Try the PUT method:
<IP_ADDRESS>:8080/crud-myrestapi/movie
Insert into the request body:
{
"_id": "1",
"field1": "something new",
"field2": 5555,
"field3": 44424
}
When there’s a record in your database, try to read it! For example with this GET request:
<IP_ADDRESS>:8080/crud-myrestapi/movie/1
Is your response with a 200 status code? Does it return desired data?
Note
TROUBLESHOOTING
ERROR
ModuleNotFoundError: No module named 'pymongo.mongo_replica_set_client'
Try:
pip install motor
ERROR
OSError: [Errno 98] error while attempting to bind on address ('<IP_ADDRESS>', 8080): address already in use
Try to kill process listening on 8080 or add [web] section into configuration:
asab.Config.add_defaults(
{
'asab:storage': {
'type': 'mongodb',
'mongodb_uri': 'mongodb://mongouser:mongopassword@mongoipaddress:27017',
'mongodb_database': 'mongodatabase'
},
'web': {
'listen': '<IP_ADDRESS> 8081'
}
})
ERROR
No error at all, no response either.
Try to check the Mongo database credentials. Do your credentials in the configuration in app.py fit the ones you entered when running the Mongo Docker image?
Up and running! Congratulation on your first ASAB microservice!
Oh, wait…
C, R… What about Update and Delete you ask?
You already know everything to add the next functionality!  Or check out the code below.
Update and Delete¶
handler.py
./myrestapi/tutorial/handler.py
import asab
import asab.web.rest
class CRUDWebHandler(object):
def __init__(self, app, mongo_svc):
self.CRUDService = mongo_svc
web_app = app.WebContainer.WebApp
web_app.router.add_put(
'/crud-myrestapi/{collection}',
self.create
)
web_app.router.add_get(
'/crud-myrestapi/{collection}/{id}',
self.read
)
web_app.router.add_put(
'/crud-myrestapi/{collection}/{id}',
self.update
)
web_app.router.add_delete(
'/crud-myrestapi/{collection}/{id}',
self.delete
)
@asab.web.rest.json_schema_handler({
'type': 'object',
'properties': {
'_id': {'type': 'string'},
'field1': {'type': 'string'},
'field2': {'type': 'number'},
'field3': {'type': 'number'}
}})
async def create(self, request, *, json_data):
collection = request.match_info['collection']
result = await self.CRUDService.create(
collection, json_data
)
if result:
return asab.web.rest.json_response(
request, {"result": "OK"}
)
else:
asab.web.rest.json_response(
request, {"result": "FAILED"}
)
async def read(self, request):
collection = request.match_info['collection']
key = request.match_info['id']
response = await self.CRUDService.read(
collection, key
)
return asab.web.rest.json_response(
request, response
)
@asab.web.rest.json_schema_handler({
'type': 'object',
'properties': {
'_id': {'type': 'string'},
'field1': {'type': 'string'},
'field2': {'type': 'number'},
'field3': {'type': 'number'}
}})
async def update(self, request, *, json_data):
collection = request.match_info['collection']
obj_id = request.match_info["id"]
result = await self.CRUDService.update(
collection, obj_id, json_data
)
if result:
return asab.web.rest.json_response(
request, {"result": "OK"}
)
else:
asab.web.rest.json_response(
request, {"result": "FAILED"}
)
async def delete(self, request):
collection = request.match_info['collection']
obj_id = request.match_info["id"]
result = await self.CRUDService.delete(
collection, obj_id
)
if result:
return asab.web.rest.json_response(
request, {"result": "OK"}
)
else:
asab.web.rest.json_response(
request, {"result": "FAILED"}
)
service.py
./myrestapi/tutorial/service.py
import asab
import asab.storage.exceptions
import logging
#
L = logging.getLogger(__name__)
#
class CRUDService(asab.Service):
def __init__(self, app, service_name='crud.CRUDService'):
super().__init__(app, service_name)
self.MongoDBStorageService = app.get_service(
"asab.StorageService"
)
async def create(self, collection, json_data):
obj_id = json_data.pop("_id")
cre = self.MongoDBStorageService.upsertor(
collection, obj_id
)
for key, value in zip(
json_data.keys(), json_data.values()
):
cre.set(key, value)
try:
await cre.execute()
return "OK"
except asab.storage.exceptions.DuplicateError:
L.warning(
"Document you are trying to create already exists."
)
return None
async def read(self, collection, obj_id):
response = await self.MongoDBStorageService.get(
collection, obj_id
)
return response
async def update(self, collection, obj_id, document):
original = await self.read(
collection, obj_id
)
cre = self.MongoDBStorageService.upsertor(
collection, original["_id"], original["_v"]
)
for key, value in zip(
document.keys(), document.values()
):
cre.set(key, value)
try:
await cre.execute()
return "OK"
except KeyError:
return None
async def delete(self, collection, obj_id):
try:
await self.MongoDBStorageService.delete(
collection, obj_id
)
return True
except KeyError:
return False


|
My Project
|
This class lets a user make a window containing WS2812B LEDs. More...
#include <jhlib_window.hpp>
Public Member Functions | |
| jhlib_window (const hwlib::xy &size, hwlib::pin_out &gpio) | |
| This constructor lets the user make a window out of WS2812B LEDs. More... | |
| void | flush () override |
| This flush function will flush the saved LED data onto the LEDs. More... | |
| Public Member Functions inherited from jhlib::WS2812B | |
| WS2812B (hwlib::pin_out &gpio, const unsigned int led_amount) | |
| This constructor lets the user define a gpio pin and a amount of LEDs. More... | |
| void | draw (unsigned int position, int rgb) |
| This public function write lets the user change a certain LED using a HEX value. More... | |
| void | draw (unsigned int position, int R, int G, int B) |
| This public function write lets the user change a certain LED using three int values. More... | |
| void | flush () |
| This public function displays the written values to the LEDs. More... | |
This class lets a user make a window containing WS2812B LEDs.
To use this class call it with a hwlib::xy(x, y) as size and a hwlib::target::pin_out gpio pin.
To write a collor to a LED try window.write(hwlib::xy(x, y), hwlib::color). Afterwards do window.flush().
|
inline |
|
inlineoverride |
This flush function will flush the saved LED data onto the LEDs.
This function simply calls the WS2812B::flush, causing all saved LED data to be displayed onto the LEDs.


--- layout: fru title: FRU Lookup and system service parts index - ThinkPads.org permalink: fru/pictures/ ---


Description: Determine whether an element has any jQuery data associated with it.
The jQuery.hasData()
method provides a way to determine if an element currently has any values that were set using jQuery.data()
. If no data is associated with an element (there is no data object at all or the data object is empty), the method returns false
; otherwise it returns true
.
The primary advantage of jQuery.hasData(element)
is that it does not create and associate a data object with the element if none currently exists. In contrast, jQuery.data(element)
always returns a data object to the caller, creating one if no data object previously existed.
Note that jQuery's event system uses the jQuery data API to store event handlers. Therefore, binding an event to an element using .on()
, .bind()
, .live()
, .delegate()
, or one of the shorthand event methods also associates a data object with that element.
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<p>Results: </p>
<script>
var $p = jQuery("p"), p = $p[0];
$p.append(jQuery.hasData(p)+" "); /* false */
$.data(p, "testing", 123);
$p.append(jQuery.hasData(p)+" "); /* true*/
$.removeData(p, "testing");
$p.append(jQuery.hasData(p)+" "); /* false */
$p.on('click', function() {});
$p.append(jQuery.hasData(p)+" "); /* true */
$p.off('click');
$p.append(jQuery.hasData(p)+" "); /* false */
</script>
</body>
</html>


WATCH | Joburg police catch suspected handbag snatcher who wrestled woman to the ground
Police in Johannesburg have arrested a suspect on a charge of robbery after a video went viral on social media of a man snatching a woman's handbag and wrestling her to the ground.
"A Zimbabwean national is expected to appear before the Jeppe Magistrate's Court after he was arrested in Cleveland on Thursday evening," police spokesperson Brigadier Mathapelo Peters told News24 in a statement.
In the CCTV footage, which was widely circulated on social media, a woman can be seen standing near the boot of her car.
She takes a sip from a beverage that was in the boot when a man approaches her from behind and attempts to snatch her handbag.
They then engage in a tug of war, causing the woman to fall.
They continue to wrestle until the assailant is finally able to snatch the bag from her hand and flee in a white Toyota Corolla.


Trump hosts Turkish leader Erdogan at White House for bilateral talks
Accra, Nov. 13, (UPI/GNA) - President Donald Trump welcomes Turkish President Recep Tayyip Erdogan to the White House Wednesday, and the two will hold a bilateral meeting to discuss military operations in Syria.
Trump was roundly criticized in September when he announced a troop withdrawal from Syria as Turkey launched a military offensive against Kurdish forces in the northeast.
The leaders are also expected to address Erdogan's recent purchase of a Russian S-400 defense system, which foiled a previous deal for Ankara to buy the new F-35 fighter jet from the Pentagon.
Turkey said this week it's started the process of deporting foreign Islamic State fighters to their native countries, including one from the United States.
Wednesday will be Erdogan's second visit to Washington, D.C. He met with Trump in 2017 during a visit that also made headlines for skirmishes between his security detail and protesters demonstrating to support Kurdish allies outside the residence of the Turkish ambassador. Charges were filed against seven of Erdogan's bodyguards, but they were later dropped.
Trump and Erdogan will speak to reporters at a joint news conference around 3 p.m. EST.
GNA


I am a very passionate tech-nerd with ability to solve complex technological problems with minimal
guidance using logical and critical reasoning and a strong attention to important matters.
What I do
Meet with clients, determine needs, help develop, ensure usability, and complete quality assurance.
Create programs that solve the user’s problem find bugs and debuging them
Why I do
I have always been so passionate about using my web-development skills facing our society today.
Projects
Being a very passionate tech-nerd, here are some of my recent projects;


please waiting am loading content...
Create Political Party
party name:
HQ. Address:
Party Logo:
Create Party
hello I am a toast bar
x


So, to get the null space of the linear system, we may want to decompose it into two parts:
(1)Using more fancy form (matrix), the original equation can be expressed by this:
(2)The matrix [1 1/4] has two columns and it's a 1-dimensional matrix living in
Note that the columns are linear dependent since the first column is 4 times of the second column.
So, the general solution looks like this:
(3)The first matrix is the particular solution and the second matrix is the null space.
As we know, the equation has many solutions, and we can get those from the general solution.
For example, to make $10, we take 9 of $1 and 4 of $0.25, in which case the α=-1. Or we can take 0 of $1 and 40 of $0.25, in that case, the α=-10.
Let's go back to the equation (1).
The first equation is about the combination of (x,y) to make $10 while the 2nd equation is all about the combination of (x,y) to make 0.
In that context, let's analyze the matrix form (Eq.2).
The [1,1/4] consists of two column vectors, and it has very close relationship with the right hand side of matrix which is [10].
As we'll see later, for more complex linear system, we may see if the system has a solution or not by just analyzing the column spaces.
The null space, on the other hand, is all about the relationships between column spaces rather than the right hand side matrix.
As we can see, the null space we got was [1,-4], it tries to solve the 2nd equation of (1) whatever combination of (x,y). Actually, the ratio is 1:4 and to make it 0, we need to make it cancel, and that's why we have 1 and minus -4.
Whenever we use null space, the column space always comes up, which may trick us to think the two are similar.
So, the more we focus on the similarities between the null space and the column space, the more we'll be confused. However, they are totally different spaces in terms of their purposes, and to grasp the clear concept of those two spaces, we should be more focused on the differences of the two:
In terms of dimension:
Now, let's go deeper into null space. In the section for Null Space, we'll deal with a couple of quizes including the following 3 problems: finding null and column spaces:
Quiz # 1:
Quiz # 2:
Quiz # 3:
Take the challenge: Null Space


Issue: ACCESS-ERROR-NAMEEdit history: no proposal circulated prior to meeting
David Moon moved, and Dick Gabriel seconded, to
Eliminate
(OR (FIND-SYMBOL "CELL-ERROR"
"COMMON-LISP"))
(FIND-SYMBOL "ACCESS-ERROR"
"COMMON-LISP")))
Ditto for CELL-ERROR-NAME and/or
Introduce UNBOUND-VARIABLE-NAME,
UNDEFINED-FUNCTION-NAME,
UNBOUND-SLOT-NAME.
The amendment passed 9-8.
Straw vote showed that one person felt strongly about their vote.
Larry moved, and Dan seconded, to roll back the previous motion to
CELL-ERROR. The motion passed 12-5.
/n


This tests that we won't crash if a full-frame plugin returns an error from its NPP_NewStream callback
SUCCESS - Didn't crash


Preparation time
less than 30 mins
Cooking time
over 2 hours
Serves
Serves 6-8
Place the steak and kidney into a large bowl. Stir in the onion, celery salt, pepper, salt and thyme leaves. Toss together lightly and set to one side.
To make the suet pastry, sift the flour and the salt into a large bowl. Add the suet, salt and pepper. Lightly mix and add the water a little at a time.
Cut through the dough using a round bladed knife as if you were making scones.
Using your hands mix to form a soft dough.
On a lightly floured work surface roll out the pastry into a round disc approximately 0.5-1cm/¼-½in) thick. Cut out about a quarter of the pastry mixture for the lid and set aside.
Use the remainder of the pastry to line a well buttered 1.75l/3pt pudding basin, leaving at least 1cm½in of the pastry hanging over the edge.
Add the flour to the steak and kidney mixture and stir gently. Place the batches of the meat mixture into a sieve (with a glass bowl underneath) and shake to remove any excess flour.
Spoon into the pudding basin lined with the pastry. Do not push the meat filling into the basin and add the fresh beef stock nearly 2/3rds to the top not covering the meat completely.
Place the pastry lid over the filling and fold the border over. Press the pastry together securely to seal.
Cover the pudding with a double piece of buttered foil, pleated in the middle. Tie in place with string.
Steam the pudding on an upturned plate in a large saucepan filled with hot water for 5 hours, topping up with water occasionally so as not to boil the water in the saucepan dry.
To serve, turn out the pudding onto a large warm plate. Cut a wedge of the pudding and place on a serving plate with mashed potatoes and a spoonful of peas.


Gerrit is a whipmaker based out of Southern California. He produces high quality bullwhips and snake whips made from 650 nylon paracord. All whips are hand made one at a time and most are custom ordered. He makes whips of all sizes but his most common are 6 and 8 foot bullwhips for adults, and 5 foot whips for children under 10 years old.
Gerrit has been cracking a whip since he was 10 years old. He received his first whip as a birthday present, which was 10 plait cowhide bullwhip. It served him well (except that one issue with the TSA) and is still in his collection. However a few years of neglect as a child left it in a state where its better suited living out its life retired and on a shelf. Thats when he turned to nylon bullwhips.
While performing in a circus he was introduced to a paracord bullwhip a coworker had made, and was impressed by the quality. After some research he decided to attempt to make one himself. The results were… poor. At the very least it was functional, but not what one would call a quality product.
To this day Gerrit is still honing his skills and tweaking things. He experiments with new plaiting patterns, color combinations, and takes meticulous notes on almost every aspect of his whips so each one can be an improvement on the last. This is why every whip that leaves his workbench comes with a satisfaction guarantee. If you are ever dissatisfied with the quality of a whip you can return it for a full refund. As a perpetual student Gerrit welcomes any whipmakers or whip enthusiasts feedback on his products. Gerrit is always aiming to improve so he can create the highest quality product, otherwise he wouldn’t put his name on it.


NEWS
WASHINGTON, D.C. OFFICE
STATE OFFICES
Manchester
1589 Elm Street
Third Floor
Manchester, NH 03101
Phone:<PHONE_NUMBER>
STATE OFFICES
Portsmouth
14 Manchester Square
Suite #140
Portsmouth, NH 03801
Phone:<PHONE_NUMBER>
democrats.org | Democrat National Committee
democrats.org/state-parties
Demograts.org UNION MEMBERS AND FAMILIES
THE ALLIANCE OF U.S. LABOR UNIONS AND THE DEMOCRATIC PARTY
UnionDemocracy.org | Association for Union Democracy
dsausa.org | Democratic Socialists of America
ourrevolution.com/
facebook.com/HouseDemocrats
twitter.com/HouseDemocrats
instagram.com/housedemocrats
youtube.com/HouseDems
flickr.com/photos/housedemocrats
https://twitter.com/SenateDems
democrats.senate.gov/leadership/
facebook.com/USSenateDemocrats
dscc.org | Democratic Senatorial Campaign Committee: DSCC


she currently lives in seattle
Places she visted
- Paris
- Frankfurt
- Denmark
Roman moved to seattle from Ethiopia in 2016.
She worked for diffrent companies during her 4 years stay in seattle.
Before coming to the United States, she worked as a laboratory technician.
Roman moved to seattle from Ethiopia in 2016.
She worked for diffrent companies during her 4 years stay in seattle.
Before coming to the United States, she worked as a laboratory technician.
she currently lives in seattle


Swipe through people that you like the best!
{{actualUserDisplayed.age}}
Male
Female
{{actualUserDisplayed.details}}


I just graduated from General Assembly's Web Development Immersive, a 12-week full-time bootcamp designed to stuff as much practical web dev knowledge as can fit into its students' brains. I've been dabbling in HTML/CSS/Wordpress designs since I was in middle school, so I was delighted to finally dive into web development head-on. I have learned an amazing amount in three months, and while I know I have much more to tackle, I’m excited to go out and put my knowledge to use improving the Web.
(downloadable PDF)
A junior web development position, either full stack or front end, in a team with good mentorship and steady opportunities to try new things.
Like ‘Hot or Not’ but for judging cats! A Ruby on Rails app with a Javascript front end, utilizing jQuery, Bootstrap, and PostgreSQL. Hosted on Heroku.
A group project making an ecommerce website using Node.js, MongoDB, and the Stripe API (to make payments). Also implemented user authentication and the Materialize.css framework.
Fellow group members: the most excellent Andrew Ellis and Andrew Hogue.
My very first project: a front-end app to allow you to play tic-tac-toe in the browser. Made in Javascript, HTML, and CSS; designed to be simple, intuitive, and soothing.
Let's build a castle! Draw a customizable castle using only HTML and CSS with this simple guide.
An entry-level HTML and CSS tutorial aimed at getting kids to explore. Angular front end, with embeddable code editor framework Ace, as well as Bootstrap and MongoDB. A work in progress.
Email me at: lark.grimes@gmail.com


Please wait for the blockchain to confirm the game creation..
You'll be automatically redirected when the game is ready!


Test cases demonstrating the web export functionality of Geometrize, an application for recreating images with geometric primitives.
All the graphics on this page are composed of simple shapes arranged to approximate images. Graphics on the left are drawn on HTML5 canvas, those on the right are drawn with WebGL three.js.


- updateDatabase(User) - Method in class accountsettings.AccountSettingsController
-
When this method is called, the USERINFO table's USERNAME,
PASSWORD and EMAIL column will be updated.
- user(User) - Method in class main.MainMenuDriveController
-
This method is used to be able to set the static field user in an instance method.
- User - Class in users
-
This Class holds all the user info pulled from the USERINFO and SCHEDULEINFO table.
- User(String, String, String, LocalDate, Time) - Constructor for class users.User
-
This constructor is used for passing the fields to the USERINFO table
from main.MainMenuContoller class.
- User(String, String, String, boolean, double) - Constructor for class users.User
-
This constructor is used for passing the fields to the USERINFO table
from the newuser.NewUserController class.
- User(int, String, String, String, boolean, double) - Constructor for class users.User
-
This constructor is used for passing the fields to the USERINFO table
from the login.LoginController class.
- User(String, double, String, String, LocalDate, Time) - Constructor for class users.User
-
This constructor is used for passing the fields to the SCHEDULEINFO table
from the main.MainMenuDriveController and main.MainMenuRideController.
- UserNameValidator - Class in newuser
-
Holds the reg ex (correct format) for the username field.
- UserNameValidator() - Constructor for class newuser.UserNameValidator
-
creates a pattern type from the regex.
- users - package users
-
- userSelected(User) - Method in class main.MainMenuDriveController
-
This method creates the user type from the clicked field in the tableview.


{% extends "site_base.html" %} {% load i18n %} {% block head_title %}{% trans "Not Found" %}{% endblock %} {% block body %}
{% trans "We're sorry but that page could not be found." %} Perhaps you would like to create a new package or grid?


|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.rmi.server.ObjID
public final class ObjID
An ObjID
is used to identify a remote object exported
to an RMI runtime. When a remote object is exported, it is assigned
an object identifier either implicitly or explicitly, depending on
the API used to export.
The ObjID()
constructor can be used to generate a unique
object identifier. Such an ObjID
is unique over time
with respect to the host it is generated on.
The ObjID(int)
constructor can be used to create a
"well-known" object identifier. The scope of a well-known
ObjID
depends on the RMI runtime it is exported to.
An ObjID
instance contains an object number (of type
long
) and an address space identifier (of type
UID
). In a unique ObjID
, the address space
identifier is unique with respect to a given host over time. In a
well-known ObjID
, the address space identifier is
equivalent to one returned by invoking the UID.UID(short)
constructor with the value zero.
If the system property java.rmi.server.randomIDs
is defined to equal the string "true"
(case insensitive),
then the ObjID()
constructor will use a cryptographically
strong random number generator to choose the object number of the
returned ObjID
.
| Field Summary | |
|---|---|
static int |
ACTIVATOR_ID
Object number for well-known ObjID of the activator. |
static int |
DGC_ID
Object number for well-known ObjID of
the distributed garbage collector. |
static int |
REGISTRY_ID
Object number for well-known ObjID of the registry. |
| Constructor Summary | |
|---|---|
ObjID()
Generates a unique object identifier. |
|
ObjID(int objNum)
Creates a "well-known" object identifier. |
| Method Summary | |
|---|---|
boolean |
equals(Object obj)
Compares the specified object with this ObjID for
equality. |
int |
hashCode()
Returns the hash code value for this object identifier, the object number. |
static ObjID |
read(ObjectInput in)
Constructs and returns a new ObjID instance by
unmarshalling a binary representation from an
ObjectInput instance. |
String |
toString()
Returns a string representation of this object identifier. |
void |
write(ObjectOutput out)
Marshals a binary representation of this ObjID to
an ObjectOutput instance. |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final int REGISTRY_ID
ObjID
of the registry.
public static final int ACTIVATOR_ID
ObjID
of the activator.
public static final int DGC_ID
ObjID
of
the distributed garbage collector.
| Constructor Detail |
|---|
public ObjID()
If the system property java.rmi.server.randomIDs
is defined to equal the string "true"
(case insensitive),
then this constructor will use a cryptographically
strong random number generator to choose the object number of the
returned ObjID
.
public ObjID(int objNum)
An ObjID
created via this constructor will not
clash with any ObjID
s generated via the no-arg
constructor.
objNum
- object number for well-known object identifier| Method Detail |
|---|
public void write(ObjectOutput out) throws IOException
ObjID
to
an ObjectOutput
instance.
Specifically, this method first invokes the given stream's
DataOutput.writeLong(long)
method with this object
identifier's object number, and then it writes its address
space identifier by invoking its UID.write(DataOutput)
method with the stream.
out
- the ObjectOutput
instance to write
this ObjID
to
IOException
- if an I/O error occurs while performing
this operationpublic static ObjID read(ObjectInput in) throws IOException
ObjID
instance by
unmarshalling a binary representation from an
ObjectInput
instance.
Specifically, this method first invokes the given stream's
DataInput.readLong()
method to read an object number,
then it invokes UID.read(DataInput)
with the
stream to read an address space identifier, and then it
creates and returns a new ObjID
instance that
contains the object number and address space identifier that
were read from the stream.
in
- the ObjectInput
instance to read
ObjID
from
ObjID
instance
IOException
- if an I/O error occurs while performing
this operationpublic int hashCode()
hashCode
in class Object
Object.equals(java.lang.Object)
,
Hashtable
public boolean equals(Object obj)
ObjID
for
equality.
This method returns true
if and only if the
specified object is an ObjID
instance with the same
object number and address space identifier as this one.
equals
in class Object
obj
- the object to compare this ObjID
to
true
if the given object is equivalent to
this one, and false
otherwiseObject.hashCode()
,
Hashtable
public String toString()
toString
in class Object
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright © 2004, 2010 Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.


MV* in a month
From designer to functional knowledge in 23ish man hours
I am a designer
My learning checklist
- Specific goals
- Single or multipal skills
- Only essentials
- Learning materials
- Acquiring tools
Goals
- What is a javascript MV* framework
- Who are the top MV* frameworks
- and what makes them different
- Choose my favorite
- BUILD SOMETHING
*Because of these things I will learn more about javascript
My Plan
- Week 1 - Learning and Research!!
- Week 2 - Play with the leaders and figure out my favorite
- Week 3 - Choose a favorite and learn as much as I can
- Week 4 - Build a site using my MV* framework
* 40 minutes a day
Week 2 - The fun begins
- Backbone - Codeschool - Medical Appointment system(2)
- Ember - Peepcode - Point of sales(2)
- Angular - Egghead.io - ods and ends(1.5)
- knockout - work - work stuff (FREE)
- (support) node/mongodb- 10gen - (2)
Week 3 - Angular it is!
- Thinkster & Egghead.io (3)
- AngularJS by O’Reilly (3 as I fall asleep at night)
- (support) node/mongodb- 10gen - (2)
Week 4) The dramatic finish
What I built : DenverBrews.com


| Trees | Indices | Toggle frames |
|---|
Generic event dispatcher interface.
See the module docstring for usage.
|
register_event_type(cls,
name)
Register an event type with the dispatcher.
|
|
|
push_handlers(self,
*args,
**kwargs)
Push a level onto the top of the handler stack, then attach zero or
more event handlers.
|
|
|
set_handlers(self,
*args,
**kwargs)
Attach one or more event handlers to the top level of the handler
stack.
|
|
|
set_handler(self,
name,
handler)
Attach a single event handler.
|
|
|
pop_handlers(self)
Pop the top level of event handlers off the stack.
|
|
|
remove_handlers(self,
*args,
**kwargs)
Remove event handlers from the event stack.
|
|
|
remove_handler(self,
name,
handler)
Remove a single event handler.
|
|
|
dispatch_event(self,
event_type,
*args)
Dispatch a single event to the attached handlers.
|
|
|
event(self,
*args)
Function decorator for an event handler.
|
Register an event type with the dispatcher.
Registering event types allows the dispatcher to validate event handler names as they are attached, and to search attached objects for suitable handlers.
Push a level onto the top of the handler stack, then attach zero or more event handlers.
If keyword arguments are given, they name the event type to attach.
Otherwise, a callable's __name__
attribute will be used. Any other
object may also be specified, in which case it will be searched for
callables with event names.
Attach one or more event handlers to the top level of the handler stack.
See push_handlers for the accepted argument types.
Remove event handlers from the event stack.
See push_handlers for the accepted argument types. All handlers are removed from the first stack frame that contains any of the given handlers. No error is raised if any handler does not appear in that frame, or if no stack frame contains any of the given handlers.
If the stack frame is empty after removing the handlers, it is removed from the stack. Note that this interferes with the expected symmetry of push_handlers and pop_handlers.
Remove a single event handler.
The given event handler is removed from the first handler stack frame it appears in. The handler must be the exact same callable as passed to set_handler, set_handlers or push_handlers; and the name must match the event type it is bound to.
No error is raised if the event handler is not set.
Dispatch a single event to the attached handlers.
The event is propogated to all handlers from from the top of the stack until one returns EVENT_HANDLED. This method should be used only by EventDispatcher implementors; applications should call the dispatch_events method.
Function decorator for an event handler.
Usage:
win = window.Window() @win.event def on_resize(self, width, height): # ...
or:
@win.event('on_resize') def foo(self, width, height): # ...
| Trees | Indices | Toggle frames |
|---|
| Generated by Epydoc 3.0beta1 on Sun Mar 22 20:15:39 2009 | http://epydoc.sourceforge.net |


Rate artist
= 1}" (click)="submitVote(1)" tooltip="1" placement="top">★
= 2}" (click)="submitVote(2)" tooltip="2" placement="top">★
= 3}" (click)="submitVote(3)" tooltip="3" placement="top">★
= 4}" (click)="submitVote(4)" tooltip="4" placement="top">★
= 5}" (click)="submitVote(5)" tooltip="5" placement="top">★
= 6}" (click)="submitVote(6)" tooltip="6" placement="top">★
= 7}" (click)="submitVote(7)" tooltip="7" placement="top">★
= 8}" (click)="submitVote(8)" tooltip="8" placement="top">★
= 9}" (click)="submitVote(9)" tooltip="9" placement="top">★
★


Azure Functions Tug of War
Repo
Welcome to the Tug of War game demo powered by Azure Functions.
Enter a name for Team 1:
Enter a name for Team 2:
Let's Play!
Instructions
Enter a name for Team 1 and Team 2 and click the
Let's Play
button.
Instruct your players to visit
to start playing!
To start a new game simply refresh this page.
Real Time Game Progress
Team 1
0
Team 2
0


DotNetNuke® Feedback Module v. 06.01.00 -- RELEASE NOTES
Requirements: DotNetNuke version 06.01.02 or later, ASP.Net 3.5 SP1 or later.
Full details on the changes can be found in great detail at http://dnnfeedback.codeplex.com/workitem/list/basic.
This release brings some enhancements to the module as well as fixing all known bugs.
Bug Fixes
- Section Headers should be hidden when not required
- Allow space after semicolon in email address list
- Removed redundant tab based coding in module settings that was causing error
Enhancements
- Added ability to have module specific category and subject lists
Changes
- Changed to use IconKey api wherever possible - excludes print icon since this is not available in DNN 6.1.2
- Made recommended updates to increase Azure compatability
- Add optional confirm email field
- Re-direct To list now includes hidden tabs