StructureJS
0.9.0Code and documentation for the StructureJS library.
The ApplicationCacheController is a static class works with the window applicationCache object.
_appCache
ApplicationCache
private
static
A reference to the applicationCache property on the window object.
_eventDispatcher
EventDispatcher
private
static
A reference to the EventDispatcher object.
isEnabled
Boolean
public
static
The isEnabled property is used to keep track of the enabled state.
Default: false
addEventListener
type
callback
scope
[priority=0]
Registers an event listener object with an ApplicationCacheController object so that the listener receives notification of an event.
type
String
The type of event.
callback
Function
The listener function that processes the event. This function must accept an Event object as its only parameter and must return nothing, as this example shows. @example function(event:Event):void
scope
Any
Binds the scope to a particular object (scope is basically what "this" refers to in your function). This can be very useful in JavaScript because scope isn't generally maintained.
[priority=0]
Int
optional
Influences the order in which the listeners are called. Listeners with lower priorities are called after ones with higher priorities.
ApplicationCacheController.addEventListener(ApplicationCacheEvent.UPDATE_READY, this.handlerMethod, this);
ClassName.prototype.handlerMethod = function(event) {
console.log(event.target + " sent the event.");
}
dispatchEvent
event
Dispatches an event within the ApplicationCacheController object.
event
ApplicationCacheEvent
The Event object that is dispatched into the event flow. You can create custom events, the only requirement is all events must extend the ApplicationCacheEvent.
var event:ApplicationCacheEvent = new ApplicationCacheEvent(ApplicationCacheEvent.UPDATE_READY);
ApplicationCacheController.dispatchEvent(event);
// Here is a common inline event being dispatched
ApplicationCacheController.dispatchEvent(new ApplicationCacheEvent(ApplicationCacheEvent.UPDATE_READY));
onCached
event
The resources listed in the manifest have been fully downloaded, and the application is now cached locally.
event
DOMApplicationCacheEvent
The native browser event from the DOMApplicationCache.
onChecking
event
The browser is checking for an update, or is attempting to download the cache manifest for the first time. This is always the first event in the sequence.
event
DOMApplicationCacheEvent
The native browser event from the DOMApplicationCache.
onDownloading
event
The browser has started to download the cache manifest, either for the first time or because changes have been detected.
event
DOMApplicationCacheEvent
The native browser event from the DOMApplicationCache.
onError
event
An error occurred at some point - this could be caused by a number of things. This will always be the last event in the sequence.
event
DOMApplicationCacheEvent
The native browser event from the DOMApplicationCache.
onNoUpdate
event
The cache manifest hadn't changed.
event
DOMApplicationCacheEvent
The native browser event from the DOMApplicationCache.
onObsolete
event
The cache manifest file could not be found, indicating that the cache is no longer needed. The application cache is being deleted.
event
DOMApplicationCacheEvent
The native browser event from the DOMApplicationCache.
onProgress
event
The browser had downloaded and cached an asset. This is fired once for every file that is downloaded (including the current page which is cached implicitly).
event
DOMApplicationCacheEvent
The native browser event from the DOMApplicationCache.
onUpdateReady
event
The resources listed in the manifest have been newly re-downloaded, and the script can use swapCache() to switch to the new cache.
event
DOMApplicationCacheEvent
The native browser event from the DOMApplicationCache.
removeEventListener
type
callback
scope
Removes a specified listener from the ApplicationCacheController object.
type
String
The type of event.
callback
Function
The listener object to remove.
scope
Any
The scope of the listener object to be removed. This was added because it was need for the ApplicationCacheController class. To keep things consistent this parameter is required.
ApplicationCacheController.removeEventListener(ApplicationCacheEvent.UPDATE_READY, this.handlerMethod, this);
ClassName.prototype.handlerMethod = function(event) {
console.log(event.target + " sent the event.");
}


Well, the way they make shows is, they make one show. That show's called a pilot. Then they show that show to the people who make shows, and on the strength of that one show they decide if they're going to make more shows.
Well, the way they make shows is, they make one show. That show's called a pilot. Then they show that show to the people who make shows, and on the strength of that one show they decide if they're going to make more shows.
Like you, I used to think the world was this great place where everybody lived by the same standards I did, then some kid with a nail showed me I was living in his world, a world where chaos rules not order, a world where righteousness is not rewarded. That's Cesar's world, and if you're not willing to play by his rules, then you're gonna have to pay the price.
You think water moves fast? You should see ice. It moves like it has a mind. Like it knows it killed the world once and got a taste for murder. After the avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow that killed the other two, but it wasn't. Nature is lethal but it doesn't hold a candle to man.
You see? It's curious. Ted did figure it out - time travel. And when we get back, we gonna tell everyone.  But then why fifty years in the future when the spacecraft encounters a black hole does the computer call it an 'unknown entry event'? Why don't they know? If they don't know, that means we never told anyone. And if we never told anyone it means we never made it back. Hence we die down here. Just as a matter of deductive logic.


Merchant of Mammon:
A blank scroll is the papyrus that remains after the enchantment has been removed from a magic scroll.
Visit Gatekeeper Ziggurat at the entrance to the Necropolis, he'll tell you how to get a blank scroll. But this knowledge won't come cheap...
He's been a bit down on his luck lately... This will do him good...
Go Back


Preparation time
30 mins to 1 hour
Cooking time
10 to 30 mins
Serves
Makes 25-30 buns
Chicken and mushrooms marinated in spring onion-flavoured oil makes for a delicious filling for these doughy steamed buns.
For the filling, mix the filling ingredients together in a shallow dish and leave to marinade for half an hour.
For the dough, mix the ingredients for the dough together with 100g/3½oz of water, set aside in the bowl to rest and cover. After 20 minutes, mix again until smooth. The dough is then ready.
To cook the dim sum prepare a steamer. Take a plum-sized piece of dough and roll it out into a 5cm/2in diameter circle that is approximately 5mm/¼in thick. Place some of the filling in the centre and fold around.
Steam for 4-5 minutes until the chicken is cooked through and then serve.


🥁 Getting Started with Meow
Initialisation
To get started, import Meow and initialise it during your startup routine:
import Meow
try Meow.init("mongodb://localhost/meow")
You can initialise Meow using a MongoKitten Database object, or a MongoDB connection string.
Defining models
Models are just normal Swift classes that look like this:
final class User: Model {
var email: String
var name: String
var gender: Gender
var favoriteNumbers: [Int] = []
init(email: String, name: String, gender: Gender) {
self.email = email
self.name = name
self.gender = gender
}
}
This class is a valid model, because it states conformance to the Model protocol.
Sourcery and Meow will do the rest: with the definition shown above, you can now query and save users. Serialization and deserialization will be handled for you.
Generating code
First, create a config file by running meow init
and editing the MeowConfig
file. Then just run meow
to generate/update code.
For more information about the Meow CLI, including the config file, please look at the CLI documentation.
Queries
Queries use a syntax that will feel familiar if you ever used the filter
syntax on a Swift array:
let users = User.find { user in
return user.name == "henk" && user.email.hasSuffix("me.com")
}
let femaleCount = User.count { $0.gender == .female }
While it may look like we fetch every user from the database and pass it to your closure, Meow actually uses black magic to generate a MongoDB query from your closure.
For more information, look at the documentation for BaseModel.find(...)
.
Variable Types
Meow currently supports variables of the following kind:
- Variables of one of the BSON types:
String
,Int
,Int32
,Bool
,Document
,Double
,ObjectId
,Data
,Binary
,Date
, andRegularExpression
enum
s that have no associated values. For example, the following enum can be used out of the box:enum Gender { case male, female }
Support for associated values is on our todo list. If an enum has a underlying type, that type currently has to be supported by BSON.
Structs defined in the same module as the model. As long as all their variables are of a kind supported by Meow (including other structs) they should work out of the box.
Classes defined in the same module as the model. The same rules apply here as with structs. However, due to a limitation in the Swift language (designated initializers have to be defined within the class definition), these classes also need the
sourcery:inline
markers.Tuples of which the elements comply to the normal variable rules


