16:09:46.154 [Test worker] INFO o.a.a.b.BrokerService - Using Persistence Adapter: MemoryPersistenceAdapter
16:09:46.156 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:2) is starting
16:09:46.156 [Test worker] INFO o.a.a.t.TransportServerThreadSupport - Listening for connections at: stomp://localhost:62714
16:09:46.157 [Test worker] INFO o.a.a.b.TransportConnector - Connector stomp://localhost:62714 Started
16:09:46.157 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:2) started
16:09:46.157 [Test worker] INFO o.a.a.b.BrokerService - For help or more information please see: http://activemq.apache.org
16:09:46.176 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:2) is shutting down
16:09:48.171 [Test worker] INFO o.a.a.b.TransportConnector - Connector stomp://localhost:62714 Stopped
16:09:48.172 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:2) uptime 2.018 seconds
16:09:48.173 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:2) is shutdown
16:09:50.223 [Test worker] INFO o.a.a.b.BrokerService - Using Persistence Adapter: MemoryPersistenceAdapter
16:09:50.224 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:3) is starting
16:09:50.224 [Test worker] INFO o.a.a.t.TransportServerThreadSupport - Listening for connections at: stomp://localhost:62189
16:09:50.225 [Test worker] INFO o.a.a.b.TransportConnector - Connector stomp://localhost:62189 Started
16:09:50.225 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:3) started
16:09:50.225 [Test worker] INFO o.a.a.b.BrokerService - For help or more information please see: http://activemq.apache.org
16:09:52.320 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:3) is shutting down
16:09:54.248 [Test worker] INFO o.a.a.b.TransportConnector - Connector stomp://localhost:62189 Stopped
16:09:54.248 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:3) uptime 4.025 seconds
16:09:54.248 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:3) is shutdown
16:09:54.250 [Test worker] INFO o.a.a.b.BrokerService - Using Persistence Adapter: MemoryPersistenceAdapter
16:09:54.250 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:4) is starting
16:09:54.251 [Test worker] INFO o.a.a.t.TransportServerThreadSupport - Listening for connections at: stomp://localhost:65069
16:09:54.252 [Test worker] INFO o.a.a.b.TransportConnector - Connector stomp://localhost:65069 Started
16:09:54.252 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:4) started
16:09:54.252 [Test worker] INFO o.a.a.b.BrokerService - For help or more information please see: http://activemq.apache.org
16:09:54.269 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:4) is shutting down
16:09:56.266 [Test worker] INFO o.a.a.b.TransportConnector - Connector stomp://localhost:65069 Stopped
16:09:56.267 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:4) uptime 2.017 seconds
16:09:56.267 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:4) is shutdown
16:09:58.310 [Test worker] INFO o.a.a.b.BrokerService - Using Persistence Adapter: MemoryPersistenceAdapter
16:09:58.311 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:5) is starting
16:09:58.311 [Test worker] INFO o.a.a.t.TransportServerThreadSupport - Listening for connections at: stomp://localhost:62486
16:09:58.312 [Test worker] INFO o.a.a.b.TransportConnector - Connector stomp://localhost:62486 Started
16:09:58.312 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:5) started
16:09:58.312 [Test worker] INFO o.a.a.b.BrokerService - For help or more information please see: http://activemq.apache.org
16:09:58.338 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:5) is shutting down
16:10:00.339 [Test worker] INFO o.a.a.b.TransportConnector - Connector stomp://localhost:62486 Stopped
16:10:00.340 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:5) uptime 2.030 seconds
16:10:00.340 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:5) is shutdown
16:10:00.341 [Test worker] INFO o.a.a.b.BrokerService - Using Persistence Adapter: MemoryPersistenceAdapter
16:10:00.341 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:6) is starting
16:10:00.342 [Test worker] INFO o.a.a.t.TransportServerThreadSupport - Listening for connections at: stomp://localhost:62486
16:10:00.342 [Test worker] INFO o.a.a.b.TransportConnector - Connector stomp://localhost:62486 Started
16:10:00.343 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:6) started
16:10:00.343 [Test worker] INFO o.a.a.b.BrokerService - For help or more information please see: http://activemq.apache.org
16:10:07.407 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:6) is shutting down
16:10:09.323 [Test worker] INFO o.a.a.b.TransportConnector - Connector stomp://localhost:62486 Stopped
16:10:09.324 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:6) uptime 8.982 seconds
16:10:09.324 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:6) is shutdown
16:10:09.325 [Test worker] INFO o.a.a.b.BrokerService - Using Persistence Adapter: MemoryPersistenceAdapter
16:10:09.326 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:7) is starting
16:10:09.326 [Test worker] INFO o.a.a.t.TransportServerThreadSupport - Listening for connections at: stomp://localhost:65058
16:10:09.327 [Test worker] INFO o.a.a.b.TransportConnector - Connector stomp://localhost:65058 Started
16:10:09.327 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:7) started
16:10:09.327 [Test worker] INFO o.a.a.b.BrokerService - For help or more information please see: http://activemq.apache.org
16:10:09.349 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:7) is shutting down
16:10:11.348 [Test worker] INFO o.a.a.b.TransportConnector - Connector stomp://localhost:65058 Stopped
16:10:11.349 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:7) uptime 2.024 seconds
16:10:11.349 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:7) is shutdown
16:10:13.409 [Test worker] INFO o.a.a.b.BrokerService - Using Persistence Adapter: MemoryPersistenceAdapter
16:10:13.410 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:8) is starting
16:10:13.410 [Test worker] INFO o.a.a.t.TransportServerThreadSupport - Listening for connections at: stomp://localhost:62687
16:10:13.411 [Test worker] INFO o.a.a.b.TransportConnector - Connector stomp://localhost:62687 Started
16:10:13.411 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:8) started
16:10:13.411 [Test worker] INFO o.a.a.b.BrokerService - For help or more information please see: http://activemq.apache.org
16:10:15.484 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:8) is shutting down
16:10:17.431 [Test worker] INFO o.a.a.b.TransportConnector - Connector stomp://localhost:62687 Stopped
16:10:17.431 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:8) uptime 4.022 seconds
16:10:17.431 [Test worker] INFO o.a.a.b.BrokerService - Apache ActiveMQ 5.8.0 (localhost, ID:gankangdembp-54388-1624176583358-0:8) is shutdown


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.xml.security.keys.keyresolver.KeyResolver
KeyResolver is factory class for subclass of KeyResolverSpi that represent child element of KeyInfo.
| Field Summary | |
protected KeyResolverSpi |
_resolverSpi
Field _resolverSpi |
protected StorageResolver |
_storage
Field _storage |
| Method Summary | |
boolean |
canResolve(org.w3c.dom.Element element,
java.lang.String BaseURI,
StorageResolver storage)
Method canResolve |
static KeyResolver |
getInstance(org.w3c.dom.Element element,
java.lang.String BaseURI,
StorageResolver storage)
Method getInstance |
java.lang.String |
getProperty(java.lang.String key)
Method getProperty |
java.lang.String[] |
getPropertyKeys()
Method getPropertyKeys |
static void |
init()
The init() function is called by org.apache.xml.security.Init.init() |
static KeyResolver |
item(int i)
Method item |
static int |
length()
Method length |
static void |
register(java.lang.String className)
This method is used for registering KeyResolverSpi s which are
available to all KeyInfo objects. |
static void |
registerAtStart(java.lang.String className)
This method is used for registering KeyResolverSpi s which are
available to all KeyInfo objects. |
java.security.PublicKey |
resolvePublicKey(org.w3c.dom.Element element,
java.lang.String BaseURI,
StorageResolver storage)
Method resolve |
java.lang.String |
resolverClassName()
Method resolverClassName |
javax.crypto.SecretKey |
resolveSecretKey(org.w3c.dom.Element element,
java.lang.String BaseURI,
StorageResolver storage)
|
static java.security.PublicKey |
resolveStatic(org.w3c.dom.Element element,
java.lang.String BaseURI,
StorageResolver storage)
Method resolveStatic |
java.security.cert.X509Certificate |
resolveX509Certificate(org.w3c.dom.Element element,
java.lang.String BaseURI,
StorageResolver storage)
Method resolveX509Certificate |
void |
setProperty(java.lang.String key,
java.lang.String value)
Method setProperty |
boolean |
understandsProperty(java.lang.String propertyToTest)
Method understandsProperty |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
protected KeyResolverSpi _resolverSpi
protected StorageResolver _storage
| Method Detail |
public static int length()
public static KeyResolver item(int i) throws KeyResolverException
i
-
KeyResolverException
public static final KeyResolver getInstance(org.w3c.dom.Element element, java.lang.String BaseURI, StorageResolver storage) throws KeyResolverException
element
- BaseURI
- storage
-
KeyResolverException
public static void init()
public static void register(java.lang.String className)
KeyResolverSpi
s which are
available to all KeyInfo
objects. This means that
personalized KeyResolverSpi
s should only be registered directly
to the KeyInfo
using
KeyInfo.registerInternalKeyResolver(org.apache.xml.security.keys.keyresolver.KeyResolverSpi)
.
className
- public static void registerAtStart(java.lang.String className)
KeyResolverSpi
s which are
available to all KeyInfo
objects. This means that
personalized KeyResolverSpi
s should only be registered directly
to the KeyInfo
using KeyInfo.registerInternalKeyResolver(org.apache.xml.security.keys.keyresolver.KeyResolverSpi)
.
className
- public static java.security.PublicKey resolveStatic(org.w3c.dom.Element element, java.lang.String BaseURI, StorageResolver storage) throws KeyResolverException
element
- BaseURI
- storage
-
KeyResolverException
public java.security.PublicKey resolvePublicKey(org.w3c.dom.Element element, java.lang.String BaseURI, StorageResolver storage) throws KeyResolverException
element
- BaseURI
- storage
-
KeyResolverException
public java.security.cert.X509Certificate resolveX509Certificate(org.w3c.dom.Element element, java.lang.String BaseURI, StorageResolver storage) throws KeyResolverException
element
- BaseURI
- storage
-
KeyResolverException
public javax.crypto.SecretKey resolveSecretKey(org.w3c.dom.Element element, java.lang.String BaseURI, StorageResolver storage) throws KeyResolverException
element
- BaseURI
- storage
-
KeyResolverException
public void setProperty(java.lang.String key, java.lang.String value)
key
- value
- public java.lang.String getProperty(java.lang.String key)
key
-
public java.lang.String[] getPropertyKeys()
public boolean understandsProperty(java.lang.String propertyToTest)
propertyToTest
-
public boolean canResolve(org.w3c.dom.Element element, java.lang.String BaseURI, StorageResolver storage)
element
- BaseURI
- storage
-
public java.lang.String resolverClassName()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


 Fylo has you covered for all of your file storage needs.