Ok, people. I’ve seen some folks around these here parts saying bad things about bid bots and also some posts recently dumping on linear rewards. I’ve had mixed feelings about HF19. You may recall I launched a few posts into trending mentioning “clusterfuck” and “circle-jerk” a week prior to launch (I was admittedly a little late to that party).
Linear Rewards
Here’s my take on why distribution is still a little fucked. A eon ago in cryptoland or approximately 2 years for normies Dan and Ned launched Steemit.com and the Steem blockchain. When they did this Dan looked at legislation surrounding ICOs and said “You know… it actually seems like if we do this the wrong way we’ll create and unregistered and unliscend security. We can either register it and do this that way or we can get around those requirements by working within the law a different way and simply starting from scratch and mining from zero point while not promising any equity returns so it doesn’t look like a security.” Faced with that decision they opted out of registering Steem and choose to mine from the start.
Now, they were excited to own and manage a big blockchain company so they didn’t make it super easy for everyone to mine. They put it out there how to do and then didn’t offer extensive help. That’s because they didn’t’ want a lot of mining competition. It was fair. Anyone could mine it, but it was also unfair because it wasn’t obvious how to setup the miner. Dan helped some folks out that were devs or pretty close, but otherwise you either knew how or you didn’t.
Getting started
Immediately people started complaining both because of a restart with a glitch and later because Steem was spending more money mining than everyone else. As a result they accumulated 75|% of the steem at one point. Most of the rest went to a handful of people who enough dev knowledge to setup a miner, and later they shut off mining as an option.
Then they followed through on a shitty plan where they did stake weighted inflation. That means the people that already had steem received the new steem.  It also tanked the price of Steem. The value of your holdings didn’t change much, but post rewards were basically nothing.
Back in my day Steem was seven cents each and it took me 5 posts to make 0.07 Steem from them!
So, that created a really shitty distribution on the platform, but the challenge didn’t end there. We also had this thing called exponential rewards. Basically when figuring out post rewards you took your stake and squared it. This took the broken distribution on the chain and made it “exponentially” worse.
Example
Minnow with 5 SP votes full power- rewards shares ~ 25
Dolphin with 5,000 SP votes full power - rewards share ~25,000,000
Whale with 50,000 SP votes full power- rewards share ~ 2,500,000,000
Get the picture?
Why have exponential rewards? Mostly because of abuse. The point is to find consensus on what a good post is. Generally, the assumption under exponential rewards is that good content will be liked by lots of people so a post with very few people supporting it ain’t worth much even with a large vote at the start, but posts with lots of likes end up being worth a ton.
So, in this version you have a few people that are making a killing on Steem because the whales like them and also because of how curation could be gamed. You needed to find an author that was likely to be voted high and trending, get on early, and try to ride exponential curation rewards up. It made it so autovoters became prominant as people gamed the system to upvote the trenders early to catch curation. This made it so that fewer and fewer people got more and more rewards as everyone piled in.
So, that was sorta broken
Ok, to be clear, I think exponential rewards is best, but it’s horrible with our current distribution. Something like 93% of the Steem is in the top 100 accounts. You square the influence of the top holders and it gets worse. There were experiments done to try to combat this like limiting how much whales could vote or else they’d get flagged, but ultimately that wasn’t cool either as it generally discouraged holding a lot of Steem.
Backdoor hack
I think the impotus for linear rewards was really trying to work around the distribution that was created. By switching to linear it did actually give the minnow accounts a lot more say on the platform. It’s still miniscule compared to a whale, but it’s roughly an order of magnitude more than what it was before. I remember when my vote became worth 2 cents. It was a giant deal and it took me months on the platform.
So, they switched to linear rewards and it fixed everything… or not quite
I tracked how rewards started changing right after the change. The most shocking piece was that way more votes were going into comment rewards. Now, I’d love to say this had to do with people getting genuinely interested in other people’s posts, but the honest truth is that people started self voting in comments. You couldn’t do that before. It wasn’t worth shit… even for a mega whale. That’s not a challenge now, so you can get massive votes in comments and the value of the comments collectively roughly tripled.
What’s the point. We have a lot more self voting. it’s now profitable. Generally speaking this is highly frowned upon behavior. I call it autovoterotic. You’re getting yourself off with your votes. Am I talking about all votes? No. I tend to vote for my own posts frequently. I wrote something I think it’s worth giving myself 1-2 dollars for it. But not my “hey this art is lovely.” Especially when we first got going with the change I was watching people dump $100 upvotes in their own comments frequently.
What about Bid bots?
Bid bots weren’t prevalent during exponential voting. They are on golos and apparently had a financial impact there, but exponential rewards woudln’t make it profitable unless your post was already doing well.
What about vote selling?  Vote swapping and vote selling was happening all the time, but it just wasn’t a transparent activity that anyone could engage in. You had to be wealthy and connected to even get a shot at it. It wasn’t an accident that the same 10-20 people were always in trending.
So, now we have bid bots. Yes, people can buy their way into trending. I like to think I actually pioneered it. While it’s not perfectly egalitarian because now you need money to get into trending it’s certainly better than it used to be when it was the same faces every time. Now anyone with cash can get into trending and anyone with money can buy a vote; not just the limited few.
I think that’s an improvement. I also kinda dig aspects of linear rewards. You like Utopian? Me too. It only operates as it does because of linear rewards. Same with minnowsupport. We couldnt’ offer votes to everyone on the platform because they would be worth literally nothing instead of something small.
I do think the vote weight distribution is better under linear rewards too.
Fixes I’d suggest
This thing isn’t perfect. Here are some ways I’d suggest making it better. Some of these have bene floated around before. Some I feel like i’m just shouting to myself over and over.
- Have a separate pool for downvoting and have an option to not hurt reputation. Essentially offer 3 votes
upvote
downvote
flag
Upvote gives rewards
downvote removes rewards
flag removes rewards and hurts reputation
The one number on the platform that really helps determine how much you earn around here (outside of SP) is rep. If you’re looking to earn through blogging you’re gonna need a high rep. Downvotes that adjust rep have a lasting impact.
It would be better to have a non rep altering flag so you can disagree with a reward without impacting them indefinately.
It would also be good for this to have a separate pool because right now if yhou flag you get no curation reward. That’s bad. You’re asking whales to give up money which they have the right to earn through their investment to clean up the community. If flagging didn’t cost them anything I think it would be more likely and especially if it didn’t hurt rep I think it would be used a lot more to actually level set content on the blockchain. With the stakes a little lower maybe that would reduce revenge flagging too.
- Stake weighted inflation
The worst decision made was when they set the infation to 100% or more and did it all through stake weighted distribution.  Rich people got way more steem. Post rewards went way down. Steem price tanked. it sucked. The stake weighted inflation went way down, but it’s still there. It’s currently set at 15% and has an effective rate a little lower than that.  That’s roughly 3.51M steem. Something like 60% of that goes to three entities for 2.1M steem. That’s roughly $6M dollars right now and potentially a lot more. This seems like a waste to me.
 In the code change the setting from 15% to 0% for the stake weighted inflation out of overall platform inflation.
What would happen then? That 3.5M steem would be distributed mostly to post authors and curators with a smidge going to witnesses. I’d even be down to shrink witness percent a little to make sure they/we dont’ get any additional benefit from this. Ultimately I think that 3.5M steem is better off in the hands of active users than primarily in the wallets of just Steem and the exchanges.
- Overall platform inflation
I think we should set this to 10% and leave it there. It’s currently at 9% and set to shrink by half a percent every 6 months for the next 20 years or so. As that happens the amount of steem distributed will go up for a little bit, and then start shrinking. There will be less and less distributed through posting. I think that’s bad. I think it will discourage signups, and I think signups drive growth.
General conclusions
Looks. Shit’s working! Price is going up, people are signing up, active users are increasing. Life is good. We have some amazing hard forks coming down at us. I think those are going to drive price which will in turn drive users which will later drive price. I think we’re in for a great year.
That said, linear rewards is prone to abuse and could use more downvotes for price discovery on content.
Bit bots aren’t the devil and going back to exponential rewards while we still have a terrible distribution will make things go from ok to bad.
It could use less stake weighted inflation to Steemit and teh exchanges.
it could use a slight tweak up for platform inflation and let it stay there.
I know some very smart people that don’t like some or all of these plans I’ve listed and who knows how much of this would or can happen. It might be that Steemit’s other priorities keeps them from happening regardless of what the platform and witnesses think at least for the next year or so. That’s ok, I happen to think they’re working on a good list of priorities right now and the platform is experiencing healthy growth even though btc and Steem have been correcting pretty hard.
$0.02,
hope the background helps some frustrated folks on the chain
This page is synchronized from the post: ‘Bid bots aren’’t the devil and neither are Linear Rewards’


{% extends "base/base.html" %} {% block content %}
BY: {{ book.author }}
PUBLISHED: {{ book.year }}
DATE ADDED: {{ book.date_added | date:"DATE_FORMAT" }}
LAST BORROWED: {{ book.last_borrowed | date:"DATE_FORMAT" }}
STATUS: {{ book.status | title }}


|
|
CachingBlockPool * | get_blocks (size_t size) |
| |
|
size_t | align_size (size_t size) |
| |
|
size_t | allocation_size (size_t size) |
| |
|
bool | should_split (CachingBlock *block, size_t size) |
| |
|
void | try_merge_two_blocks (CachingBlock *b1, CachingBlock *b2, CachingBlockPool &blocks) |
| |
|
| SFRLAllocator (float free_ratio=1, float min_free_size=0) |
| |
|
| SFRLAllocator (Allocator *underlying, float free_ratio=1, float min_free_size=0) |
| |
|
void | try_free_this_allocators () |
| |
|
void | setup (Allocator *underlying) |
| |
|
uint64 | flags () const override |
| |
|
const char * | name () const override |
| |
|
void * | alloc (size_t size, size_t &allocation) override |
| |
|
void | free (void *mem_ptr, size_t size, const size_t &allocation) override |
| |
|
void | gc () override |
| |
|
virtual bool | share_with (size_t size, size_t allocation) override |
| |
|
bool | is_cuda () const |
| |
|
bool | is_aligned () const |
| |
|
|
static void | free_all_sfrl_allocators () |
| |
|
|
static const size_t | ALIGN_SIZE = 512 |
| |
|
static const size_t | SMALL_BLOCK_SIZE = 1048576 |
| |
|
static const size_t | LARGE_BLOCK_SIZE = 20971520 |
| |
|
static const size_t | LARGE_ALIGN_SIZE = 2097152 |
| |
|
static list< SFRLAllocator * > | sfrl_allocators |
| |
|
| enum | Flag { _cuda =1,
_aligned =2
} |
| |
The documentation for this struct was generated from the following files:
- /home/cxjyxx_me/.cache/jittor/docxygen/jittor/src/mem/allocator/sfrl_allocator.h
- /home/cxjyxx_me/.cache/jittor/docxygen/jittor/src/mem/allocator/sfrl_allocator.cc


| scheduledThreadPoolExecutor | <spring:bean/> | |
| usageManager | systemUsage |
| Attribute | Type | Description |
|---|---|---|
| checkPeriod | xs:long |
| Attribute | Type | Description |
|---|---|---|
| directory | xs:string | |
| failIfLocked | xs:boolean | |
| lockAcquireSleepInterval | xs:long | |
| name | xs:string |
| Element | Type | Description |
|---|---|---|
| lockable | jdbcPersistenceAdapter | journalPersistenceAdapterFactory | journaledJDBC | kahaDB | levelDB | mKahaDB | replicatedLevelDB |
| Attribute | Type | Description |
|---|---|---|
| enableAudit | xs:boolean | |
| expiration | xs:long | |
| processExpired | xs:boolean | |
| processNonPersistent | xs:boolean |
| Element | Type | Description |
|---|---|---|
| deadLetterQueue | queue | tempQueue | tempTopic | topic |
| Attribute | Type | Description |
|---|---|---|
| anonymousAccessAllowed | xs:boolean | |
| anonymousGroup | xs:string | |
| anonymousUser | xs:string |
| Element | Type | Description |
|---|---|---|
| userGroups | <spring:bean/> | Sets the groups a user is in. The key is the user name and the value is a Set of groups |
| userPasswords | <spring:bean/> | Sets the map indexed by user name with the value the password |
| users | (<spring:bean/>)* | Sets individual users for authentication |
| Element | Type | Description |
|---|---|---|
| adminACLs | authorizationMap | policyMap | redeliveryPolicyMap | |
| readACLs | authorizationMap | policyMap | redeliveryPolicyMap | |
| tempDestinationAuthorizationEntry | tempDestinationAuthorizationEntry | |
| writeACLs | authorizationMap | policyMap | redeliveryPolicyMap |
| Element | Type | Description |
|---|---|---|
| destination | queue | tempQueue | tempTopic | topic |
| Element | Type | Description |
|---|---|---|
| connection | <spring:bean/> |
| Attribute | Type | Description |
|---|---|---|
| crlPath | xs:string | |
| keyStore | xs:string | |
| keyStoreAlgorithm | xs:string | |
| keyStoreKeyPassword | xs:string | |
| keyStorePassword | xs:string | |
| keyStoreType | xs:string | |
| protocol | xs:string | |
| provider | xs:string | |
| secureRandomAlgorithm | xs:string | |
| trustStore | xs:string | |
| trustStoreAlgorithm | xs:string | |
| trustStorePassword | xs:string | |
| trustStoreType | xs:string |
| Element | Type | Description |
|---|---|---|
| SSLContext | <spring:bean/> | |
| keyManagers | (<spring:bean/>)* | |
| secureRandom | <spring:bean/> | |
| trustManagers | (<spring:bean/>)* |
| Attribute | Type | Description |
|---|---|---|
| addMessageStatement | xs:string | |
| binaryDataType | xs:string | |
| clearDurableLastAckInTxStatement | xs:string | |
| clearXidFlagStatement | xs:string | |
| containerNameDataType | xs:string | |
| createDurableSubStatement | xs:string | |
| currentDateTimeStatement | xs:string | |
| deleteOldMessagesStatementWithPriority | xs:string | |
| deleteSubscriptionStatement | xs:string | |
| destinationMessageCountStatement | xs:string | |
| dropAckPKAlterStatementEnd | xs:string | |
| durableSubAcksTableName | xs:string | |
| durableSubscriberMessageCountStatement | xs:string | |
| durableSubscriberMessageCountStatementWithPriority | xs:string | |
| findAcksPendingOutcomeStatement | xs:string | |
| findAllDestinationsStatement | xs:string | |
| findAllDurableSubMessagesStatement | xs:string | |
| findAllDurableSubsStatement | xs:string | |
| findAllMessageIdsStatement | xs:string | |
| findAllMessagesStatement | xs:string | |
| findDurableSubMessagesStatement | xs:string | |
| findDurableSubStatement | xs:string | |
| findLastSequenceIdInAcksStatement | xs:string | |
| findLastSequenceIdInMsgsStatement | xs:string | |
| findMessageByIdStatement | xs:string | |
| findMessageSequenceIdStatement | xs:string | |
| findMessageStatement | xs:string | |
| findNextMessagesByPriorityStatement | xs:string | |
| findNextMessagesStatement | xs:string | |
| findOpsPendingOutcomeStatement | xs:string | |
| findXidByIdStatement | xs:string | |
| insertDurablePriorityAckStatement | xs:string | |
| lastAckedDurableSubscriberMessageStatement | xs:string | |
| lastProducerSequenceIdStatement | xs:string | |
| leaseObtainStatement | xs:string | |
| leaseOwnerStatement | xs:string | |
| leaseUpdateStatement | xs:string | |
| lockCreateStatement | xs:string | |
| lockTableName | xs:string | |
| lockUpdateStatement | xs:string | |
| longDataType | xs:string | |
| messageTableName | xs:string | |
| msgIdDataType | xs:string | |
| nextDurableSubscriberMessageStatement | xs:string | |
| removeAllMessagesStatement | xs:string | |
| removeAllSubscriptionsStatement | xs:string | |
| removeMessageStatment | xs:string | |
| selectDurablePriorityAckStatement | xs:string | |
| sequenceDataType | xs:string | |
| stringIdDataType | xs:string | |
| tablePrefix | xs:string | |
| updateDurableLastAckInTxStatement | xs:string | |
| updateDurableLastAckStatement | xs:string | |
| updateDurableLastAckWithPriorityInTxStatement | xs:string | |
| updateDurableLastAckWithPriorityStatement | xs:string | |
| updateLastPriorityAckRowOfDurableSubStatement | xs:string | |
| updateMessageStatement | xs:string | |
| updateXidFlagStatement | xs:string | |
| useExternalMessageReferences | xs:boolean | |
| useLockCreateWhereClause | xs:boolean |
| Element | Type | Description |
|---|---|---|
| createLockSchemaStatements | (<spring:bean/>)* | |
| createSchemaStatements | (<spring:bean/>)* | |
| dropSchemaStatements | (<spring:bean/>)* |
| Attribute | Type | Description |
|---|---|---|
| immediatePriorityDispatch | xs:boolean | Ensure that new higher priority messages will get an immediate dispatch rather than wait for the end of the current cursor batch. Useful when there is a large message backlog and intermittent high priority messages. |
| useCache | xs:boolean |
| Attribute | Type | Description |
|---|---|---|
| limit | xs:string | Sets the memory limit in bytes. Setting the limit in bytes will set the usagePortion to 0 since the UsageManager is not going to be portion based off the parent. When set using Xbean, values of the form "20 Mb", "1024kb", and "1g" can be used |
| name | xs:string | |
| percentLimit | xs:integer | |
| percentUsage | xs:integer | |
| percentUsageMinDelta | xs:string | Sets the minimum number of percentage points the usage has to change before a UsageListener event is fired by the manager. |
| pollingTime | xs:integer | |
| usagePortion | xs:float |
| Element | Type | Description |
|---|---|---|
| executor | <spring:bean/> | |
| limiter | defaultUsageCapacity | usageCapacity | |
| parent | <spring:bean/> | |
| store | jdbcPersistenceAdapter | journalPersistenceAdapter | kahaDB | levelDB | mKahaDB | memoryPersistenceAdapter | replicatedLevelDB |
| Attribute | Type | Description |
|---|---|---|
| batchStatements | xs:boolean | Set the number of statements to process as a single batch DB update |
| batchStatments | xs:boolean | This value batchStatments is deprecated and will be removed in a future release. Use batchStatements instead (Note the 'e' in Statement)" |
| maxRows | xs:integer | the max value for statement maxRows, used to limit jdbc queries |
| useExternalMessageReferences | xs:boolean |
| Element | Type | Description |
|---|---|---|
| statements | statements |
| Attribute | Type | Description |
|---|---|---|
| batchStatements | xs:boolean | Set the number of statements to process as a single batch DB update |
| batchStatments | xs:boolean | This value batchStatments is deprecated and will be removed in a future release. Use batchStatements instead (Note the 'e' in Statement)" |
| maxRows | xs:integer | the max value for statement maxRows, used to limit jdbc queries |
| useExternalMessageReferences | xs:boolean |
| Element | Type | Description |
|---|---|---|
| statements | statements |
| Attribute | Type | Description |
|---|---|---|
| checkLimitsLogLevel | xs:string | |
| name | xs:string | |
| sendFailIfNoSpace | xs:boolean | Sets whether or not a send() should fail if there is no space free. The default value is false which means to block the send() method until space becomes available |
| sendFailIfNoSpaceAfterTimeout | xs:long | |
| sendFailIfNoSpaceExplicitySet | xs:boolean |
| Element | Type | Description |
|---|---|---|
| adapter | jdbcPersistenceAdapter | journalPersistenceAdapter | kahaDB | levelDB | mKahaDB | memoryPersistenceAdapter | replicatedLevelDB | |
| executor | <spring:bean/> | |
| jobSchedulerStore | <spring:bean/> | |
| jobSchedulerUsage | jobSchedulerUsage | |
| memoryUsage | memoryUsage | |
| parent | systemUsage | |
| storeUsage | storeUsage | |
| tempStore | levelDB | pListStoreImpl | replicatedLevelDB | |
| tempUsage | tempUsage |
| Attribute | Type | Description |
|---|---|---|
| daemon | xs:boolean | |
| dedicatedTaskRunner | xs:boolean | |
| maxIterationsPerRun | xs:integer | |
| maxThreadPoolSize | xs:integer | |
| name | xs:string | |
| priority | xs:integer | |
| shutdownAwaitTermination | xs:long |
| Element | Type | Description |
|---|---|---|
| executor | <spring:bean/> | |
| rejectedTaskHandler | <spring:bean/> | |
| threadClassLoader | <spring:bean/> |
| Attribute | Type | Description |
|---|---|---|
| admin | xs:string | |
| groupClass | xs:string | |
| queue | xs:string | A helper method to set the destination from a configuration file |
| read | xs:string | |
| tempQueue | xs:boolean | |
| tempTopic | xs:boolean | |
| topic | xs:string | A helper method to set the destination from a configuration file |
| write | xs:string |
| Element | Type | Description |
|---|---|---|
| adminACLs | (<spring:bean/>)* | |
| destination | queue | tempQueue | tempTopic | topic | |
| readACLs | (<spring:bean/>)* | |
| writeACLs | (<spring:bean/>)* |
| Attribute | Type | Description |
|---|---|---|
| connectionId | xs:string | |
| name | xs:string | |
| physicalName | xs:string | |
| sequenceId | xs:long |
| Element | Type | Description |
|---|---|---|
| compositeDestinations | (queue | tempQueue | tempTopic | topic)* | |
| connection | <spring:bean/> | |
| properties | <spring:bean/> | Get the properties from this instance for storing in JNDI |
| Attribute | Type | Description |
|---|---|---|
| connectionId | xs:string | |
| name | xs:string | |
| physicalName | xs:string | |
| sequenceId | xs:long |
| Element | Type | Description |
|---|---|---|
| compositeDestinations | (queue | tempQueue | tempTopic | topic)* | |
| connection | <spring:bean/> | |
| properties | <spring:bean/> | Get the properties from this instance for storing in JNDI |
| Attribute | Type | Description |
|---|---|---|
| limit | xs:string | Sets the memory limit in bytes. Setting the limit in bytes will set the usagePortion to 0 since the UsageManager is not going to be portion based off the parent. When set using Xbean, values of the form "20 Mb", "1024kb", and "1g" can be used |
| name | xs:string | |
| percentLimit | xs:integer | |
| percentUsage | xs:integer | |
| percentUsageMinDelta | xs:string | Sets the minimum number of percentage points the usage has to change before a UsageListener event is fired by the manager. |
| pollingTime | xs:integer | |
| usagePortion | xs:float |
| Element | Type | Description |
|---|---|---|
| executor | <spring:bean/> | |
| limiter | defaultUsageCapacity | usageCapacity | |
| parent | <spring:bean/> | |
| store | levelDB | pListStoreImpl | replicatedLevelDB |
| Attribute | Type | Description |
|---|---|---|
| futureOnly | xs:boolean | |
| processNetworkMessages | xs:boolean | |
| ttlCeiling | xs:long | setter method for ttlCeiling |
| zeroExpirationOverride | xs:long | setter method for zeroExpirationOverride |
| Element | Type | Description |
|---|---|---|
| adminConnectionContext | <spring:bean/> | |
| next | destinationPathSeparatorPlugin | destinationsPlugin | forcePersistencyModeBroker | loggingBrokerPlugin | multicastTraceBrokerPlugin | redeliveryPlugin | timeStampingBrokerPlugin | traceBrokerPathPlugin | udpTraceBrokerPlugin |
| Attribute | Type | Description |
|---|---|---|
| recoverDuration | xs:long |
| Element | Type | Description |
|---|---|---|
| broker | destinationPathSeparatorPlugin | destinationsPlugin | forcePersistencyModeBroker | loggingBrokerPlugin | multicastTraceBrokerPlugin | redeliveryPlugin | timeStampingBrokerPlugin | traceBrokerPathPlugin | udpTraceBrokerPlugin |
| Attribute | Type | Description |
|---|---|---|
| name | xs:string | |
| physicalName | xs:string |
| Element | Type | Description |
|---|---|---|
| compositeDestinations | (queue | tempQueue | tempTopic | topic)* | |
| properties | <spring:bean/> | Get the properties from this instance for storing in JNDI |
| Attribute | Type | Description |
|---|---|---|
| stampProperty | xs:string |
| Element | Type | Description |
|---|---|---|
| adminConnectionContext | <spring:bean/> | |
| next | destinationPathSeparatorPlugin | destinationsPlugin | forcePersistencyModeBroker | loggingBrokerPlugin | multicastTraceBrokerPlugin | redeliveryPlugin | timeStampingBrokerPlugin | traceBrokerPathPlugin | udpTraceBrokerPlugin |
| Attribute | Type | Description |
|---|---|---|
| createTablesOnStartup | xs:boolean | |
| failIfLocked | xs:boolean | |
| lockAcquireSleepInterval | xs:long | |
| name | xs:string | |
| queryTimeout | xs:integer |
| Element | Type | Description |
|---|---|---|
| dataSource | <spring:bean/> | |
| exceptionHandler | <spring:bean/> | |
| lockable | jdbcPersistenceAdapter | journalPersistenceAdapterFactory | journaledJDBC | kahaDB | levelDB | mKahaDB | replicatedLevelDB | |
| statements | statements |
| Attribute | Type | Description |
|---|---|---|
| batchStatements | xs:boolean | Set the number of statements to process as a single batch DB update |
| batchStatments | xs:boolean | This value batchStatments is deprecated and will be removed in a future release. Use batchStatements instead (Note the 'e' in Statement)" |
| maxRows | xs:integer | the max value for statement maxRows, used to limit jdbc queries |
| useExternalMessageReferences | xs:boolean |
| Element | Type | Description |
|---|---|---|
| statements | statements |
| Attribute | Type | Description |
|---|---|---|
| allowLinkStealing | xs:boolean | |
| auditNetworkProducers | xs:boolean | Enable a producer audit on network connections, Traps the case of a missing send reply and resend. Note: does not work with conduit=false, networked composite destinations or networked virtual topics |
| disableAsyncDispatch | xs:boolean | |
| discoveryUri | xs:string | |
| enableStatusMonitor | xs:boolean | |
| maximumConsumersAllowedPerConnection | xs:integer | |
| maximumProducersAllowedPerConnection | xs:integer | |
| name | xs:string | |
| rebalanceClusterClients | xs:boolean | |
| updateClusterClients | xs:boolean | |
| updateClusterClientsOnRemove | xs:boolean | |
| updateClusterFilter | xs:string | |
| uri | xs:string | Sets the server transport URI to use if there is not a {@link TransportServer} configured via the {@link #setServer(TransportServer)} method. This value is used to lazy create a {@link TransportServer} instance |
| Element | Type | Description |
|---|---|---|
| brokerInfo | <spring:bean/> | |
| brokerService | broker | brokerService | This is called by the BrokerService right before it starts the transport. |
| discoveryAgent | <spring:bean/> | |
| messageAuthorizationPolicy | <spring:bean/> | Sets the policy used to decide if the current connection is authorized to consume a given message |
| publishedAddressPolicy | publishedAddressPolicy | Gets the currently configured policy for creating the published connection address of this TransportConnector. |
| server | <spring:bean/> | |
| taskRunnerFactory | taskRunnerFactory |
| Attribute | Type | Description |
|---|---|---|
| broadcast | xs:boolean | |
| destination | xs:string | |
| maxTraceDatagramSize | xs:integer |
| Element | Type | Description |
|---|---|---|
| address | <spring:bean/> | |
| adminConnectionContext | <spring:bean/> | |
| next | destinationPathSeparatorPlugin | destinationsPlugin | forcePersistencyModeBroker | loggingBrokerPlugin | multicastTraceBrokerPlugin | redeliveryPlugin | timeStampingBrokerPlugin | traceBrokerPathPlugin | udpTraceBrokerPlugin | |
| wireFormat | <spring:bean/> | |
| wireFormatFactory | <spring:bean/> |
| Attribute | Type | Description |
|---|---|---|
| evictExpiredMessagesHighWatermark | xs:integer | Sets the high water mark on which we will eagerly evict expired messages from RAM |
| propertyName | xs:string |
| Attribute | Type | Description |
|---|---|---|
| limit | xs:long |
| Element | Type | Description |
|---|---|---|
| virtualDestinations | (compositeQueue | compositeTopic | virtualTopic)* |
| Attribute | Type | Description |
|---|---|---|
| ignoreWildcardSelectors | xs:boolean | |
| persistFile | xs:string | Sets the location of the persistent cache |
| persistInterval | xs:long | |
| singleSelectorPerDestination | xs:boolean |
| Attribute | Type | Description |
|---|---|---|
| concurrentSend | xs:boolean | When true, dispatch to matching destinations in parallel (in multiple threads) |
| local | xs:boolean | |
| name | xs:string | |
| postfix | xs:string | Sets any postix used to identify the queue consumers |
| prefix | xs:string | Sets the prefix wildcard used to identify the queue consumers for a given topic |
| selectorAware | xs:boolean | Indicates whether the selectors of consumers are used to determine dispatch to a virtual destination, when true only messages matching an existing consumer will be dispatched. |
| transactedSend | xs:boolean | When true, dispatch to matching destinations always uses a transaction. |
| Attribute | Type | Description |
|---|---|---|
| alwaysSessionAsync | xs:boolean | If this flag is not set then a separate thread is not used for dispatching messages for each Session in the Connection. However, a separate thread is always used if there is more than one session, or the session isn't in auto acknowledge or duplicates ok mode. By default this value is set to true and session dispatch happens asynchronously. |
| alwaysSyncSend | xs:boolean | Set true if always require messages to be sync sent |
| auditDepth | xs:integer | |
| auditMaximumProducerNumber | xs:integer | |
| beanName | xs:string | |
| brokerURL | xs:string | Sets the connection URL used to connect to the ActiveMQ broker. |
| checkForDuplicates | xs:boolean | |
| clientID | xs:string | Sets the JMS clientID to use for the created connection. Note that this can only be used by one connection at once so generally its a better idea to set the clientID on a Connection |
| clientIDPrefix | xs:string | Sets the prefix used by autogenerated JMS Client ID values which are used if the JMS client does not explicitly specify on. |
| closeTimeout | xs:integer | Sets the timeout before a close is considered complete. Normally a close() on a connection waits for confirmation from the broker; this allows that operation to timeout to save the client hanging if there is no broker |
| connectionIDPrefix | xs:string | Sets the prefix used by connection id generator |
| consumerExpiryCheckEnabled | xs:boolean | Controls whether message expiration checking is done in each MessageConsumer prior to dispatching a message. Disabling this check can lead to consumption of expired messages. |
| consumerFailoverRedeliveryWaitPeriod | xs:long | |
| copyMessageOnSend | xs:boolean | Should a JMS message be copied to a new JMS Message object as part of the send() method in JMS. This is enabled by default to be compliant with the JMS specification. You can disable it if you do not mutate JMS messages after they are sent for a performance boost |
| disableTimeStampsByDefault | xs:boolean | Sets whether or not timestamps on messages should be disabled or not. If you disable them it adds a small performance boost. |
| dispatchAsync | xs:boolean | Enables or disables the default setting of whether or not consumers have their messages dispatched synchronously or asynchronously by the broker. For non-durable topics for example we typically dispatch synchronously by default to minimize context switches which boost performance. However sometimes its better to go slower to ensure that a single blocked consumer socket does not block delivery to other consumers. |
| exclusiveConsumer | xs:boolean | Enables or disables whether or not queue consumers should be exclusive or not for example to preserve ordering when not using Message Groups |
| maxThreadPoolSize | xs:integer | |
| messagePrioritySupported | xs:boolean | |
| nestedMapAndListEnabled | xs:boolean | Enables/disables whether or not Message properties and MapMessage entries support Nested Structures of Map and List objects |
| nonBlockingRedelivery | xs:boolean | When true a MessageConsumer will not stop Message delivery before re-delivering Messages from a rolled back transaction. This implies that message order will not be preserved and also will result in the TransactedIndividualAck option to be enabled. |
| objectMessageSerializationDefered | xs:boolean | When an object is set on an ObjectMessage, the JMS spec requires the object to be serialized by that set method. Enabling this flag causes the object to not get serialized. The object may subsequently get serialized if the message needs to be sent over a socket or stored to disk. |
| optimizeAcknowledge | xs:boolean | |
| optimizeAcknowledgeTimeOut | xs:long | The max time in milliseconds between optimized ack batches |
| optimizedAckScheduledAckInterval | xs:long | Gets the configured time interval that is used to force all MessageConsumers that have optimizedAcknowledge enabled to send an ack for any outstanding Message Acks. By default this value is set to zero meaning that the consumers will not do any background Message acknowledgment. |
| optimizedMessageDispatch | xs:boolean | If this flag is set then an larger prefetch limit is used - only applicable for durable topic subscribers. |
| password | xs:string | Sets the JMS password used for connections created from this factory |
| producerWindowSize | xs:integer | |
| rmIdFromConnectionId | xs:boolean | uses the connection id as the resource identity for XAResource.isSameRM ensuring join will only occur on a single connection |
| sendAcksAsync | xs:boolean | |
| sendTimeout | xs:integer | |
| statsEnabled | xs:boolean | |
| transactedIndividualAck | xs:boolean | when true, submit individual transacted acks immediately rather than with transaction completion. This allows the acks to represent delivery status which can be persisted on rollback Used in conjunction with org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter#setRewriteOnRedelivery(boolean) true |
| useAsyncSend | xs:boolean | Forces the use of Async Sends which adds a massive performance boost; but means that the send() method will return immediately whether the message has been sent or not which could lead to message loss. |
| useBeanNameAsClientIdPrefix | xs:boolean | |
| useCompression | xs:boolean | Enables the use of compression of the message bodies |
| useDedicatedTaskRunner | xs:boolean | |
| useRetroactiveConsumer | xs:boolean | Sets whether or not retroactive consumers are enabled. Retroactive consumers allow non-durable topic subscribers to receive old messages that were published before the non-durable subscriber started. |
| userName | xs:string | Sets the JMS userName used by connections created by this factory |
| warnAboutUnstartedConnectionTimeout | xs:long | Enables the timeout from a connection creation to when a warning is generated if the connection is not properly started via {@link Connection#start()} and a message is received by a consumer. It is a very common gotcha to forget to start the connection so this option makes the default case to create a warning if the user forgets. To disable the warning just set the value to < 0 (say -1). |
| watchTopicAdvisories | xs:boolean | |
| xaAckMode | xs:integer |
| Element | Type | Description |
|---|---|---|
| blobTransferPolicy | <spring:bean/> | Sets the policy used to describe how out-of-band BLOBs (Binary Large OBjects) are transferred from producers to brokers to consumers |
| clientIdGenerator | <spring:bean/> | |
| clientInternalExceptionListener | <spring:bean/> | Allows an {@link ClientInternalExceptionListener} to be configured on
the ConnectionFactory so that when this factory is used by frameworks
which don't expose the Connection such as Spring JmsTemplate, you can
register an exception listener.
Note: access to this clientInternalExceptionListener will not be serialized if it is associated with more than on connection (as it will be if more than one connection is subsequently created by this connection factory) |
| connectionIdGenerator | <spring:bean/> | |
| exceptionListener | <spring:bean/> | Allows an {@link ExceptionListener} to be configured on the
ConnectionFactory so that when this factory is used by frameworks which
don't expose the Connection such as Spring JmsTemplate, you can register
an exception listener.
Note: access to this exceptionLinstener will not be serialized if it is associated with more than on connection (as it will be if more than one connection is subsequently created by this connection factory) |
| prefetchPolicy | prefetchPolicy | Sets the prefetch policy for consumers created by this connection. |
| properties | <spring:bean/> | Get the properties from this instance for storing in JNDI |
| redeliveryPolicy | redeliveryPolicy | Sets the global default redelivery policy to be used when a message is delivered but the session is rolled back |
| redeliveryPolicyMap | redeliveryPolicyMap | Sets the global redelivery policy mapping to be used when a message is delivered but the session is rolled back |
| rejectedTaskHandler | <spring:bean/> | |
| sessionTaskRunner | taskRunnerFactory | |
| transformer | <spring:bean/> | Sets the transformer used to transform messages before they are sent on to the JMS bus or when they are received from the bus but before they are delivered to the JMS client |
| transportListener | <spring:bean/> | Allows a listener to be configured on the ConnectionFactory so that when this factory is used with frameworks which don't expose the Connection such as Spring JmsTemplate, you can still register a transport listener. |


Options X
Select hotkey:
Delete hotkey:
Taken shortcuts, be mind of:
j
n
r
t
+
/
s
1
2
3
4
5
d
w
m
x
a
c
e
BACKSPACE
DELETE
z
ESC


Analyzing Network Output - Part 1, Training and Saving
Posted on jeu. 12 avril 2018 in Tutorial by Corey Adams
MNIST Classification Trainer¶
This is a pretty simple notebook. We'll train a network to do mnist classification of digits with a convolutional network. The point here is not to teach too much about training a network, but to show how to properly save and restore a modern network with tensorflow, and analyze the output.
For a coherent set of tutorials that runs on your web-browser with Google's free GPU, check this out. We are compiling blog posts like this one into the tutorials when we find time!
Define the network¶
I'm going to use some tools copy/pasted from other projects for this. So some of this code might seem familar.
Meanwhile, let's import the needed stuff for training:
import os
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
For this network, I'm going to use a short non-residual network with batch normalization. I'm going to train the network using minibatching. Both of these techniques are overkill for this problem, but it's instructive to demonstrate the pitfalls of minibatching and batch normalization when saving a network.
Convolutional network¶
MNIST is 28x28, so we'll apply convolutions, downsampling, and finally global average pooling:
def convolutional_step(x, training):
n_filters = 2*x.get_shape().as_list()[-1]
x = tf.layers.conv2d(x, filters=n_filters,
kernel_size=[3,3],
strides=[1,1],
padding='same',
use_bias=False,
reuse=False,
trainable=training)
# Here's an important gotcha: I set the decay to 0.9, and updates_collection to None
# This forces the update to happen "in place" and makes sure the batch norm parameters
# Get saved to files.
x = tf.contrib.layers.batch_norm(x,
updates_collections=None,
decay=0.9,
is_training=training,
trainable=training,
# name="BatchNorm",
reuse=False)
x = tf.nn.relu(x)
return x
def build_network(x, training):
print("Building network, initial shape: {0}".format(x.get_shape()))
# Initial convolutions:
x = convolutional_step(x, training)
x = convolutional_step(x, training)
# Downsample to 14x14:
x = tf.layers.max_pooling2d(x,
pool_size=2,
strides=2,
padding='valid')
print("After first downsample shape: {0}".format(x.get_shape()))
# More convolutions:
x = convolutional_step(x, training)
x = convolutional_step(x, training)
# Downsample to 7x7:
x = tf.layers.max_pooling2d(x,
pool_size=2,
strides=2,
padding='valid')
print("After first downsample shape: {0}".format(x.get_shape()))
# More convolutions:
x = convolutional_step(x, training)
x = convolutional_step(x, training)
# Downsample to 3x3:
x = tf.layers.max_pooling2d(x,
pool_size=2,
strides=2,
padding='valid')
print("After last downsample shape: {0}".format(x.get_shape()))
# Do a bottle neck step to merge into just 10 filters:
x = tf.layers.conv2d(x,filters=10,
kernel_size=[1,1],
strides=[1,1],
padding='same',
use_bias=False,
reuse=False,
trainable=training
)
# Do global average pooling to make 10 output logits:
shape = (x.shape[1], x.shape[2])
x = tf.nn.pool(x,
window_shape=shape,
pooling_type="AVG",
padding="VALID",
dilation_rate=None,
strides=None,
name="GlobalAveragePool",
data_format=None)
# Reshape to remove empty dimensions:
x = tf.reshape(x, [tf.shape(x)[0], 10],
name="global_pooling_reshape")
return x
Set up the network:
tf.reset_default_graph()
# Define the input placeholders, as defined in the tensorflow mnist tutorial:
x = tf.placeholder(tf.float32, shape=[None, 784], name='x')
y_ = tf.placeholder(tf.float32, shape=[None, 10], name='y_')
reshaped_x = tf.reshape(x, [-1, 28, 28, 1])
y = build_network(reshaped_x, training=True)
print "Final output shape: {0}".format(y.get_shape())
Loss and optimizers¶
Again, a lot of this is straight out of the tensorflow tutorial:
cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y_, logits=y))
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
Optimizer, using minibatching:
# Global step:
global_step = tf.Variable(0, dtype=tf.int32, trainable=False, name='global_step')
# Accumulate trainable variables:
trainable_vars = [tf.Variable(tv.initialized_value(),trainable=False) for tv in tf.trainable_variables()]
opt = tf.train.AdamOptimizer()
# Reset gradients:
zero_grads = [tv.assign(tf.zeros_like(tv)) for tv in trainable_vars]
# Accumulate gradients:
accum_gradients = [trainable_vars[i].assign_add(gv[0]) for i, gv in enumerate(opt.compute_gradients(cross_entropy))]
# Apply gradients:
apply_gradients = opt.apply_gradients(zip(trainable_vars, tf.trainable_variables()),
global_step = global_step)
Saving the network:
writer = tf.train.Saver()
Training¶
Not going to attempt anything crazy here, just train for 1000 iterations of 5 images per minibatch, 3 minibatches per iteration.
iterations = 1000
minibatch_size = 25
minibatch_count = 3
test_iteration = 5
snapshot_iteration = 50
train_losses = []
test_losses = []
train_accs = []
test_accs = []
train_iters = []
test_iters = []
save_dir = '/home/cadams/DeepLearnPhysics/mnist-train-and-analyze' + "/log_mnist_classifier/"
if not os.path.isdir(save_dir):
os.mkdir(save_dir)
print save_dir
sess = tf.Session()
sess.run(tf.global_variables_initializer())
for _it in range(iterations + 1):
# Zero gradients:
sess.run(zero_grads)
batch_loss = 0.0
batch_acc = 0.0
for batch in range(minibatch_count):
# Fetch the training data:
batch = mnist.train.next_batch(minibatch_size)
ops = [accum_gradients, cross_entropy, accuracy]
_, loss, acc = sess.run(ops, feed_dict={x: batch[0], y_ : batch[1]})
batch_loss += loss
batch_acc += acc
# Apply the gradients:
sess.run(apply_gradients, feed_dict={})
train_iters.append(_it)
train_losses.append(batch_loss / minibatch_count)
train_accs.append(batch_acc / minibatch_count)
if _it % test_iteration == 0:
# Test on the test set:
batch = mnist.test.next_batch(10*minibatch_size)
test_loss, test_acc = sess.run([cross_entropy, accuracy], feed_dict={x:batch[0], y_:batch[1]})
test_iters.append(_it)
test_losses.append(test_loss)
test_accs.append(test_acc)
# Report the results:
print("Iteration {it}".format(it=_it))
print("Loss:\t {test:.2}(test)\t{train:.2}(train)".format(test=test_loss,
train=batch_loss/minibatch_count))
print("Acc: \t {test:.2}(test)\t{train:.2}(train)".format(test=test_acc,
train=batch_acc /minibatch_count))
if _it != 0 and _it % snapshot_iteration == 0:
writer.save(sess, save_path=save_dir + 'checkpoints/save', global_step=_it)
Seems like things did pretty well. Let's plot the test and training accuracy to verify:
from matplotlib import pyplot as plt
%matplotlib inline
figure = plt.figure(figsize=(16,9))
plt.plot(train_iters, train_accs, label="Training Accuracy")
plt.plot(test_iters, test_accs, label="Testing Accuracy")
plt.grid(True)
plt.legend(fontsize=25)
plt.ylim(0,1.25)
plt.show()
figure = plt.figure(figsize=(16,9))
plt.plot(train_iters, train_losses, label="Training Loss")
plt.plot(test_iters, test_losses, label="Testing Loss")
plt.grid(True)
plt.legend(fontsize=25)
plt.ylim(0,2.5)
plt.show()
Based on this, things look good. It's not state-of-the-art accuracy but it's pretty good, so let's move on to the second part of the tutorial, restoring the model from file and doing analysis.