Securely share files and folders with friends, family and colleagues for live collaboration. No email attachments required!
See how Fylo worksFylo has improved our team productivity by an order of magnitude. Since making the switch our team has become a well-oiled collaboration machine.
Key Burton
Founder & CEO, Huddle


Start Bootstrap
Menu
Home
About
Sample Post
Contact
About Me
This is what I do.
CSS-Frameworks
JavaScript-Frameworks
Hosting/CDN
Bootstrap 4.5 (MIT-license)
"Clean Blog"-Theme by Start Bootstrap (MIT-license)
jQuery (MIT-license)
popper.js (MIT-license)
Bootstrap 4.5 (MIT-license)
hosted on glitch
.com
CDN by CDN.js


Team Lead
Adam is a full-stack web developer and a family man with an amazing wife and four kids. He has a background in the life insurance business where he found a love for programming when he created software solutions that solved underwriting problems for over 2,000 agents. When he's not busy coding, Adam loves to enjoy the great outdoors with his family.
Web UI Developer
Sarah has always had an interest in technology since she was young. Prior to Lambda School, she worked at a medical office and saw the inefficiencies of so many softwares and websites. She grew interest in it and wanted to learn for herself. On her days off she loves to hike, cook, and read.
Back End Architect
Erick Todd has been working with kids as an outdoor educator for the past 5 years and saw that there needed to be more tech role models for kids. Now he is getting as much tech experience and knowledge so that the kids have one more person in the tech industry to look up to. During his free time, Erick loves to dance, practice yoga, and cuddle with his dog, Mojo.


'George Reddy' is getting good reception: Jeevan Reddy - Telugu News - IndiaGlitz.com
Director Jeevan Reddy says that 'George Reddy' is a balanced and fair biopic that doesn't hurt anybody. In this interview, catch him talk about what went into learning about George Reddy, using creative liberties and more.
Action scenes were needed
The action scenes in the film had to be added because this film needs the blade fights, etc. The audience would feel bored if you fill the entire film with speeches. I can't answer every question raised by the critics of the movie. The pace of the film may be slow in some places, as required by the nature of the story. The dialogues, too, are quite organic.
Many stories out there
The feedback from the audience is satisfying. I didn't expect this kind of response. There are many stories of George Reddy that people know of. I have made the story that I know of. Some things have been dramatized in the movie for the sake of entertainment.
A long story told in short
A film like this can't be loved by one and all. Objections will always be raised by some. It took 1.5 years to write the script. It would have taken a 10-hour long film had I told every single major incident in George's life. It would have taken Rs 200 Cr to make such a biopic.
Kudos to male lead
Sandeep Madhav was in the character for three years. He walked and slept the character. People are going to remember only him when they think of George after this movie.
No offence
We haven't offended anyone in the film. Had I done that, I wouldn't be talking here with you today. I have made the movie with sincerity, looking into George's eyes.
No love track in the movie
I don't call it a love track that is there in the movie. The heroine merely moons over him, but there is no reciprocal reaction. I have read that George used to be looked up to in awe whenever and wherever he was around.
Debating is more important
Films like 'George Reddy' spark debates. That's more important than ideological affiliations. I didn't touch upon the Telangana movement in the film because that's a separate chapter. I will tell the story in a separate movie. That's my dream, too.
Being dispassionate
George was an enigmatic character about whom not everything is known. I gathered information from many and studied it dispassionately. The film touches upon almost every aspect of his life.
Cinematic liberties
I know that George used to walk on foot and had no pocket money even. We have taken creative liberties in showcasing the character as a Royal Enfield-rider. These days, all students have bikes.
Fictional accounts are there
What have I not shown in the movie? Nobody is giving an answer. We spoke to about 120 old-timers as part of research on George. Many of them must have given some fictional accounts somewhere.
Union elections would be good
Back in the 1970s, it was a dark era. If student elections are held today on campuses, nobody will resort to violence. It's because of the advancement in technology, media reach, etc.
 How a girl was tortured inside Nithyananda's ashram
Congress, Shiv Sena MLAs to be put under 'protection'
Maha politics is like Balakot airstrikes: Netizens
MBA fraud arrested for duping women with false promises
Devendra is CM for now, NCP's split confirmed!
Swami Nithyananda fled India like Vijay Mallya?
Mayank becomes India's youngest judge at 21
Rs 2,000 & Rs 500 notes rain on Kolkata street


DialogService.alert('This is an alert title', 'You can specify some description text in here.');
//use artisan ng:dialog add_users
//$scope is optional. You'll be able to use $scope.$parent from within the dialog's controller
DialogService.fromTemplate('add_users', $scope);


Metadatamatic is a simple Web application that allows you to create the description of a dataset. It is being provided as a quick and easy way for you to create your own dataset description. Simply work through the forms on this page and complete whichever details you'd like to add to your description. If you enter the URL of an endpoint, you will be able to extract some of the details of the dataset automatically. The final dataset description is displayed at the bottom of the page. It can be downloaded as a file or copied and pasted into an RDF file.
By using this service, you accept that the endpoint URL you input into Metadatamatic may be used by the WIMMICS team, exclusively for research purposes. Do not input sensitive private information in the fields. If you wish for your endpoint URL to be removed from the data retrieved by the WIMMICS team, please contact us.
The current state of the form is encoded in the page's URL. You can copy the URL and save it for later or bookmark it. When you want to continue, simply paste the URL in your browser's address bar and press enter. You can also share the URL with someone else, so that they can see the current state of the form.
The equivalences applied to the dataset description are described in a turtle file available here, using an ad-hoc ontology. Feel free to suggest new equivalences by opening an issue on the GitHub repository of the project.
This service is maintained by the WIMMICS joint team from Université Côte d'Azur, Inria, CNRS, I3S. Its source code is available under the Apache v2.0 license. Its development was conducted in the framework of the DeKaLoG and D2KAB projects. This service was inspired by the lack of dataset descriptions observed in the IndeGx framework experimentation, published here. A visualization of those results is shown in the KartoGraphI website, published here


--- layout: personal-default lang: "en" core_page_id: p0014 title: All random thoughts posts description: keywords: image: image_is_local: false image_alt: permalink: /blog/random-thoughts/ blog_page_type: list blog_page_category: random-thoughts random_thoughts_tab: "all" ---


My bluebottle › New campaign Preview Start Pitch Goal Story Payout Review Bank details & Legal Documents Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Aenean lacinia bibendum nulla sed consectetur. Etiam porta sem malesuada magna mollis euismod. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit. Maecenas sed diam eget risus varius blandit sit amet non magna. The campaign is run by an: Individual Organisation Organisation name Account holder name Account holder full address Country England Germany Netherlands Where is your bank located: In Europe Outside Europe Account number BIC/SWIFT codeMore info Bank name Bank name Bank's full address Country England Germany Netherlands Legal documents Please scan and upload a clear copy of your passport or ID. Don't have a scanner? A clear photo will do too! My_passport.pdf Upload another document Allowed: .pdf, .jpg or .png