| HBASE-10193 |
Cleanup HRegion if one of the store fails to open at region initialization |
Critical |
regionserver |
Aditya Kishore |
Aditya Kishore |
| HBASE-8558 |
Add timeout limit for HBaseClient dataOutputStream |
Major |
Client |
wanbin |
Liang Xie |
| HBASE-10225 |
Bug in calls to RegionObsever.postScannerFilterRow |
Major |
Coprocessors |
Lars Hofhansl |
Anoop Sam John |
| HBASE-10214 |
Regionserver shutdown improperly and leaves the dir in .old not deleted |
Major |
regionserver |
binlijin |
binlijin |
| HBASE-10215 |
TableNotFoundException should be thrown after removing stale znode in ETH |
Minor |
master |
rajeshbabu |
rajeshbabu |
| HBASE-9346 |
HBCK should provide an option to check if regions boundaries are the same in META and in stores. |
Major |
hbck, Operability |
Jean-Marc Spaggiari |
Jean-Marc Spaggiari |
| HBASE-7226 |
HRegion.checkAndMutate uses incorrect comparison result for <, <=, > and >= |
Major |
regionserver |
Honghua Feng |
Honghua Feng |
| HBASE-10250 |
[0.94] TestHLog fails occasionally |
Major |
. |
Lars Hofhansl |
Lars Hofhansl |
| HBASE-8912 |
[0.94] AssignmentManager throws IllegalStateException from PENDING_OPEN to OFFLINE |
Critical |
. |
Enis Soztutar |
Lars Hofhansl |
| HBASE-10279 |
TestStore.testDeleteExpiredStoreFiles is flaky |
Major |
. |
Lars Hofhansl |
Lars Hofhansl |
| HBASE-10284 |
Build broken with svn 1.8 |
Major |
. |
Lars Hofhansl |
Lars Hofhansl |
| HBASE-10273 |
AssignmentManager.regions and AssignmentManager.servers are not always updated in tandem |
Major |
master |
Honghua Feng |
Honghua Feng |
| HBASE-10272 |
Cluster becomes nonoperational if the node hosting the active Master AND ROOT/META table goes offline |
Critical |
IPC/RPC |
Aditya Kishore |
Aditya Kishore |
| HBASE-10078 |
Dynamic Filter - Not using DynamicClassLoader when using FilterList |
Minor |
Filters |
Federico Gaule |
Jimmy Xiang |
| HBASE-10286 |
Revert HBASE-9593, breaks RS wildcard addresses |
Major |
. |
Lars Hofhansl |
Lars Hofhansl |
| HBASE-10268 |
TestSplitLogWorker occasionally fails |
Major |
. |
Andrew Purtell |
Andrew Purtell |
| HBASE-10281 |
TestMultiParallel.testFlushCommitsNoAbort fails frequently in 0.94 |
Major |
. |
Lars Hofhansl |
Lars Hofhansl |
| HBASE-10306 |
Backport HBASE-6820 to 0.94, MiniZookeeperCluster should ensure that ZKDatabase is closed upon shutdown() |
Minor |
. |
chendihao |
chendihao |


BioNER tool which aims to apply last state of the art models for the recognition of Biomedical Entities: Diseases, Chemicals and Genetical ents.


Yaya Toure opens up on birthday cake saga during Man City spell
The midfielder was at the centre of the infamous episode shortly after helping Manuel Pellegrini's side to the Premier League title in 2014
by Hassan RashedYaya Toure has opened up on the birthday cake saga that took place during his time with Manchester City .
The midfielder, 36, was the centre of the infamous episode shortly after helping Manuel Pellegrini's side to their second Premier League triumph in the space of three seasons in 2014.
It came after Dimitri Seluk, Toure's agent at the time, criticised City for not properly celebrating the Ivorian's 31st birthday after his significant contribution to their success that season and suggested he might leave the club as a result.
Toure initially appeared to dismiss Seluk's claims but later added fire to the story by suggesting that he was speaking on his behalf, tweeting : “Everything Dimitri said is true. He speaks for me. I will explain after the World Cup."
Although Toure ended up staying with City until the end of the 2017-2018 campaign, he admitted that the incident had a lasting impact.
“It’s crazy. The birthday cake damaged me a lot," he explained in an interview with The Times .
"When people see me in France or Africa, they say ‘You want cake?’
"I was so p***ed [off]. I was telling him [Seluk], you should not do that, no need.
"I talked with Khaldoon [Al Mubarak, City’s chairman], and I was saying, ‘It is not me, don’t worry’."
During his eight years at the Etihad Stadium, the former Barcelona midfielder helped City to win seven major trophies, including three Premier League titles.
However, despite being one of the key members of sides that managed league triumphs in the 2011-12 and 2013-14 campaigns, Toure admitted that the saga affected his relationship with fans.
“The bad mistake I did was doing [tweeting] ‘OK, he [Seluk] is right’," he added. "That’s the one that’s killing me.
"People started to believe what he said is me. The fans were reading this, thinking bad about me, and I can understand it.
“Before the birthday cake. I accepted it [Seluk’s antics], because I respect [him].
"You have to give him credit too, because he has helped me through a lot.
"But he did a lot of bad things. It was too much.”