Stop for a Scoop in Seven Dials
Nothing better than a day out in Seven Dials with a stop for tasty ice-cream. Scoop, a small Italian gelato and dessert shop sells some of the best ice cream in London, that’s my personal opinion but also one shared with Time Out magazine who rated it 5 stars!
The orange-fronted cafe is on Shorts Gardens so just nearby to all the shops and bars around the Seven Dials area, perfect for a quick drop-in. And I do seem to find myself dropping in here with friends often, mainly for their gorgeous Amarena gelato (a creamy gelato mixed with a syrupy cherry coulis and crushed sweet cherries. It’s amazing, if you see Amarena anywhere you have got to try it!) Though I’m a big fan of their dulce de leche too.
I’ve also recently learnt that Scoop is now available on Deliveroo so you can get tasty gelato sent direct to your home or office, or maybe the park for a picnic? It would certainly make for a more interesting delivery if you’re hosting a lunch meeting than boring soggy sandwiches.
Scoop also sells a range of yummy looking crepe dishes, cakes, coffees and more. Though I must admit I’ve never been able to tear myself away from the ice cream to try any of their other desserts, their coffee is really delicious and much better than some of the highstreet chains nearby. So it’s worth popping in for a quick coffee too.
There is sometimes a queue at the front of the shop on particularly busy days but don’t let it put you off, it’s still well worth waiting – the ice cream will taste even sweeter.


Description
1 GENERAL
• The participants can only use English as well as Hindi in their content. No other language is
allowed.
• If the time limit is exceeded, only the part of the content that was served within the time
allotted shall be considered.
• The decision of the judges shall be final and binding. No further requests shall be
entertained.
• Only solo and duet performances are allowed.
• Use of obscenity/profanity (at the discretion of the judges) of any kind is not allowed.
• The performer shall be held responsible for any kind of misconduct at the location of the
event.
• Judging Criteria: Content, Delivery, Gestures, Stage Presence, Audience Engagement and
Overall Impact.
• Use of props is allowed, brought in by the participants themselves. The organisers hold the
discretion of allowing it on stage.
• Genre: Poetry, Slam, Storytelling, Stand-Up, Music (Vocal and Instrumental), Ghazhals and
Shayaris.
2 FIRST ROUND
2.1 COLLEGE PRELIMS
• The participants have to register themselves with the Campus In-charge for the event.
• The participants have to perform on the date and venue provided by their campus in-charge.
• The performance will be video recorded, please make sure the sound is clear.
• Use of any kind of special effects is STRICTLY prohibited and will lead to direct
disqualification.
• Time Limit: 2-2.5 minute.
2.2 ONLINE ROUND
• You have to submit a video/audio of you performing one of your pieces, the video/audio
maybe even recorded with mobile. Please make sure that the sound is clear.
• Use of any kind of special effects is STRICTLY prohibited and will lead to direct
disqualification.
• Time Limit: 2-2.5 minutes.
• The selected performers shall be informed the same via email.


Mini-Project 4
Snake
Nice job. Very simply done. The scope is again a little bit too narrow. Please make sure you are scoping these appropriately by running your idea by a ninja. For example, for students at your level, we expect at least a couple more features implemented in the game - snake tail, music, multiple "apples", bad "apples", etc.
Also please adhere to standard organization of Python code. This involves wrapping most things in functions besides constants and using a name == main conditional block. I've mentioned this to Jason before. These are all included in style points.
"""Softdes SP2015 Project4, game design: snake"""
"""Author: Hieu Nguyen and Ziyi Lan(Jason)"""
import pygame
import time
import random
pygame.init()
white=(255,255,255)
black=(0,0,0)
green=(170,249,186)
red=(255,0,0)
font=pygame.font.SysFont(None, 60)
clock=pygame.time.Clock()
FPS=20
class Snakehead():
def __init__(self, x, y):
self.x = x
self.y = y
self.vel_x = 10
self.vel_y = 0
def update(self):
self.x += self.vel_x
self.y += self.vel_y
class Display():
def __init__(self,xspan,yspan,caption):
self.xspan=xspan
self.yspan=yspan
self.caption=caption
class Apple():
def __init__(self,xspan,yspan):
self.x=round(random.randrange(0,xspan-10)/10.0)*10
self.y=round(random.randrange(0,yspan-10)/10.0)*10
def display_text(msg,color):
text=font.render(msg,True,color)
return background.blit(text,[300,200])
snakehead=Snakehead(400,300)
gamedefalt=Display(800,600,"Sneaky Snake")
apple=Apple(780,580)
background= pygame.display.set_mode((gamedefalt.xspan,gamedefalt.yspan))
pygame.display.set_caption(gamedefalt.caption)
background can and should be a display object which includes your actual Display class
gameexit= False
while not gameexit:
for event in pygame.event.get():
if event.type==pygame.QUIT:
gameexit= True
if pygame.key.get_focused():
if pygame.key.get_pressed()[pygame.K_a]:
snakehead.vel_x=-10
snakehead.vel_y=0
snakehead.update()
elif pygame.key.get_pressed()[pygame.K_d]:
snakehead.vel_x=10
snakehead.vel_y=0
snakehead.update()
elif pygame.key.get_pressed()[pygame.K_w]:
snakehead.vel_x=0
snakehead.vel_y=-10
snakehead.update()
elif pygame.key.get_pressed()[pygame.K_s]:
snakehead.vel_x=0
snakehead.vel_y=10
snakehead.update()
This can be better refactored into a method of Snake. Also, please don't hardcode the velocity. This can be a variable.
if snakehead.x<=20 or snakehead.x>=770 or snakehead.y<=20 or snakehead.y>=570:
gameexit= True
background.fill(green) #Background color of the game.
'''Drawing the border of the ground where the snake will be moving'''
background.fill(black,rect=[0,10,800,10])
background.fill(black,rect=[0,580,800,10])
background.fill(black,rect=[10,0,10,600])
background.fill(black,rect=[780,0,10,600])
pygame.draw.rect(background,red,[apple.x,apple.y,10,10])
pygame.draw.rect(background,black,[snakehead.x,snakehead.y,10,10])
snakehead.update()
pygame.display.update()
clock.tick(FPS)
if snakehead.x==apple.x and snakehead.y==apple.y:
apple.x=round(random.randrange(20,680-10)/10.0)*10
apple.y=round(random.randrange(20,480-10)/10.0)*10
display_text("GAME OVER",red)
pygame.display.update()
time.sleep(2)
pygame.quit()
quit()


| Top |
| GtkIconSize | icon-size | Read / Write |
| gboolean | icon-size-set | Read / Write |
| GtkToolbarStyle | toolbar-style | Read / Write |
GtkToolPalette implements AtkImplementorIface, GtkBuildable, GtkOrientable and GtkScrollable.
A GtkToolPalette allows you to add GtkToolItems to a palette-like container with different categories and drag and drop support.
A GtkToolPalette is created with a call to gtk_tool_palette_new()
.
GtkToolItems cannot be added directly to a GtkToolPalette -
instead they are added to a GtkToolItemGroup which can than be added
to a GtkToolPalette. To add a GtkToolItemGroup to a GtkToolPalette,
use gtk_container_add()
.
1 2 3 4 5 6 7 8 9 10 |
GtkWidget *palette, *group; GtkToolItem *item; palette = gtk_tool_palette_new (); group = gtk_tool_item_group_new (_("Test Category")); gtk_container_add (GTK_CONTAINER (palette), group); item = gtk_tool_button_new_new (NULL, _("_Open")); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "document-open"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); |
The easiest way to use drag and drop with GtkToolPalette is to call
gtk_tool_palette_add_drag_dest()
with the desired drag source palette
and the desired drag target widget
. Then gtk_tool_palette_get_drag_item()
can be used to get the dragged item in the “drag-data-received”
signal handler of the drag target.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
static void passive_canvas_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection, guint info, guint time, gpointer data) { GtkWidget *palette; GtkWidget *item; // Get the dragged item palette = gtk_widget_get_ancestor (gtk_drag_get_source_widget (context), GTK_TYPE_TOOL_PALETTE); if (palette != NULL) item = gtk_tool_palette_get_drag_item (GTK_TOOL_PALETTE (palette), selection); // Do something with item } GtkWidget *target, palette; palette = gtk_tool_palette_new (); target = gtk_drawing_area_new (); g_signal_connect (G_OBJECT (target), "drag-data-received", G_CALLBACK (passive_canvas_drag_data_received), NULL); gtk_tool_palette_add_drag_dest (GTK_TOOL_PALETTE (palette), target, GTK_DEST_DEFAULT_ALL, GTK_TOOL_PALETTE_DRAG_ITEMS, GDK_ACTION_COPY); |
GtkWidget *
gtk_tool_palette_new (void
);
Creates a new tool palette.
Since: 2.20
gboolean gtk_tool_palette_get_exclusive (GtkToolPalette *palette
,GtkToolItemGroup *group
);
Gets whether group
is exclusive or not.
See gtk_tool_palette_set_exclusive()
.
Since: 2.20
void gtk_tool_palette_set_exclusive (GtkToolPalette *palette
,GtkToolItemGroup *group
,gboolean exclusive
);
Sets whether the group should be exclusive or not. If an exclusive group is expanded all other groups are collapsed.
palette |
||
group |
a GtkToolItemGroup which is a child of palette |
|
exclusive |
whether the group should be exclusive or not |
Since: 2.20
gboolean gtk_tool_palette_get_expand (GtkToolPalette *palette
,GtkToolItemGroup *group
);
Gets whether group should be given extra space.
See gtk_tool_palette_set_expand()
.
Since: 2.20
void gtk_tool_palette_set_expand (GtkToolPalette *palette
,GtkToolItemGroup *group
,gboolean expand
);
Sets whether the group should be given extra space.
palette |
||
group |
a GtkToolItemGroup which is a child of palette |
|
expand |
whether the group should be given extra space |
Since: 2.20
gint gtk_tool_palette_get_group_position (GtkToolPalette *palette
,GtkToolItemGroup *group
);
Gets the position of group
in palette
as index.
See gtk_tool_palette_set_group_position()
.
Since: 2.20
void gtk_tool_palette_set_group_position (GtkToolPalette *palette
,GtkToolItemGroup *group
,gint position
);
Sets the position of the group as an index of the tool palette. If position is 0 the group will become the first child, if position is -1 it will become the last child.
palette |
||
group |
a GtkToolItemGroup which is a child of palette |
|
position |
a new index for group |
Since: 2.20
GtkIconSize
gtk_tool_palette_get_icon_size (GtkToolPalette *palette
);
Gets the size of icons in the tool palette.
See gtk_tool_palette_set_icon_size()
.
Since: 2.20
void gtk_tool_palette_set_icon_size (GtkToolPalette *palette
,GtkIconSize icon_size
);
Sets the size of icons in the tool palette.
Since: 2.20
void
gtk_tool_palette_unset_icon_size (GtkToolPalette *palette
);
Unsets the tool palette icon size set with gtk_tool_palette_set_icon_size()
,
so that user preferences will be used to determine the icon size.
Since: 2.20
GtkToolbarStyle
gtk_tool_palette_get_style (GtkToolPalette *palette
);
Gets the style (icons, text or both) of items in the tool palette.
Since: 2.20
void gtk_tool_palette_set_style (GtkToolPalette *palette
,GtkToolbarStyle style
);
Sets the style (text, icons or both) of items in the tool palette.
Since: 2.20
void
gtk_tool_palette_unset_style (GtkToolPalette *palette
);
Unsets a toolbar style set with gtk_tool_palette_set_style()
,
so that user preferences will be used to determine the toolbar style.
Since: 2.20
void gtk_tool_palette_add_drag_dest (GtkToolPalette *palette
,GtkWidget *widget
,GtkDestDefaults flags
,GtkToolPaletteDragTargets targets
,GdkDragAction actions
);
Sets palette
as drag source (see gtk_tool_palette_set_drag_source()
)
and sets widget
as a drag destination for drags from palette
.
See gtk_drag_dest_set()
.
palette |
||
widget |
a GtkWidget which should be a drag destination for |
|
flags |
the flags that specify what actions GTK+ should take for drops on that widget |
|
targets |
the GtkToolPaletteDragTargets which the widget should support |
|
actions |
the GdkDragActions which the widget should suppport |
Since: 2.20
GtkWidget * gtk_tool_palette_get_drag_item (GtkToolPalette *palette
,const GtkSelectionData *selection
);
Get the dragged item from the selection. This could be a GtkToolItem or a GtkToolItemGroup.

Since: 2.20
const GtkTargetEntry *
gtk_tool_palette_get_drag_target_item (void
);
Gets the target entry for a dragged GtkToolItem.
Since: 2.20
GtkToolItemGroup * gtk_tool_palette_get_drop_group (GtkToolPalette *palette
,gint x
,gint y
);
Gets the group at position (x, y).
the GtkToolItemGroup at position
or NULL
if there is no such group.
[nullable][transfer none]
Since: 2.20
GtkToolItem * gtk_tool_palette_get_drop_item (GtkToolPalette *palette
,gint x
,gint y
);
Gets the item at position (x, y).
See gtk_tool_palette_get_drop_group()
.
Since: 2.20
void gtk_tool_palette_set_drag_source (GtkToolPalette *palette
,GtkToolPaletteDragTargets targets
);
Sets the tool palette as a drag source.
Enables all groups and items in the tool palette as drag sources
on button 1 and button 3 press with copy and move actions.
See gtk_drag_source_set()
.
Since: 2.20
GtkAdjustment *
gtk_tool_palette_get_hadjustment (GtkToolPalette *palette
);
gtk_tool_palette_get_hadjustment
has been deprecated since version 3.0 and should not be used in newly-written code.
Gets the horizontal adjustment of the tool palette.
Since: 2.20
GtkAdjustment *
gtk_tool_palette_get_vadjustment (GtkToolPalette *palette
);
gtk_tool_palette_get_vadjustment
has been deprecated since version 3.0 and should not be used in newly-written code.
Gets the vertical adjustment of the tool palette.
Since: 2.20
struct GtkToolPalette;
This should not be accessed directly. Use the accessor functions below.
“icon-size”
property“icon-size” GtkIconSize
The size of the icons in a tool palette. When this property is set, it overrides the default setting.
This should only be used for special-purpose tool palettes, normal application tool palettes should respect the user preferences for the size of icons.
Flags: Read / Write
Default value: GTK_ICON_SIZE_SMALL_TOOLBAR
Since: 2.20
“icon-size-set”
property“icon-size-set” gboolean
Is TRUE
if the “icon-size” property has been set.
Flags: Read / Write
Default value: FALSE
Since: 2.20
“toolbar-style”
property“toolbar-style” GtkToolbarStyle
The style of items in the tool palette.
Flags: Read / Write
Default value: GTK_TOOLBAR_ICONS
Since: 2.20
“exclusive”
child property“exclusive” gboolean
Whether the item group should be the only one that is expanded at a given time.
Flags: Read / Write
Default value: FALSE
Since: 2.20
“expand”
child property“expand” gboolean
Whether the item group should receive extra space when the palette grows. at a given time.
Flags: Read / Write
Default value: FALSE
Since: 2.20


The Singleton Pattern is used to make sure only one object of a particular class is ever created. This can be useful when when exactly one object is needed to coordinate actions across a system; perhaps for efficiency where creating lots of identical objects would be wasteful, perhaps because a particular algorithm needing a single point of control is required or perhaps when an object is used to interact with a non-shareable resource.
Weaknesses of the Singleton pattern include:
-
It can reduce reuse. For instance, there are issues if you want to use inheritance with Singletons. If
SingletonB
extendsSingletonA
, should there be exactly (at most) one instance of each or should the creation of an object from one of the classes prohibit creation from the other. Also, if you decide both classes can have an instance, how do you override thegetInstance()
method which is static? -
It is also hard to test singletons in general because of the static methods but Groovy can support that if required.
1. Example: The Classic Java Singleton
Suppose we wish to create a class for collecting votes. Because getting the right number of votes may be very important, we decide to use the singleton pattern. There will only ever be one VoteCollector
object, so it makes it easier for us to reason about that objects creation and use.
class VoteCollector {
def votes = 0
private static final INSTANCE = new VoteCollector()
static getInstance() { return INSTANCE }
private VoteCollector() { }
def display() { println "Collector:${hashCode()}, Votes:$votes" }
}
Some points of interest about this code:
-
it has a private constructor, so no
VoteCollector
objects can be created in our system (except for theINSTANCE
we create) -
the
INSTANCE
is also private, so it can’t be changed once set -
we haven’t made the updating of votes thread-safe at this point (it doesn’t add to this example)
-
the vote collector instance is not lazily created (if we never reference the class, the instance won’t be created; however, as soon as we reference the class, the instance will be created even if not needed initially)
We can use this singleton class in some script code as follows:
def collector = VoteCollector.instance
collector.display()
collector.votes++
collector = null
Thread.start{
def collector2 = VoteCollector.instance
collector2.display()
collector2.votes++
collector2 = null
}.join()
def collector3 = VoteCollector.instance
collector3.display()
Here we used the instance 3 times. The second usage was even in a different thread (but don’t try this in a scenario with a new class loader).
Running this script yields (your hashcode value will vary):
Collector:15959960, Votes:0 Collector:15959960, Votes:1 Collector:15959960, Votes:2
Variations to this pattern:
-
To support lazy-loading and multi-threading, we could just use the
synchronized
keyword with thegetInstance()
method. This has a performance hit but will work. -
We can consider variations involving double-checked locking and the
volatile
keyword (for Java 5 and above), but see the limitations of this approach here.
2. Example: Singleton via MetaProgramming
Groovy’s meta-programming capabilities allow concepts like the singleton pattern to be enacted in a far more fundamental way. This example illustrates a simple way to use Groovy’s meta-programming capabilities to achieve the singleton pattern but not necessarily the most efficient way.
Suppose we want to keep track of the total number of calculations that a calculator performs. One way to do that is to use a singleton for the calculator class and keep a variable in the class with the count.
First we define some base classes. A Calculator
class which performs calculations and records how many such calculations it performs and a Client
class which acts as a facade to the calculator.
class Calculator {
private total = 0
def add(a, b) { total++; a + b }
def getTotalCalculations() { 'Total Calculations: ' + total }
String toString() { 'Calc: ' + hashCode() }
}
class Client {
def calc = new Calculator()
def executeCalc(a, b) { calc.add(a, b) }
String toString() { 'Client: ' + hashCode() }
}
Now we can define and register a MetaClass which intercepts all attempts to create a Calculator
object and always provides a pre-created instance instead. We also register this MetaClass with the Groovy system:
class CalculatorMetaClass extends MetaClassImpl {
private static final INSTANCE = new Calculator()
CalculatorMetaClass() { super(Calculator) }
def invokeConstructor(Object[] arguments) { return INSTANCE }
}
def registry = GroovySystem.metaClassRegistry
registry.setMetaClass(Calculator, new CalculatorMetaClass())
Now we use instances of our Client
class from within a script. The client class will attempt to create new instances of the calculator but will always get the singleton.
def client = new Client()
assert 3 == client.executeCalc(1, 2)
println "$client, $client.calc, $client.calc.totalCalculations"
client = new Client()
assert 4 == client.executeCalc(2, 2)
println "$client, $client.calc, $client.calc.totalCalculations"
Here is the result of running this script (your hashcode values may vary):
Client: 7306473, Calc: 24230857, Total Calculations: 1 Client: 31436753, Calc: 24230857, Total Calculations: 2
3. Guice Example
We can also implement the Singleton Pattern using Guice.
Consider the Calculator example again.
Guice is a Java-oriented framework that supports Interface-Oriented design. Hence we create a Calculator
interface first. We can then create our CalculatorImpl
implementation and a Client
object which our script will interact with. The Client
class isn’t strictly needed for this example but allows us to show that non-singleton instances are the default. Here is the code:
@Grapes([@Grab('aopalliance:aopalliance:1.0'), @Grab('com.google.code.guice:guice:1.0')])
import com.google.inject.*
interface Calculator {
def add(a, b)
}
class CalculatorImpl implements Calculator {
private total = 0
def add(a, b) { total++; a + b }
def getTotalCalculations() { 'Total Calculations: ' + total }
String toString() { 'Calc: ' + hashCode() }
}
class Client {
@Inject Calculator calc
def executeCalc(a, b) { calc.add(a, b) }
String toString() { 'Client: ' + hashCode() }
}
def injector = Guice.createInjector (
[configure: { binding ->
binding.bind(Calculator)
.to(CalculatorImpl)
.asEagerSingleton() } ] as Module
)
def client = injector.getInstance(Client)
assert 3 == client.executeCalc(1, 2)
println "$client, $client.calc, $client.calc.totalCalculations"
client = injector.getInstance(Client)
assert 4 == client.executeCalc(2, 2)
println "$client, $client.calc, $client.calc.totalCalculations"
Note the @Inject
annotation in the Client
class. We can always tell right in the source code which fields will be injected.
In this example we chose to use an explicit binding. All of our dependencies (ok, only one in this example at the moment) are configured in the binding. The Guide injector knows about the binding and injects the dependencies as required when we create objects. For the singleton pattern to hold, you must always use Guice to create your instances. Nothing shown so far would stop you creating another instance of the calculator manually using new CalculatorImpl() which would of course violate the desired singleton behaviour.
In other scenarios (though probably not in large systems), we could choose to express dependencies using annotations, such as the following example shows:
@Grapes([@Grab('aopalliance:aopalliance:1.0'), @Grab('com.google.code.guice:guice:1.0')])
import com.google.inject.*
@ImplementedBy(CalculatorImpl)
interface Calculator {
// as before ...
}
@Singleton
class CalculatorImpl implements Calculator {
// as before ...
}
class Client {
// as before ...
}
def injector = Guice.createInjector()
// ...
Note the @Singleton
annotation on the CalculatorImpl
class and the @ImplementedBy
annotation in the Calculator
interface.
When run, the above example (using either approach) yields (your hashcode values will vary):
Client: 8897128, Calc: 17431955, Total Calculations: 1 Client: 21145613, Calc: 17431955, Total Calculations: 2
You can see that we obtained a new client object whenever we asked for an instance but it was injected with the same calculator object.
4. Spring Example
We can do the Calculator example again using Spring as follows:
@Grapes([@Grab('org.springframework:spring-core:3.2.2.RELEASE'), @Grab('org.springframework:spring-beans:3.2.2.RELEASE')])
import org.springframework.beans.factory.support.*
interface Calculator {
def add(a, b)
}
class CalculatorImpl implements Calculator {
private total = 0
def add(a, b) { total++; a + b }
def getTotalCalculations() { 'Total Calculations: ' + total }
String toString() { 'Calc: ' + hashCode() }
}
class Client {
Client(Calculator calc) { this.calc = calc }
def calc
def executeCalc(a, b) { calc.add(a, b) }
String toString() { 'Client: ' + hashCode() }
}
// Here we 'wire' up our dependencies through the API. Alternatively,
// we could use XML-based configuration or the Grails Bean Builder DSL.
def factory = new DefaultListableBeanFactory()
factory.registerBeanDefinition('calc', new RootBeanDefinition(CalculatorImpl))
def beanDef = new RootBeanDefinition(Client, false)
beanDef.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_AUTODETECT)
factory.registerBeanDefinition('client', beanDef)
def client = factory.getBean('client')
assert 3 == client.executeCalc(1, 2)
println "$client, $client.calc, $client.calc.totalCalculations"
client = factory.getBean('client')
assert 4 == client.executeCalc(2, 2)
println "$client, $client.calc, $client.calc.totalCalculations"
And here is the result (your hashcode values will vary):
Client: 29418586, Calc: 10580099, Total Calculations: 1 Client: 14800362, Calc: 10580099, Total Calculations: 2