Pingtype English Documentation
2017-07-21
Questions? Please email me at:
Are you a programmer? Then please read the developer notes.
Pingtype English is a literal translator for English-to-Chinese. It adds colours for nouns/verbs/adjectives, shows IPA/Phonic/Bopomofo pronunciation, and translates each word literally to Chinese.
It is based on
Pingtype Chinese, which goes the other way, from Chinese to English.
Sorry that the documentation is only available in English. I asked 4 friends to help translate the documentation 3 months ago, but they still didn't finish. Niña, Sammie, Raymond, and Nicole - I helped you install Office, proofread university applications, etc. Why aren't you helping me?
Index
Data sources
HTML output
This is the type of text that Pingtype produces. On the first line is English text, with colours for noun/verb/adjective. The second line has IPA (KK音標) pronunciation. The third line has phonics. The fourth line has Bopomofo. The fifth line has a literal translation of that word into English. Finally, the sixth line has a real English translation.
English, Chinese text input
Type or copy-paste your English text into the first text area. If you have Chinese text, you can type that into the second text area. Let's use a sample sentence.
"On Tuesday I cooked dinner for her in my house."
"星期二我在我家里為她做飯。"
When you're ready, press the Translate button to generate the text and HTML output.
You can leave the Chinese text blank if you don't have it.
Text output
If you want to copy-paste your text to another place (e.g. music lyrics), you may prefer to have it in plain text. The text area on the top-right has the same output in plain text.
Memory
Suppose you want to save a sentence for later. The MC, M+, and MR buttons work like a calculator.
M+ appends the current phrase to the memory. It does not erase what is already saved.
MR loads all the memory into the Chinese input text area.
MC clears the memory, so you lose everything you saved.
Clear only clears the view, it does not clear the memory. You can use MR to recall the saved phrases.
Editing the dictionary
I need you!
My dictionary is not very good yet. I need to add words. I need to edit words. Sometimes I need to remove words. This is all possible using the Dictionary Editor. Please use it, and don't forget to upload! First press the Edit button to open the floating window. You can then drag that around your screen using the mouse.
If a word does not exist, then please remove it. Copy-paste the word into the Remove text area, and click the Remove button. Then click Retranslate. Sometimes you have to do this more than once.
You can also add a word to the dictionary. Copy-paste the word into the Add textarea. Don't worry if there are extra tabs; you can remove them by clicking the Search 🔍 button. This also looks up the word in the dictionary, in case you want to edit an existing word.
You can click the "English To IPA" button to get the pronunciation from Lingorado. Next, click the IPA to Phonics and IPA to Bopomofo buttons.
Then type the Chinese word that has the same meaning as the English word, and click Add. Then click Retranslate, and see that the word has been combined into one.
Finally, choose the POS from the list: Other/Noun/Verb/Adjective. The Classify button will try to search a dictionary to find the POS automatically.
You can also edit definitions using the Add button. If the word already exists, the new definition will be used.
Please upload your changes so I can fix the dictionary on my server! Just click the upload button.