|
|
static const char * | LATITUDE = "latitude" |
| | latitude netcdf variable name
|
| |
|
static const char * | LONGITUDE = "longitude" |
| | longitude netcdf variable name
|
| |
|
static const char * | ELEVATION = "elevation" |
| | elevation netcdf variable name
|
| |
|
static const char * | SEG_NAME = "seg_name" |
| | road segment name netcdf variable name
|
| |
|
static const char * | SEG_ID = "seg_id" |
| | road segment id netcdf variable name
|
| |
|
static const char * | RWFS_ID = "rwfs_id" |
| | corresponding road weather forecast system id netcdf variable name
|
| |
|
static const char * | AUX_ID = "aux_id" |
| | corresponding auxillary road weather forecast system id netcdf variable name
|
| |
|
static const char * | ROAD_TYPE = "road_type" |
| | road type netcdf variable name
|
| |
|
static const char * | REC_NUM = "point_num" |
| | number of records netcdf dimension name
|
| |
|
static const char * | SEG_NAME_LEN = "seg_name_len" |
| | road segment name length netcdf dimension name
|
| |
|
static const char * | RWFS_ID_LEN = "rwfs_id_len" |
| | rwfs id length netcdf dimension name
|
| |
|
static const char * | AUX_ID_LEN = "aux_id_len" |
| | aux id length netcdf dimension name
|
| |
|
static const char * | POINT_TYPE = "point_type" |
| | point type netcdf variable name
|
| |
vdt road segment file reader class
Class for reading road segment netcdf files


Trump's EU Ambassador Details 'Quid Pro Quo' Demand On Ukraine
by APThe U.S. Ambassador to the European Union testified that President Donald Trump demanded that Ukrainian President Volodymyr Zelenskiy announce investigations into his political rival before agreeing to a White House meeting. Gordon Sondland told a congressional impeachment hearing on November 20 that investigations into a Ukrainian gas company where the son of Democratic presidential candidate Joe Biden's son worked, Burisma Holdings, was a "quid pro quo" in exchange for any potential White House meeting between Trump and Zelenskiy. He said the demands were conveyed by Trump's personal lawyer, Rudy Guiliani, on "the president's orders." Sondland said he subsequently understood that the demand was also holding up hundreds of millions of dollars in military equipment for Ukraine.


This is a basic HTML webpage I worked on while first practicing how to write HTML here at Epicodus. The webpage displays greetings in different languages.
This is also a basic HTML webpage made by me while practicing HTML here at Epicodus.The webpage shows a text of goodbyes written in several different languages.
This webpage was created by me last year using HTML & CSS. This webpage links to 3 other pages and gives more information about a hypothetical candle shop I own. page links are on the Left side they will not apear visible until you hover over it with a mouse. The homepage link is not functioning well but the other links should take you to a page.
My name is Zeinab Jama and I am a junior at Portland State University. I'm working towards a Bachelors of Science in Business Technology and Analytics.
I originally grew interested in the field of software development after a friend had suggested I take a summer Unix/linux class. That summer I made the decision to switch my major from Biology to Comuputer Science.
I enjoyed programming a lot but after a year of CS I realized the PSU CS program was extremely harsh and it was severly affecting my mental health. I switched majors again and this time I chose Business Tech and Analytics.
I enjoy my major and I've learned enough programming to play around with during my free time. I would love to learn more about programming through this Epicodus program and Eventually get a job position in the tech industry.


Toggle navigation
Back to all projects
Toggle nav
GDP per Capita and Life Expectacy
Interact with the chart by clicking the different buttons
Currently selected:
Nothing
GDP:
Nothing
Life Expectancy:
Nothing


A4: Self-reflection helps you keep doing the good things and get rid of the bad things. That's blogging for me.#CodeNewbie https://t.co/iCmLVkvBuT
— Mike Cornish (@MikeWCornish) October 13, 2016
I owe most of my ability as a web developer to bloggers who share their knowledge and experiences. You might wonder why someone would offer valuable information freely, but I’ve found that everyone benefits from sharing information, including the person doing the sharing.
In order to articulate a process or experience, you have to review it in your mind. You have to remember, organize, and filter it so that it makes sense and is useful to other people. That’s why I want to start writing about the things that I build. Yes, I absolutely want other developers to benefit from my experiences, but I’ll get a lot out of it as well.
This is the first in a series of “appendices” which will detail the lessons I learn while working on different projects. I’ve already written a couple of these types of blog posts (here and here), but now I’m ready to make it official. Let’s get this started!
Topics
Overview
I’m going to be detailing the lessons I learned while completing 5 API projects from the Free Code Camp curriculum. These included building microservices for converting timestamps to dates, parsing request headers, shortening URLs, returning Google image search results, and returning metadata from an uploaded file. Most of the end results are fairly useless, but the process of building them was a fantastic learning experience.
The basic process for each project was the same: Set up with npm/Yarn, create endpoints with Express, manage data with Mongo (if necessary), and deploy to Heroku. After determining that basic process, all of the projects became much easier; I even completed a couple of them on the same day. It took some time to get to that point, though. Here are some reasons why.
You can view the final products in these repositories:
Yarn
While I was working on these projects, Facebook announced the release of Yarn, a major competitor for npm’s spot as king (queen?) of package management. I won’t pretend to be an expert on the subject, but I do appreciate the waves the announcement made in the community. My Twitter feed was absolutely tangled with Yarn on release day. It’s the first time I’ve seen something affect so much of the web development community in such a dramatic way.
For someone like me, who never got deep into npm, it’s easy to equate Yarn with a new syntax for npm; the syntax is the biggest change I’ve noticed so far.
“Oh, so now it’s add instead of install. That’s confus—I mean, that’s nice.”
It’s obvious that Yarn is much more than a new syntax, but I won’t pretend to be as affected as more advanced developers. Even after reading Facebook’s explanation of why Yarn exists, I can still only muster so much excitement. All the same, I look forward to seeing how the community adapts and whether npm responds.
Yarn Resources
ExpressJS
I used Express years ago, back when I was first exposed to web apps. Back then, I only used it for routing; I didn’t even know what APIs were. Now, after building several APIs with Express, I’m super interested in what kind of tasks I can simplify with APIs.
The ExpressWorks lessons were all I needed to get up and running with Express. It was tempting to skip over some of the lessons that seemed like I could just read and say, “Yeah, I understand that,” but I would highly advise actually taking the time to complete each lesson. There are some speedbumps I could have circumvented if I’d paid closer attention to ExpressWorks.
Speaking of speedbumps: I encountered an annoying issue where I would receive a request from the /favicon.ico route every time I refreshed my page. A Google search revealed that this is a somewhat common issue with Express that can be remedied with a one-liner:
app.use(‘/favicon.ico, res => res.sendStatus(200));
Even though Express is an amazing tool that is used all over the place, I don’t have much else to say. It’s satisfyingly straightforward (at least in terms of building APIs) and you can learn everything you need by completing ExpressWorks, then referencing Express’s documentation when you need it.
ExpressJS Resources
MongoDB
I’ve used Mongo quite a bit for web app development. However, the bulk of my experience comes from using it with MeteorJS, where it is somewhat abstracted. Setting up a project from scratch to use Mongo with Express was a very different experience from using it with Meteor.
This tutorial was very helpful in getting me off the ground. For me, the most complicated part was figuring out the best way to connect to Mongo in relation to calling my API functions. Ultimately, I connected in index.js and set my endpoints in the callback function, passing in a database object to my API functions:
MongoClient.connect(MONGO_URL, (err, db) => {
if (err) {
console.log("Unable to connect to Mongo.");
process.exit(1);
} else {
app.get('/foo', fooFunc.bind(null, db));
app.get('/bar', barFunc.bind(null, db));
app.listen(app.get('port'), () => {
console.log('Node app is running on port', app.get('port'));
});
}
});
After that, the next big problem was deployment. I used mLab to host my database. Once you create a new database in mLab, you are provided with a URL through which to connect to your database. Simple, right? Not quite. The URL includes a username and password, which you’ll obviously want to keep secret. So, you need your code to use a URL without actually containing the URL. The solution? Environment variables:
# On Mac/Linux
export MONGOLAB_URI=“mongodb://username:password@foo123.mlab.com:1234/foobardb”
This guide covers everything I needed to know, but I missed one detail: When you set an environment variable in a terminal, you have to use the same terminal window to start your server and use the variable. Since I’m generally using at least two different terminal instances at any given time, this was a huge pain for me. Twice, I sat pulling out my hair as I tried to figure out why index.js couldn’t find my MONGOLAB_URI variable. The devil’s in the details.
With my environment variable working locally, all I had to do was push to Heroku and set my environment variable there. This gave me about an hour of trouble because I set the variable to MONGLAB_URL instead of MONGOLAB_URI. Those details—they’ll cost you a lot of time if you’re not careful.
MongoDB Resources
Creating a REST API using Mongo
Heroku
A few years ago, I used Heroku to deploy my first ever web app. I don’t remember much about that experience, but I do remember feeling slight trepidation at the idea of using Heroku again. Maybe I had difficulties using the CLI, or maybe I just associate Heroku with the frustrations of building my first app. In any case, I was surprised to find that Heroku was a joy to work with on these API projects. I highly recommend it for deploying node apps.
I set up my projects to deploy automatically after I pushed to Github, which made the process super simple. It’s all intuitive, fast, and, best of all, free (kind of).
I wish I could share some Heroku pro tips, but I didn’t have to mess with it too much. Be sure to check your logs if you run into any difficulties. Beyond that, you should be able to figure everything out through the official documentation.


@* * Copyright 2017 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @(fieldName: String, questionText:String, content:Html, helpText:Option[String] = None)(implicit messages: Messages)