{% extends "base.html" %} {% block title %}WattTime{% endblock %} {% block content %}
Sorry, we couldn't find an account associated with phone number {{ phone }}. Please try again. If it's still not working, please contact us and we'll do our best to sort this out.
{% endblock %}


frequently asked qns
General Questions
Answer: The Youth for Future Summits are preparation events prior to the Ragnarok Hackathon. However you can still go for the summit without attending Ragnarok.
The Youth For Future Summit and Ragnarok Hackathon will be held in Nanyang Technological University on March 22nd and May 18-20th in the Student Activity Centre (SAC).
The event is focused for students, however there is nothing stopping a non-student from attending.
Thank you for the interest! Please send an email to<EMAIL_ADDRESS>It is the in-game token for the Soqqle Gamified Learning platform. It is used to power-up the character for learning to obtain cool challenges and items.
Youth for Future
The email you registered with will be sent a voucher that can be used to redeem the tokens in the Soqqle platform in BETA. We encourage you to sign up for the ALPHA version now. www.soqqle.com
They are designed to help you brainstorm opportunities in the domain of choice. It is also used to help you form a team for the Ragnarok Hackathon should you choose to go for it.
Ragnarok Hackathon
You have to go for at least ONE Youth for Future summit. Exceptions are on a case by case basis.
Yes! This will be given as a voucher for you to redeem in the system.
5 team members
It is recommended for a team to have a mix of tech and non tech students. You can either form the team during the youth for future summits or you can form the team on your own.
No, it can be mixed.
It is to provide feedback on the solutions proposed and suggest any improvements.


@buildCard(app, "Last Build", app.lastBuildId)
@if(app.lastFailedBuild != 0 && app.lastBuildId != app.lastFailedBuild) {
@buildCard(app, "Last Failed Build", app.lastFailedBuild)
}
@if(app.lastSuccessfulBuild != 0 && app.lastBuildId != app.lastSuccessfulBuild) {
@buildCard(app, "Last Successful Build", app.lastSuccessfulBuild)
}


Let's add jQuery to our page!
We're now completing our work in Submlime and the console.
Script tag for jQuery from Google's CDN:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
$.fn.jquery
. If this returns a version number, you have succesfully added jQuery to this page!.


| DOSE: |
4 hits |
oral |
LSD |
(blotter / tab) |
Some of my previous relevant experiences include: LSD, mescaline, psylocibin,5meodmt, dpt, 5meodipt ....
This is going to be a summary of a few 2c-i experiments but focused around the first and most profound experience which was in combination with LSD.
This whole thing started out as what was supposed to be 400 mcs of LSD .... I hadn't seen LSD in the last two years or so when my friend told me that someone just gave him a nice chunk of a freshly dipped sheet. The preparations where made and on a sat afternoon I found myself at a large home in the hills among my very close friends with an empty belly. There was supposed to be 8 of us but when we arrived two strange faces where at the house and this made me slightly worried because I myself planned on taking 4 hits and the guy who had dipped it told my friend it should be about 80 mcs a hit.Thats a healthy dose for me not what I would want to do with strange people. After talking to them a while I decided it would be OK. My state of mind was very good as it always is when I get to visit my friends and have an evening of research (they live far).
At 4 we all ingested our doses. Everyone took two except myself and 2 other people. the 3 of us all had 4 . After an hour and thirty min. its apparent that the blotter is not potent and I found myself with a very mild and pleasant LSD high. I would say I only got 50 mcs or so. I smoked some salvia and I took a small hit of leaf out of the pipe because I was in the back yard with a lot of people. I noticed a potentiation of salvia and a uniqueness with the LSD but that's a whole report in itself. I smoked a little rustica my friend got from south America and after only two hits found myself feeling dizzy and uncomfortable. After I got a drink to get the tobacco taste out of my mouth It passed and I decided to offer 2c-i to everyone since the LSD was a miss.
At 6 Everyone there elected to ingest 2c-i after we consulted Erowid and confirmed it had been done safely. We all took 16 mg except one girl who is a bit smaller decided 14 might be better for a first try with it stacked on the LSD and all.
The onset was slow and reminded me of mescaline in its slow build up. From about 30 min to 1 hour there was a mild nausea lingering but luckily it never got too bad. Between one and two hours visuals started to really come on. I spent some of this time dripping and splattering paint on a canvas with my friends it was good fun and beautiful.  I got some thinner on my shirt and eventually had to take off my sweat shirt for the evening because my sense of smell was so heightened it was making me ill.
By two hours the room is a swirling psychedelic mess. I have had some wild visuals from other substances especially LSD but this was all the grandeur of my best LSD trips with a lot of cannabis and then some. It never threatened to envelope me and leave me so I am in a whole other place, unable to see, lost in visuals like mushrooms or 5meodmt have done to me. Just amazing swirling mandalas, geometry's, colors, the whole ceiling turning oranges and reds even when I focused or got up close to objects. I kept thinking this is something right out of the pages of PIHKAL OR TIHKAL.This was a taste of something magical and I felt so privileged to be having this experience. I was in a high plus 2 mentally but visually a solid 3. By two hours fourty min. something changed visually; still very active but things where moving less.(THese days I don't even care about visuals that was interesting many years ago but wow what a reminder of their beauty!)
The plateau came and we sat down to watch my friends movie he made. It was two pieces, One was music set to a computer graphic of the persession of the I-ching. The other is a song for an operatic version of True Hallucinations by T. Mckenna. This was all set to graphics. A joint went around right at the start and I thought to myself I'm scared what this is going to do. Within 1 min I'm captivated by 2 min I'm pouring tears fully plus 4 !  A picture of this mushrooms shaman cave painting in Africa is on the screen and I'm melding with the mushroom god. This drawing is conveying ancient wisdom of the mushrooms and oh boy it would take pages to tell what happened if I could find the words. The first song stops, the tears slow. I almost leave the room because I'm not sure I can take another round.
It bursts onto the screen and I am soon convulsing in tears of reverie. The graphics of space so much like my normal CEV and how beautiful combined with the music .'Glorious impermanence, radiance' is the chorus. In Terence's last interview they asked what do u expect when u die and he said 'Brilliant Radiance.' That's what the song is about.Thats exactly what I believe too, as taught to me by the mushroom. Everything was falling into place and coming together to catalyze this plus 4 moment. I've never experienced reverie like this, it was unspeakable. Not high alpine meadows or old growth redwood forest with or without mind altering substances has ever inspired anything close to this. I had reverie a few times before but this was turned up infinantly louder than anything which preceded it.
The music stops I manage to slow the tears but I'm cold. It feels kind of like DPT in my hands, like I'm dissolving away, pins and needles type feeling actually more like my blood is bubbling is how I describe it. I HATE being cold on psychedelics! its loud in the room and chaotic I'm feeling funky from all the crying and emotion so I head to another room. I get under the covers and I'm fine after I do some oaming to slow my thoughts and I warm up. I come downstairs to find my friend in a state like I was during the movie and then some. he was one who had also taken 4 hits. He would cry stop breathing and roll about the floor going plus 4 then breathe and be back for a moment over and over. he say says it was great later although i was worried about him at the time. we sat with him for a maybe an hour or more
I relaxed with some more salvia and a bowl as the decline started. I laid on the couch chatting and smelling fresh picked jasmine. My sense of smell was heightened and the jasmine made a feeling of tranquil bliss and created closed eye visuals/fantasy of flowers. Very pleasant! It took a long time to come down there was a lot of great conversation I felt great. At 7 am the next day I was still seeing stuff slightly but feeling good.
I have taken 2c-i a few times since then. Two low doses of 8 once then 12.5 two days later. Very mild but wonderful experiences. one in public watching people at the beach. The other hiking in the sierra back country. The sierra was really great sitting at 12,000 feet lakeside listening to music I thought maybe I should just get a gram of 2c-i and wonder the mtns for a whole summer! one thing I noticed was the dust just from one friend in front of me was choking ... again super heightened smell.
16 mg at the rainbow gathering. That was not so good and I couldn't figure out why. Rainbow gathering with my g/f it should be blissful! I later found out I had food poisoning and it had been setting in that night. The fever made me cold and uncomfortable all night. I had a pretty nice experience stayed very coherent and it kind of left me wanting more because I expected something as powerful as the 2c-i and LSD. I again noted increased sense of smell making cannabis smoke in the tent foul. I noted none of the emotional power of the LSD synergy and certainly not the visuals. The emotional power I can't for sure say because the movie was a catalyst. it may have only partially been the 2c-i and LSD. Then again my other friend spent over an hour in the highly emotional plus 4 moments so maybe the LSD played more of a role who can say?
18 mg at home in a comfortable setting with my g/f. i found no increase in mental or visual effect over 16 mg, only more dizziness during the onset. Again heightened smell was really profound. It was a wonderful experience and we got in some great moments of bliss and over powering love. I had a headache toward the end and for two days after this experience very unusual for me. after this I thought rather take 16 same effect less dizzy and less gas. I wonder what 22 or so would do? just more dizziness and toxic effects?
I have concluded that low dose LSD with 2c-i for myself is a magic combo and I think I prefer it to 2c-i alone. 2c-i alone for me is very coherent and doesn't come with a lot of mental insight but is certainly among my favs due to a good ratio of body load to effect.  In the future I'll make sure to have lots of flowers and fragrant things to experiment with wheee !
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.


Choose a Bitbucket Server personal access token with project admin permissions for the projects that you want Jenkins to build from. If you can't find a suitable token in the list, you can add one. The token you add must be a Bitbucket personal access token
Providing this token will allow your users to automatically set up build triggers when creating Jenkins jobs. They won't be able to use it for anything else.


Welcome to my portfolio site. As you can see, my area of expertise requires no explanation.
Other than that, I'm just a ordinary guy doing extraordinary things.
If you want to see more of my work, or just say hi, get in touch.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut tortor tellus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut tortor tellus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut tortor tellus.


These release notes cover new developer and user-facing incompatibilities, important issues, features, and major improvements.
Added two configuration parameters hbase.rest.threads.max (default 100) and hbase.rest.threads.min (default 2) to configure the thread pool of a REST server.
Before that, the thread pool is not configurable, and it has the default value max threads: 250, min threads: 2.
Added a configuration "hbase.local.dir" which defaults to ${hbase.tmp.dir}/local/. Coprocessor jars, and other local data for region servers are written to this location.
New method is added to Filter which allows filter to specify which CF is needed to it's operation.
public boolean isFamilyEssential(byte[] name);
When new row is considered, only data for essential family is loaded and filter applied. And only if filter accepts the row, rest of data is loaded.
This feature is off by default. You can use Scan.setLoadColumnFamiliesOnDemand() to enable it on a per Scan basis. If not indicated for the Scan, boolean value for "hbase.hregion.scan.loadColumnFamiliesOnDemand" would be used (default to false).
This feature adds a new optional configuration parameter:
hbase.bulkload.staging.dir
This defines the path on DFS that HBase will use to create random/secret directories under. The default location is /tmp/hbase-staging
HFile v2.1 is not readable by RegionServers on 0.92 so default to writing older minor version unless checksums are needed.
Make it so -ROOT- related operations are treated as high priority by QoS, just like .META. ops.
Overriding the configured RPC engine separately for each RPC protocol (hbase.rpc.engine.<protocol class> configuration property) is no longer supported. Only a single RPC engine configuration (hbase.rpc.engine) is used.
The HConnectionManager#deleteConnection(Configuration, boolean) and HConnectionManager#deleteAllConnections(boolean) methods are now deprecated, as the "stopProxy" parameter is no longer used.
In some cases, where clients explicitly manage HConnection instance creation, the number of client RPC connections created may change. This issue changes the HConnection implementation to use it's own managed HBaseClient instance, with its own set of client RPC connections. So explicitly creating multiple HConnection instances (using HConnectionManager.createConnection()) will result in multiple HBaseClient instances. However, for the default behavior, using HTable with a single Configuration, there is no change.
The fix for this issue uses Zookeeper multi functionality (hbase.zookeeper.useMulti). Please refer to hbase-default.xml about this property. There is an addendum fix at HBase-8099 (fixed in 0.94.6). In case you are running on branch < 0.94.6, please patch it with HBase-8099, OR make sure hbase.zookeeper.useMulti is set to false.
Add the ability to apply a Filter to input KVs passed to the Import MapReduce job.
This adds a new CP hook in RegionObserver , postScannerFilterRow() This will be called by the scan flow when the current scanned row is being filtered out by the filter. The filter may be filtering out the row via any of the below scenarios 1. Filter's filterRowKey(byte [] buffer, int offset, int length) returning true so as to exclude this row 2. At the end of the row scan filter's filterRow() returning true 3. Filter's filterRow(List<KeyValue> kvs) removing all the kvs from the passed List making the full row to be filtered out
This hook can be used for doing a fast forward in such a case if the user wants to do so. One can use RegionScanner#reseek(byte[] row) for doing this fast forward
Adds MultiTableInputFormat.
Usage example:
{code} Scan scan1 = new Scan(); scan1.setStartRow(start1); scan1.setStopRow(end1); Scan scan2 = new Scan(); scan2.setStartRow(start2); scan2.setStopRow(end2); MultiTableInputCollection mtic = new MultiTableInputCollection(); mtic.Add(tableName1, scan1); mtic.Add(tableName2, scan2); TableMapReduceUtil.initTableMapperJob(mtic, TestTableMapper.class, Text.class, IntWritable.class, job1); {code}


Hi! I am an assistant professor (i.e. lecturer) in the School of Mathematical Sciences at the University of Nottingham. I work on developing statistical methodology for the analysis of complex scientific problems, particularly those that involve the use of computer simulators.
My aim is to work closely with scientists to help them build tools and methodologies to extract as much information as possible from their data and simulator.
I'll put any new announcements on twitter:


Malware Control vs Net Neutrality
One of the major issues facing Internet Access in the US and other countries right now is Net Neutrality. With access to the Information Superhighway being controlled by a limited number of service providers, the concern is always that they have the ability to censor the Internet by refusing to connect you to websites they deem unfriendly to their business. We've seen another form of this kind of activity years ago when live TV footage of New Year's Eve celebrations in Times Square were digitally edited by one major network to superimpose ads of the network's partners on top of ads of partners of competing networks, so it's not much of a stretch that Internet Service Providers would be tempted to do the same with more serious implications since the Internet is taking over how people get their information away from not only TV, but print sources as well.
However ISP's do have a vested interest in limiting access that has nothing to do with censoring legitimate communication and that special case is malware. Although the industry has now matured enough beyond the "I LOVE YOU" virus days to be able to better respond to such viruses, the fact of the matter is that it still is and will continue to be a reactive industry since what future viruses look like are inherently unpredictable and while standard practices by end users help curtailing the spread of malware, the social engineering aspect of hacking continues to fool people into, say, opening an infected e-mail link that hijacks their computers and forwards that link to everyone in their e-mail inboxes.
ISP and other online service providers have stepped up and implemented their solutions that block infected content or redact problematic portions of content, but a standardized method of preventing malware spread, should these solutions fail, still needs to be adopted. As much as we cherish the openness of the Internet, we need to establish a framework that explicitly lays out the conditions for censoring communications on the grounds of malware prevention and not competitive business or political gain.
Fears that this might turn into something Orwellian are legitimate, but only when end users continue to remain engaged in these Net Neutrality discussion would those fears fail to materialize.


zLab
Expense
<
Date
...
>
Self
Add
Cost:
Description:
Submit
Cancel
(Empty)
Shared
(Empty)
Total: 0
Settings
ShareTo:
Apply