Permission-oriented API
The philosophy underlying this approach is that browsers should be responsible for ensuring user awareness and permission for cross-site interactions that create tracking risk, and outside of that Relying Parties and Identity Providers should have maximal control of the user experience.
Permission flow properties
Preventing IDP tracking
The intention is to prevent IDP tracking by requiring a user gesture on the RP's page before the API can be invoked, and by displaying an appropriate dialog to the user before any identifying user information can be passed from the RP to the IDP. Both of these restrictions can be relaxed if the user agent knows that the user has successfully completed a sign-in with this RP and IDP before.
This flow contains an implicit assumption that 'global' information (including the RP’s origin) can be shared with the IDP based on a user gesture on the RP page. Here 'global' means information that cannot be used to identify a specific user.
Preventing RP tracking
In this flow the user agent attempts to mitigate RP tracking by displaying a warning if the IDP is going to provide correlatable user identifiers to the RP. The warning is not shown if all identifiers in the profile are verifiably directed.
User flow illustration
Benefits
- This should work well across a variety of protocols and use cases without user agents having to accommodate them specifically.
- For those reasons, IDPs and RPs can have control over sign-in experiences to improve user experiences as they see fit.
- In cases where browser state is missing, the only experience downgrade is to have to agree to a cross-origin data sharing permission prompt again.
Challenges
- The user agent cannot differentiate cases where the IDP gave users the option to use directed identifiers but the user chose not to use them from cases where the user did not have the option to choose directed identifiers at all. In both cases, the data shared back via the browser isn’t verifiably directed and so the browser would require a RP tracking consent step for both.
- From a UX perspective and ecosystem incentives perspective, we may want to differentiate the experience for each case.
- This downside is not shared by pure policy-based approaches or approaches with browser mediation.
- Revealing the RP to the IDP becomes a problem if, in the future, privacy restrictions are added on things like referrer on full page navigation.
- If permission prompts are too frequent, users may become trained to click through them without thinking (viz. 'warning fatigue').
Mocks
Other design options
Below are possible variations on the permission-oriented API approach that can change the trade-offs.
Rely on policy-based enforcement instead of directed identifiers
This flow would change minimally if the user agent could accept an IDP's assertion on whether identifiers are directed without them conforming to a verifiable format (i.e. policy-based enforcement). This has the benefit of avoiding the compatibility problems with verifiably directed identifiers but at the drawback of increasing tracking risk from a bad-faith IDP.
There is always going to be some level of policy-based requirements, since a bad-faith IDP could collude with an RP outside of the defined flows to unmask directed identifiers, but verifiably directed identifiers might make it harder to do that at scale.
IDP tracking gated on explicit user consent
Another variation is to add a second 'consent moment' where the user grants permission up front for the RP to send a request to the IDP, and at that point IDP tracking becomes possible. The benefit of this approach is that it might be more resilient to future privacy enhancements that make it hard for an RP to initiate a flow where the IDP can learn the RP's origin (or in OIDC terms, client ID). The drawback is that the prompt needs to be shown before the user is shown IDP UI, necessitating two user agent prompts in some cases, since the RP tracking warning for non-directed identifiers has to come after the IDP UI.
If this permission prompt is added, there is a further question of whether it should apply to an IDP universally (suggesting that the user trusts a given IDP to learn about any sites that offer federated sign-in) or whether the prompt should appear for every IDP+RP pair. The latter case would result in users only rarely seeing such a prompt: only once per IDP, as long as the user agent is able to persist that permission. The downside is that it increases user risk if a tracking site can convince the user to grant the permission.


Location: {{team?.location}}
Coach: {{team?.coachName}}
Managed on Statsketball by: {{userAssociatedWithTeam?.name}}
Players:
Games:


Demo A : .alert and .alert-[theme]. Add .alert-heading, if required, to add a heading to the alert. Add .alert-dismissable for dismissible alerts. Use data-dismiss="alert" to make a button close the alert component in which it exists (requires jQuery). Add .fade.show for animated show and dismiss.


Keyword Implements
Declares that a class implements the methods of the specified interface.
Syntax
Class Identifier [ Implements Interface ]
Declarations...
End [ Class ]
Description
The Implements keyword is used to declare that a class will provide the methods listed in a given interface.
Please see the Interfaces section of the monkey language reference for more information on interfaces.
See also
Class Interface
Language reference (Interfaces)
Example
An example of a simple interface, including use of the Implements keyword.
Interface Computer Method Boot () Method Process () Method Display () End Class PC Implements Computer Method Boot () Print "BIOS version 1.01. Performing ancient rituals..." End Method Process () Print "Calculating 1 + 1..." End Method Display () Print "The result of 1 + 1 equals 2!" End End Class C64 Implements Computer Method Boot () Print "**** COMMODORE 64 BASIC V2 **** | 64K RAM SYSTEM 38911 BASIC BYTES FREE" End Method Process () Print "Calculating missile position..." End Method Display () Print "Enemies exploding!" End End Function Main () Print "" Print "PC" Print "" Local ibm:Computer = New PC ibm.Boot ibm.Process ibm.Display Print "" Print "C64" Print "" Local commodore:Computer = New C64 commodore.Boot commodore.Process commodore.Display End


|
|
def | __init__ (self, FULL_URL=credentials.NEO4J_FULL_URL) |
| |
|
def | close (self) |
| |
| def | add_bot (self, data) |
| |
| def | add_user (self, data) |
| |
| def | add_relationship (self, data) |
| |
| def | check_bot_exists (self, id) |
| |
| def | check_user_exists (self, id) |
| |
| def | update_user (self, data) |
| |
| def | update_bot (self, data) |
| |
| def | delete_user (self, id) |
| |
| def | delete_bot (self, id) |
| |
| def | delete_relationship (self, data) |
| |
| def | search_bots (self, data={}) |
| |
| def | search_users (self, data={}) |
| |
| def | check_relationship_exists (self, data) |
| |
| def | get_following (self, data) |
| |
| def | get_followers (self, data) |
| |
| def | export_network (self, export_type="graphml") |
| |
◆ add_bot()
| def twitter.wrappers.neo4j_wrapper.Neo4jAPI.add_bot |
( |
|
self, |
|
|
|
data |
|
) |
| |
Method used to create a new bot
@param data: The params of the new bot we want to create. Should include an id, name and username
◆ add_relationship()
| def twitter.wrappers.neo4j_wrapper.Neo4jAPI.add_relationship |
( |
|
self, |
|
|
|
data |
|
) |
| |
Method used to create a new FOLLOWS relationship
@param data: The params of the new relationship we want to create. Should include a type_1, type_2, id_1, id_2
◆ add_user()
| def twitter.wrappers.neo4j_wrapper.Neo4jAPI.add_user |
( |
|
self, |
|
|
|
data |
|
) |
| |
Method used to create a new user
@param data: The params of the new bot we want to create. Should include an id, name and username
◆ check_bot_exists()
| def twitter.wrappers.neo4j_wrapper.Neo4jAPI.check_bot_exists |
( |
|
self, |
|
|
|
id |
|
) |
| |
Method used to check if there exists a bot with a given id
@param id: The id of the bot we want to check the existance of
◆ check_relationship_exists()
| def twitter.wrappers.neo4j_wrapper.Neo4jAPI.check_relationship_exists |
( |
|
self, |
|
|
|
data |
|
) |
| |
Method used to check whether a relationship exists between two IDs
@param data: The params of the entities involved in the relationshi+ we want to look for. Should include
a type_1, type_2, id_1, id_2
◆ check_user_exists()
| def twitter.wrappers.neo4j_wrapper.Neo4jAPI.check_user_exists |
( |
|
self, |
|
|
|
id |
|
) |
| |
Method used to check if there exists a user with a given id
@param id: The id of the user we want to check the existance of
◆ delete_bot()
| def twitter.wrappers.neo4j_wrapper.Neo4jAPI.delete_bot |
( |
|
self, |
|
|
|
id |
|
) |
| |
Method used to delete a given bot
@param id: The id of the bot we want to delete
◆ delete_relationship()
| def twitter.wrappers.neo4j_wrapper.Neo4jAPI.delete_relationship |
( |
|
self, |
|
|
|
data |
|
) |
| |
Method used to delete a given bot
@param data: The params of the new relationship we want to delete. Should include a type_1, type_2, id_1, id_2
◆ delete_user()
| def twitter.wrappers.neo4j_wrapper.Neo4jAPI.delete_user |
( |
|
self, |
|
|
|
id |
|
) |
| |
Method used to delete a given user
@param id: The id of the user we want to delete
◆ export_network()
| def twitter.wrappers.neo4j_wrapper.Neo4jAPI.export_network |
( |
|
self, |
|
|
|
export_type = "graphml" |
|
) |
| |
Method used to export the entire database
@param export_type: What type we want to export to. Graphml by default
◆ get_followers()
| def twitter.wrappers.neo4j_wrapper.Neo4jAPI.get_followers |
( |
|
self, |
|
|
|
data |
|
) |
| |
Method used to find all accounts following a given entity
@param data: The specification of who we want to get the followings of. Should include a id and type
◆ get_following()
| def twitter.wrappers.neo4j_wrapper.Neo4jAPI.get_following |
( |
|
self, |
|
|
|
data |
|
) |
| |
Method used to find all accounts a given entity is following
@param data: The specification of who we want to get the followings of. Should include a id and type
◆ search_bots()
| def twitter.wrappers.neo4j_wrapper.Neo4jAPI.search_bots |
( |
|
self, |
|
|
|
data = {} |
|
) |
| |
Method used to search for a given bot
@param data: The params of the bot we want to look for. By default we look for all bots
◆ search_users()
| def twitter.wrappers.neo4j_wrapper.Neo4jAPI.search_users |
( |
|
self, |
|
|
|
data = {} |
|
) |
| |
Method used to search for a given user
@param data: The params of the user we want to look for. By default we look for all users
◆ update_bot()
| def twitter.wrappers.neo4j_wrapper.Neo4jAPI.update_bot |
( |
|
self, |
|
|
|
data |
|
) |
| |
Method used to update a given bot
@param data: The params of the bot we want to update and the other update params. Should include an old_id
◆ update_user()
| def twitter.wrappers.neo4j_wrapper.Neo4jAPI.update_user |
( |
|
self, |
|
|
|
data |
|
) |
| |
Method used to update a given user
@param data: The id of the user we want to update and the other update params. Should include an old_id
The documentation for this class was generated from the following file:
- wrappers/neo4j_wrapper.py


color-accessible($color) |
Sets the color of all slider elements and automatically sets an accessible ink color with high contrast for
the value indicator pin |
highlight-color($color) |
Sets the color of the highlighted (aka "on") portion of the slider |
rail-color($color, $opacity) |
Sets the color (and optionally the opacity) of the rail |
rail-tick-mark-color($color) |
Sets the color of the tick marks on the rail |
thumb-color($color) |
Sets the color of the thumb (grab handle) |
focus-halo-color($color) |
Sets the color of the focus halo |
value-pin-fill-color-accessible($color) |
Sets the fill color of the value indicator pin and automatically sets an accessible ink color with high
contrast |
value-pin-fill-color($color) |
Sets the fill color of the value indicator pin |
value-pin-ink-color($color) |
Sets the ink color of the value indicator pin |


Useful subjects include:
- marketing and public relations
- digital and social media marketing
- internet design
- digital media and communication
- business management
Requirements:
To do a degree you'll usually need at least:
- 5 GCSEs at grades 4 (C) or above, including English language
- 2 A levels (any subjects)
Check with course providers for exact entry requirements. You might be able to use equivalent level qualifications to get onto a course.


{% extends 'base.html' %} {% load static %} {% block tags %} Tags generated Top links for the image you chose, Happy shopping! {% for link in links %} {{link}} {% endfor %} {% endblock tags %}
Top links for the image you chose, Happy shopping!


WITNESS LIST Appropriations Committee February 25, 1999-8:00A Budget On: Alspaugh, Delores (Texas Cosmetology Commission) Black, Penny (Texas Cosmetology Commission) Bordelon, Rod (Public Insurance Counsel) Conrad, Doretta (Texas State Board of Plumbing Examiners) Flowerday, Paula (Texas RAcing Commission) Ghiglieri, Catherine (Finance Commission) Joseph, William (Texas Cosmetology Commission) Martin, Rachelle (Texas Department of Licensing and Regulation) McAnally, Scott (Research and Oversight Council on Workers Compensation) Perkins, Larry (Texas Cosmetology Commission) Pettijohn, Leslie (Consumer Credit Commissioner) Pledger, Jim (Texas Savings and Loan Department) Taylor, Claire (Texas Cosmetology Commission)


In the abscence of access to regular highs one year, I began scouring the net for new highs. Khat had been on my list for some time - i had heard of it before, having been offered it by somali and yemeni cab drivers up working long shifts, and seen it chewed at festivals. But it was not until a few months ago my curiosity about the drug spurred me to go out an actively search for some.
It was not at all difficult to find. My local head shop did not stock it, so I got the tube into another part of London with a larger african community. My plan was to simply stroll into every shop staffed by somebody with vaguely somalian appearance and ask for it.
I thought this a bit haphazard at first, but by the third shop I was being shown to a flight of stairs and told 'Khat up there'. At the top of the stairs was a single, square room with several people sitting on crates of the stuff, chewing away and chatting animatedly. I introduced myself and explained I was looking for Khat. They invited me to try some and demonstrated how cat should be done, explaining to keep the wad in my mouth and not chew on the twigs. Interestingly, he also told me not to mix it with alcohol as I would not feel the full effect. I ignored this as a matter of necessity.
I bought 6 bundles of sticks for £2 each - each bundle wrapped in a palm leaf, tied with string and twisted at the bottom. I was surprised at how large the bundles were - they almost filled my rucksack. Although I had been told one bundle is enough for one person, to be chewed over several hours, it still seemed like a lot for your money.
I was visiting some friends that evening and as I had been moving about all week still had the khat with me when I arrived at the pub. It was about 9:00 when we began chewing. Three of us chewed one bundle each (still in the pub, and having had a couple of drinks each.) the discarded twigs piled up on the table and we did get some suspicious looks from the bar staff, though nothing was said.
We all had things to do the next morning and had planned to go home after closing time, but by 11:30, all of us suddenly realised we were completely and uttery wired, had been talking extremely fast and loud and everyone's pupils had dilated. It was only once I'd stopped talking and sat still that I noticed I was undergoing a serious buzz. i could feel shivers and tingling down my back, and had lots of energy, almost like after a few lines of charlie, but at the same time, felt completely relaxed and not at all jittery. No visuals, although the pub did seem somewhat brighter. Also, I was giggling a lot. Laughing fits are a key part of the khat experience.
We all decided to go on to a club, because none of us felt at all tired. By this point we had chewed a whole bundle each and drank about 4 pints. We did not chew any more in the club, but we did drink more. I was dancing at one point (this never happens without drugs).. and was talking a lot, mostly gibberish but the music was loud so I don't think anybody heard me. I couldn't sit down, and yet, it was in a totally different way to a speed 'can't sit down' feeling. Very hard to describe. Colours still more vivid, but vision sharp, considering the alcohol I'd consumed that night. Altogether a very nice feeling . . .worth the time and effort investment of chewing a whole bundle.
I should note here that we were munching the twigs whole, ignoring my somali friend's advice a second time. We were in a pub, and peeling them was just too messy. Besides, the leaves have a horrible texture that does not lend itself to being chewed very easily, and the twigs were infinitely more chewable. I've been told this can make you ill but none of us experienced any ill effects.
By 2:30, we were still very awake, if a bit drunk, but could feel the buzz begin to wear off and so decided to go back to a friend's house and chew some more.I chewed another bundle over an hour. while I was definitely alert and full of energy, there were no giggles or shivers, and certainly less movement. the feeling had subsided somewhat - perhaps the alcohol had something to do with it, or perhaps the body's resistance kicks in. It was not at all unpleasant feeling though - the mind is moving at speed while the body is content sitting still.
However, by this time I did notice that the constant chewing, coupled with grinding my teeth when not chewing, was really doing my jaw some harm. I didn't really notice the pain until the day after but it lasted for three whole days. I can see why the cab drivers use it, though. It kept me up until nine the following morning, during which time I had drunk lots more, and been to several different houses, and smoked a little. Without the khat I would have been in bed 10 hours earlier.
Altogether I would say that Khat is an excellent stimulant for a stimulant's sake. It does its job of keeping you awake, is easy to get hold of (if you live in a large city) and is dirt cheap. But there are drawbacks. The bulk of the bundles necessary to get high, the time it takes and it's dry, bitter taste are not things everyone can put up with and this makes its use as a recreational drug mildly inconvenient. Also, fresh khat does not stay fresh for long, (as I found out two days later, opening the fridge door to find a pile of greenish-black mush) so must be dried for storage, and I can't even bear to think about what chewing dried khat is like.
Perhaps a concentrated extract of the active compound might catch on as a natural and (I assume) relatively safe party drug - surely it can't be difficult? The Khat buzz is very enjoyable, very effective and long lasting, but in its leaf form, whether it is worth the effort is up to the individual. In my opinion, it's definitely worth a go, but there's few drugs I don't say that about. Of course, if I had the know how to get the buzz without having to chew my way through a kilo of twigs, I'm sure I'd be doing it a lot more often!
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Digital Griffiti Wall
Share
Fork me
on GitHub
Welcome to the Digital Griffiti Wall!
Please be respectful, Thank you!


An empty (naive) JSA-base agent
In a multi-agent system, some agents may be needed to store and retrieve some pieces of information. Other agents may interact with such agents to inform or request them about these pieces of information.
A first means to run the so called "empty" or "naive" agent is to simply add an argument to the Jade.Boot command line, the form of which is the following :
<agent name>:jade.semantics.interpreter.SemanticAgentBase
Where SemanticAgentBase can be replaced by SemanticAgent from version 1.4 of the JSA framework. Another possibility is to extend the SemanticAgentBase class, as shown hereunder.
class <my agent class name> extends SemanticAgentBase {};
By choosing this second means you define the framework to specialise later the capabilities of this agent.
Legend
: a simple regulation system
In this example, a regulator agent regulates
the temperature of a room depending on several sensors. When it comes
up, a sensor informs the sensor repository agent, so that the
regulator can request the repository for a particular sensor. Of
course, the sensor repository agent can be an empty JSA-base agent.
+ Naive JSA require no specific code. Hence, they are easy to use.
+ Naive JSA always react according the FIPA-ACL specification. Other agent can interact with them using most of the standard FIPA-ACL communicative acts.
- Naive JSA have naive behaviours. For example, they always trust other agents. In this example, we can improve the sensor repository agent, by adding specific capabilities to perform some checks before adopting a belief..
TO BE COMPLETED WITH REFERENCE TO OTHER CARDS.