13 Routers in Backbone Js – Learning Backbone Js
So here we are back on backbone js. I got lot of feedback emails from the readers telling me how much they are loving the series. Thanks to all of them.
Ok. In this lesson we will learning routers in backbone js. Routing is pretty awesome in backbone js, if you are ruby on rails developer you will find it pretty simpler to that you are doing in ruby on rails.
Ok lets start from a bare bone code ie:
(function(){
window.App = {
Models: {},
Collections: {},
Views: {},
Router: {}
};
})();
A simple Name spaced model, collection, views and a new one router. So lets define a router ie:
App.Router = Backbone.Router.extend({
});
No just for simplicity lets add a root route ie when page has been loaded..
App.Router = Backbone.Router.extend({
routes: {
'': 'index'
},
index: function(){
$(document.body).append("Index route has been called..");
}
});
So now we need to initiate the router and one thing we need to do is: Enabling backbone history so that backbone start monitoring hash changes in url.
(function(){
window.App = {
Models: {},
Collections: {},
Views: {},
Router: {}
};
App.Router = Backbone.Router.extend({
routes: {
'': 'index'
},
index: function(){
$(document.body).append("Index route has been called..");
}
});
new App.Router;
Backbone.history.start();
})();
So if we open index.html in browser we will see a string as specified in the browser. Something like this. (Please make sure you check url from the screenshot ie file://localhost/Users/mohit/projects/codebeerstartups/routes_in_backbonejs/index.html )
Ok lets move ahead and add a route for hash tag.
App.Router = Backbone.Router.extend({
routes: {
'': 'index',
'show': 'show'
},
index: function(){
$(document.body).append("Index route has been called..");
},
show: function(){
$(document.body).append("Show route has been called..");
},
});
So if we open index.html in browser we will see a string as specified in the browser. Something like this. (Please make sure you check url from the screenshot ie
file://localhost/Users/mohit/projects/codebeerstartups/routes\_in\_backbonejs/index.html#show )
Ok Lets add a better route for show. Think about this. You want to say show/1 or show/2 or show/3 and based upon the number you want to display something. Here is how you can do something like that..
App.Router = Backbone.Router.extend({
routes: {
'': 'index',
'show/:id': 'show'
},
index: function(){
$(document.body).append("Index route has been called..");
},
show: function(id){
$(document.body).append("Show route has been called.. with id equals : " id);
},
});
So if we open index.html in browser we will see a string as specified in the browser. Something like this. (Please make sure you check url from the screenshot ie
file://localhost/Users/mohit/projects/codebeerstartups/routes\_in\_backbonejs/index.html#show/3 )
Ok if I want to specify something like: #download/3/12/23 in this case the above id routes will not work. So to handle that, take a look on this..
App.Router = Backbone.Router.extend({
routes: {
'': 'index',
'show/:id': 'show',
'download/*random': 'download'
},
index: function(){
$(document.body).append("Index route has been called..");
},
show: function(id){
$(document.body).append("Show route has been called.. with id equals : " id);
},
download: function(random){
$(document.body).append("download route has been called.. with random equals : " random);
}
});
So if we open index.html in browser we will see a string as specified in the browser. Something like this. (Please make sure you check url from the screenshot ie
file://localhost/Users/mohit/projects/codebeerstartups/routes\_in\_backbonejs/index.html#download/3/12/23 )
Another usefull route that I feel most of the application need is for search and last is default route in case nothing is specified that one will be called..
App.Router = Backbone.Router.extend({
routes: {
'': 'index',
'show/:id': 'show',
'download/*random': 'download',
'search/:query': 'search',
'*default': 'default'
},
index: function(){
$(document.body).append("Index route has been called..");
},
show: function(id){
$(document.body).append("Show route has been called.. with id equals : " id);
},
download: function(random){
$(document.body).append("download route has been called.. with random equals : " random);
},
search: function(query){
$(document.body).append("Search route has been called.. with query equals : " query);
},
default: function(default){
$(document.body).append("This route is not hanled.. you tried to access: " default);
}
});
You can try this for search url ie:
file://localhost/Users/mohit/projects/codebeerstartups/routes\_in\_backbonejs/index.html#search/my_query
and to check default route here is one example..
file://localhost/Users/mohit/projects/codebeerstartups/routes\_in\_backbonejs/index.html#junk
Thats all for this lesson ie routers in backbone js.
If you are facing any issues. Checkout the source code files at github. I will be creating more and more directories in the same repo regarding each post. Still if you have any doubts contact me or you can comment on the blog post itself.
Use Pluck Instead of Collect in Ruby on Rails.
I have seen lot of people use collect in ruby on rails. For example:
User.first.gifts.collect(&:id)# Bad smell.
Ue pluck in case you just want to get id ie:
User.first.gifts.pluck(:id)
Explanation:
‘pluck’ is on the db level. It will only query the particular field. See this.
When you do:
User.first.gifts.collect(&:id)
You have objects with all fields loaded and you simply get the ‘id’ thanks to the method based on Enumerable.
So:
- if you only need the ‘id’, use ‘pluck’
- if you need all fields, use ‘collect’
- if you need some fields, use ‘select’ and ‘collect’
So keep in mind when to use pluck instead of collect in ruby on rails.
10. Template Helpers in Backbone Js – Learning BackboneJs
Templates make your code look more neat and clean and helps in lot of other ways. So far we are using embeeded templates in our html file ie

In our view we are calling this template like this:
template: _.template( $('#personTemplate').html()),
One good thing over here is we can define a template helpers in backbone js (as a global function) and optimise our code like this.
var template = function(id){
return _.template( $('#' id).html());
};
Now in personView call the template by just calling:
template: template('personTemplate'),
Just defining a simple function can make our life much more easier as we have to call many templates in real our applications. Thats all for this lesson. Will come back soon with a important topic ie name spacing.
If you are facing any issues. Checkout the source code files at github. I will be creating more and more directories in the same repo regarding each post. Still if you have any doubts contact me or you can comment on the blog post itself.
12 Listening to DOM Events in Backbone Js – Learning Backbone Js
So here we are, DOM events in backbone js. I got 8 emails so far requesting for a lesson to understand DOM events in backbone js. To all of them I just replied, I have that thing in my list. Just wait a little and another thing was why you are doing everything on console. I want to something on browser window too. For those folks here is the first episode when we are doing something on browser window. Anyways. Coming back to the lesson. We want to add code for listening to dom events in backbone js. Lets see what we have right now.
- We have Person, PersonView, PeopleCollection, PeopleCollectionView
- App namespace
- Template a personView
- We learnt validations, although we are not using that in our sample codes.
Ok. In this lesson what we are supposed to do:
- You can see list of people
- You can click on any person and edit his/her name
- You can add a new person
- You can delete a person record.
You can see a live demo of final outcome here.
I am starting the application with this code and I hope you can understand all of it very easily. If not then checkout the previous lessons.
(function(){
window.App = {
Models: {},
Collections: {},
Views: {}
};
window.template = function(id){
return _.template( $('#' id).html());
};
// Person Model
App.Models.Person = Backbone.Model.extend({
defaults: {
name: 'Guest User',
age: 30,
occupation: 'worker'
}
});
// A List of People
App.Collections.People = Backbone.Collection.extend({
model: App.Models.Person
});
// View for all people
App.Views.People = Backbone.View.extend({
tagName: 'ul',
render: function(){
this.collection.each(function(person){
var personView = new App.Views.Person({ model: person });
this.$el.append(personView.render().el);
}, this);
return this;
}
});
// The View for a Person
App.Views.Person = Backbone.View.extend({
tagName: 'li',
template: template('personTemplate'),
render: function(){
this.$el.html( this.template(this.model.toJSON()));
return this;
}
});
var peopleCollection = new App.Collections.People([
{
name: 'Mohit Jain',
age: 26
},
{
name: 'Taroon Tyagi',
age: 25,
occupation: 'web designer'
},
{
name: 'Rahul Narang',
age: 26,
occupation: 'Java Developer'
}
]);
var peopleView = new App.Views.People({ collection: peopleCollection });
$(document.body).append(peopleView.render().el);
})();
So very first thing that we want to do is: listening to click event on a particular person record. This is simple to do in PersonView (check inline comments)
// The View for a Person
App.Views.Person = Backbone.View.extend({
tagName: 'li',
template: template('personTemplate'),
// we defined a click event and on any click we can calling a showAlert function
// which is just displaying a alert box.
events: {
'click' : 'showAlert'
},
showAlert: function(){
alert("You clicked me");
},
render: function(){
this.$el.html( this.template(this.model.toJSON()));
return this;
}
});
Lets move to browser and lets see what happens when we click on a person record.
A useful tip: What if you just want to trigger click only for the name of the person not on age or occupation ie some internal element. Pretty easy..
events: {
'click strong' : 'showAlert'
},
Ok, so we got the basic idea how to add dom events in our PersonView. We can add all other events like dblclick, mouseover etc.
Lets move ahead and removing all the code we added for click event etc. Lets first modify our template ie personTemplate and add two button edit and delete.

Lets head back to console to see what we have.
So now we do have two buttons for each row, edit and delete, which don’t do anything but we have them. So now head back to your PersonView and add events for these two one by one.
Edit Button:
For edit we need to do these things:
- Get the previous Content
- Take new user input
- Update the view with new content
Lets add click events and getting new values.
events: {
'click .edit' : 'editPerson'
},
editPerson: function(){
var newName = prompt("Please enter the new name", this.model.get('name'));
this.model.set('name', newName);
},
Trying this on browser.
- Loading the page will display three people record
- Click on edit and lets update the name of the user using promt
- Again call render and append peopleView in dom. ie $(document.body).append(peopleView.render().el);
Cool, So now we want whenever we change the name of the person, it should just update the view of that person. We can do this just by binding a function (also known as listeners). So just simply bind onchange event in PersonView like this:
initialize: function(){
this.model.on('change', this.render, this);
},
So basically we are re-rendering the personView whenever its model is changing. Now hit refresh and try to change the name of the person using prompt. It will just re-render the view automatically :) Cool naa..!!!
But the problem is when you hit cancel.. boom.. Check the code with inline comments…
// The View for a Person
App.Views.Person = Backbone.View.extend({
tagName: 'li',
template: template('personTemplate'),
initialize: function(){
this.model.on('change', this.render, this);
},
events: {
'click .edit' : 'editPerson'
},
editPerson: function(){
var newName = prompt("Please enter the new name", this.model.get('name'));
if (!newName)return; // don't do anything if cancel is pressed..
this.model.set('name', newName);
},
render: function(){
this.$el.html( this.template(this.model.toJSON()));
return this;
}
});
Another way of doing this can be setting validations that we learnt in lesson 4 ie validations in models Also add valdiations by trimming the white spaces etc.
So thats supercool for editing a person name. Now lets move ahead and add a functionality for deleting a record.
Deleting a record:
- Lets first bind a delete click
- Now call a destroy method which will destroy the object
- Add a listener for destroy
- Remove the element from DOM, will be called by listner
Here is the code for that, pretty simple. (Check inline comments..)
// The View for a Person
App.Views.Person = Backbone.View.extend({
tagName: 'li',
template: template('personTemplate'),
initialize: function(){
this.model.on('change', this.render, this);
this.model.on('destroy', this.remove, this); // 3. Adding a destroy announcer..
},
events: {
'click .edit' : 'editPerson',
'click .delete' : 'DestroyPerson' /// 1. Binding a Destroy for the listing to click event on delete button..
},
editPerson: function(){
var newName = prompt("Please enter the new name", this.model.get('name'));
if (!newName)return;
this.model.set('name', newName);
},
DestroyPerson: function(){
this.model.destroy(); // 2. calling backbone js destroy function to destroy that model object
},
remove: function(){
this.$el.remove(); // 4. Calling Jquery remove function to remove that HTML li tag element..
},
render: function(){
this.$el.html( this.template(this.model.toJSON()));
return this;
}
});
I hope are with me without losing the grip of the what happening here.
Now lets do add a new person record.
So lets create a simple form in index.html ie
<form id="addPerson" action="">
<input type="text" placeholder="Name of the person">
<input type="submit" value="Add Person">
</form>
Now we need to do these things:
- Create a newView for newPerson and Read value from the textbox
- Create a new model instance
- Add into the collection
- Render the new collection
So pretty simple: Defining a new view for record
App.Views.AddPerson = Backbone.View.extend({
el: '#addPerson', # referencing the form itself.
events: {
'submit': 'submit' // binding submit click to submit function..
},
submit: function(e){
e.preventDefault(); // preventing default submission..
var newPersonName = $(e.currentTarget).find('input[type=text]').val(); // getting new form values..
var person = new App.Models.Person({ name: newPersonName });// creating a new person object..
this.collection.add(person); // adding this to current collection..
}
});
We are adding person to collection to adding listeners for it.
// View for all people
App.Views.People = Backbone.View.extend({
tagName: 'ul',
initialize: function(){
this.collection.on('add', this.addOne, this); // listeners/anouncers for the collection on add..
},
// refactored render method...
render: function(){
this.collection.each(this.addOne, this);
return this;
},
// called from render method of collection view..
addOne: function(person){
var personView = new App.Views.Person({ model: person });
this.$el.append(personView.render().el);
}
});
var addPersonView = new App.Views.AddPerson({ collection: peopleCollection });
peopleView = new App.Views.People({ collection: peopleCollection });
$(document.body).append(peopleView.render().el);
Hit refresh and now try add, edit and delete. Super Cool ;) Thats all about listening to dom events in backbone js and so called mini project.
If you are facing any issues. Checkout the source code files at github. I will be creating more and more directories in the same repo regarding each post. Still if you have any doubts contact me or you can comment on the blog post itself.
11. Namespacing in Backbone Js – Learning Backbonejs
So far we declared everything as a global function ie Person, PersonView, PersonCollection etc. Namespacing helps us to structure our application in much nicer way and keep the application with limited global variables. Take a look on this.
(function(){
window.App = {
Models: {},
Collections: {},
Views: {}
};
window.template = function(id){
return _.template( $('#' id).html());
};
})();
In the above code we specified App as a name space. You can define what ever you want to as per your project name. And in the App namespace, we specified some other name space ie Models, Collections, Views. You can define templates if you have multiple templates. But for this example, I am keep template as totally different global variable.
Cool. Now lets take a look on our current naming conventions, We have
Person
PersonView
PeopleCollection
PeopleView
// following the same now with namespace..
App.Models.Person
App.Views.PersonView
App.Collections.PeopleCollection
App.Views.PeopleView
// The above code is ok but there are redundancy in the naming which can be improved like this:
App.Models.Person
App.Views.Person
App.Collections.People
App.Views.People
So here is the new main.js file using namespacing in backbone js. (Please check inline comments..)
(function(){ // whole blocked is wrapped into anonymous Jquery function..
window.App = { // defining app name space, You can rename it as per your project name..
Models: {},
Collections: {},
Views: {}
};
window.template = function(id){
return _.template( $('#' id).html());
};
// Person Model
App.Models.Person = Backbone.Model.extend({ // Person model referencing the App namespace model.
defaults: {
name: 'Guest User',
age: 30,
occupation: 'worker'
}
});
// A List of People
// Same here. People is referencing now collection from App namespace
App.Collections.People = Backbone.Collection.extend({
model: App.Models.Person // Change here for Person Reference from App models namespace
});
// View for all people
/// Same here. People is referencing now views from App namespace
App.Views.People = Backbone.View.extend({
tagName: 'ul',
render: function(){
this.collection.each(function(person){
// Change here for Person Reference from App Views namespace
var personView = new App.Views.Person({ model: person });
this.$el.append(personView.render().el);
}, this);
return this;
}
});
// The View for a Person
// Change here for Person Reference from App Views namespace
App.Views.Person = Backbone.View.extend({
tagName: 'li',
template: template('personTemplate'),
render: function(){
this.$el.html( this.template(this.model.toJSON()));
return this;
}
});
// Change here for Person Reference from App Collections namespace
var peopleCollection = new App.Collections.People([
{
name: 'Mohit Jain',
age: 26
},
{
name: 'Taroon Tyagi',
age: 25,
occupation: 'web designer'
},
{
name: 'Rahul Narang',
age: 26,
occupation: 'Java Developer'
}
]);
// Change here for Person Views from App Views namespace
var peopleView = new App.Views.People({ collection: peopleCollection });
$(document.body).append(peopleView.render().el);
})();
Now just refresh your page and you will see same collections views output but in much nicer way. ;) Thats all for Namespacing in backbone js. Stay tuned for next lesson ie. Jquery Dom events. On Click events etc. Super excited for that lesson. ;)
If you are facing any issues. Checkout the source code files at github. I will be creating more and more directories in the same repo regarding each post. Still if you have any doubts contact me or you can comment on the blog post itself.
9. Collection Views in Backbone Js – Learning Backbone Js
In the previous lesson we learned how to use collection in backbone js. Now in this topic we will learn how to generate collection views in backbone js. Lets start coding..
So from previous lesson we have:
// Person Model
var Person = Backbone.Model.extend({
defaults: {
name: 'Guest User',
age: 30,
occupation: 'worker'
}
});
// A List of People
var PeopleCollection = Backbone.Collection.extend({
model: Person
});
// The View for a Person
var PersonView = Backbone.View.extend({
tagName: 'li',
template: _.template( $('#personTemplate').html()),
initialize: function(){
this.render();
},
render: function(){
this.$el.html( this.template(this.model.toJSON()));
}
});
var peopleCollection = new PeopleCollection([
{
name: 'Mohit Jain',
age: 26
},
{
name: 'Taroon Tyagi',
age: 25,
occupation: 'web designer'
},
{
name: 'Rahul Narang',
age: 26,
occupation: 'Java Developer'
}
]);
- Person Model
- Person View
- Person Collection
So lets start collection views in backbone js. So we have person view, but the problem is we dont have collection view, a view that collects all smallers view and make it a complete giant view. Lets define one:
// View for all people
var PeopleView = Backbone.View.extend({
tagName: 'ul'
});
So we defined a PeopleView and as we are using “li” tag for small view is PersonView so defined tagName: “ul” in PeopleView. So we need to define a render method which should be these functionalities.
- Loop over all the person objects
- Should call render for the person objects
- Should display a collection as HTML
So lets just define our render method and implement all of the above functionality one by one.
// View for all people
var PeopleView = Backbone.View.extend({
tagName: 'ul',
render: function(){
// must do certain things as specified above.
//Loop over all the person objects
//Should call render for the person objects
//Should display a collection as HTML
}
});
Lets create a new object ie peopleView and see few things on chrome developer tools console. I have added initialize function in CollectionView and here is the code for main.js
// Person Model
var Person = Backbone.Model.extend({
defaults: {
name: 'Guest User',
age: 30,
occupation: 'worker'
}
});
// A List of People
var PeopleCollection = Backbone.Collection.extend({
model: Person
});
// View for all people
var PeopleView = Backbone.View.extend({
tagName: 'ul',
initialize: function(){
console.log(this.collection);
},
render: function(){
}
});
// The View for a Person
var PersonView = Backbone.View.extend({
tagName: 'li',
template: _.template( $('#personTemplate').html()),
initialize: function(){
this.render();
},
render: function(){
this.$el.html( this.template(this.model.toJSON()));
}
});
var peopleCollection = new PeopleCollection([
{
name: 'Mohit Jain',
age: 26
},
{
name: 'Taroon Tyagi',
age: 25,
occupation: 'web designer'
},
{
name: 'Rahul Narang',
age: 26,
occupation: 'Java Developer'
}
]);
// on console
// var peopleView = new PeopleView({ collection: peopleCollection });
Here is the result from console:
- So what I can see is three objects in the collection view
- Lots of functions that can be applied on collection views.
So lets move ahead and use each function and loop over the collection view. Lets for now just run a loop.
// loop over all the person objects in the peopleCollection
render: function(){
this.collection.each(function(person){
console.log(person);
});
}
So first step of looping is done. Now lets move ahead of second step ie: Create a view for each person.
// loop over all the person objects in the peopleCollection
render: function(){
this.collection.each(function(person){
var personView = new PersonView({ model: person });
console.log(personView.el);
});
}
So far its fine. Now just hold a sec and checkout this carefully. “this” inside the loop lost the reference of the actual collection. Try out these two things to understand it a better way and checkout inline comments.
// loop over all the person objects in the peopleCollection
render: function(){
console.log(this); // reference to collection object.. Pretty useful..
this.collection.each(function(person){
var personView = new PersonView({ model: person });
});
}
//OR
// loop over all the person objects in the peopleCollection
render: function(){
this.collection.each(function(person){
var personView = new PersonView({ model: person });
console.log(this); // referencing to global window object and its pretty useless..
});
}
So in order to maintain the reference use this:(checkout inline comments.)
// loop over all the person objects in the peopleCollection
render: function(){
this.collection.each(function(person){
var personView = new PersonView({ model: person });
console.log(personView.el);
}, this); // at this point we are passing context.. Underscore provides this functionality..
}
So now we have a reference of actual collection view inside the loop.. So now just lets complete the third task ie rendering the whole collection list.
var PeopleView = Backbone.View.extend({
tagName: 'ul',
render: function(){
this.collection.each(function(person){
var personView = new PersonView({ model: person });
this.$el.append(personView.el); // adding all the person objects.
}, this);
}
});
// on console
//var peopleView = new PeopleView({ collection: peopleCollection });
//peopleView.render();
//peopleView.el;
Here is console output:
A quick tip: Always return this from your render method in order to do chaining. For example: person.render.el instead of running two commands person.render and then person.el.
So lets use this tip finish up the lesson. So currently we have: (checkout inline comments.)
// Person Model
var Person = Backbone.Model.extend({
defaults: {
name: 'Guest User',
age: 30,
occupation: 'worker'
}
});
// A List of People
var PeopleCollection = Backbone.Collection.extend({
model: Person
});
// View for all people
var PeopleView = Backbone.View.extend({
tagName: 'ul',
render: function(){
this.collection.each(function(person){
var personView = new PersonView({ model: person });
this.$el.append(personView.el);
}, this);
}
});
// The View for a Person
var PersonView = Backbone.View.extend({
tagName: 'li',
template: _.template($('#personTemplate').html()),
initialize: function(){
this.render();
},
render: function(){
this.$el.html( this.template(this.model.toJSON()));
}
});
var peopleCollection = new PeopleCollection([
{
name: 'Mohit Jain',
age: 26
},
{
name: 'Taroon Tyagi',
age: 25,
occupation: 'web designer'
},
{
name: 'Rahul Narang',
age: 26,
occupation: 'Java Developer'
}
]);
Lets do certain things: (checkout inline comments.)
- Remove initialize function from PersonView in order to use chaining and manually call render.
- Returning this from PersonView render method
- Returning this from CollectionView render
Adding whole list on dom for demo purpose.
// Person Model var Person = Backbone.Model.extend({ defaults: { name: 'Guest User', age: 30, occupation: 'worker' } }); // A List of People var PeopleCollection = Backbone.Collection.extend({ model: Person }); // View for all people var PeopleView = Backbone.View.extend({ tagName: 'ul', render: function(){ this.collection.each(function(person){ var personView = new PersonView({ model: person }); this.$el.append(personView.render().el); // calling render method manually.. }, this); return this; // returning this for chaining.. } }); // The View for a Person var PersonView = Backbone.View.extend({ tagName: 'li', template: _.template($('#personTemplate').html()), ////////// initialize function is gone from there. So we need to call render method manually now.. render: function(){ this.$el.html( this.template(this.model.toJSON())); return this; // returning this from render method.. } }); var peopleCollection = new PeopleCollection([ { name: 'Mohit Jain', age: 26 }, { name: 'Taroon Tyagi', age: 25, occupation: 'web designer' }, { name: 'Rahul Narang', age: 26, occupation: 'Java Developer' } ]); var peopleView = new PeopleView({ collection: peopleCollection }); $(document.body).append(peopleView.render().el); // adding people view in DOM.. Only for demo purpose...
So lets just run this code and see what we have:
Boom.. A complete list of person displayed on page. Pretty nice.. ;) So now if you are thing that so far so much code just to display a list. Hold on.. This is how we got the whole structure of the application. Now to add Jquery events all we need to call functions and add some new minor functions. Trust me once you start checking out jquery events. You will just fell in love with backbone.
So thats all in collection views in backbone js. Lets me know how to feeling out the whole series.
If you are facing any issues. Checkout the source code files at github. I will be creating more and more directories in the same repo regarding each post. Still if you have any doubts contact me or you can comment on the blog post itself.
7. How to Improve Templates in Backbone Js – Learning Backbone Js
So in the previous lesson we learnt how to create templates. It good but it can be improved further using external templates. So in the lesson we will learn how to improve templates in backbone js. So from previous episode we have this PersonView class
var Person = Backbone.Model.extend({
defaults: {
name: 'Guest Worker',
age: 23,
occupation: 'worker'
}
});
var PersonView = Backbone.View.extend({
tagName: 'li',
my_template: _.template(" () - "),
initialize: function(){
this.render();
},
render: function(){
this.$el.html( this.my_template(this.model.toJSON()));
}
});
// calls from console
// var person = new Person; // a person object created...
// var personView = new PersonView({ model: person });
// personView.el // ---->; You can call this method and it will display the view..
//$(document.body).html(personView.el); // --->; This will add output to the dom. This is not ideal but good enough for demo.
So now we will take the template html code out into a external file and then call it here in out template. So lets use index.html file and define a template there. So just paste this code in your index.html file

We have defined this script as “text/template” so that browser don’t execute this as normal javascript code. So once we have defined the template we can call this external template in our PersonView file using jquery. Here is the new PersonView Class.
var Person = Backbone.Model.extend({
defaults: {
name: 'Guest User',
age: 23,
occupation: 'worker'
}
});
var PersonView = Backbone.View.extend({
tagName: 'li',
template: _.template( $('#personTemplate').html()),
initialize: function(){
this.render();
},
render: function(){
this.$el.html( this.template(this.model.toJSON()));
}
});
// calls from console
// var person = new Person; // a person object created...
// var personView = new PersonView({ model: person });
// personView.el // ---->; You can call this method and it will display the view..
//$(document.body).html(personView.el); // --->; This will add output to the dom. This is not ideal but good enough for demo.
Pretty nice right. Now lets what we have on chrome developer tools.
Similarly what we had in previous lesson. Nice and cool. So this makes our life much more easier to define the templates in an external file and then just call it when we need it. And we can structure out html code of the template pretty easily.
Thats all for this lesson. Now thing about one object. How about displaying multiple objects. “ul” and “li” tags. Good thing is backbone js has collection view for that. Lets see that in next lesson.
If you are facing any issues. Checkout the source code files at github. I will be creating more and more directories in the same repo regarding each post. Still if you have any doubts contact me or you can comment on the blog post itself.
Clear Your Logs in Development Automatically When They Are Too Large in Ruby on Rails
If you want to clear your logs in development automatically when they are too large in ruby on rails, here is a simple way to do that.
# config/initializers/clear_logs.rb
# This snippet simply clears your logs when they are too large.
# Large logs mean looooong search in TextMate. You know it :)
# Every time you run rails server or rails console it checks log sizes
# and clears the logs for you if necessary.
if Rails.env.development?
MAX_LOG_SIZE = 2.megabytes
logs = File.join(Rails.root, 'log', '*.log')
if Dir[logs].any? {|log| File.size?(log).to_i > MAX_LOG_SIZE }
$stdout.puts "Runing rake log:clear"
`rake log:clear`
end
end
8. Collections in Backbone Js – Learning Backbone Js
So from previous lessons we know how to create a Person model, We know how to create PersonView and we how to define inline and external templates. In this lesson we will learn collections in backbone js and in lesson we will learn how define views for collections in backbone js. So here is the code that we have from previous lesson.
var Person = Backbone.Model.extend({
defaults: {
name: 'Guest User',
age: 23,
occupation: 'worker'
}
});
var PersonView = Backbone.View.extend({
tagName: 'li',
template: _.template( $('#personTemplate').html()),
initialize: function(){
this.render();
},
render: function(){
this.$el.html( this.template(this.model.toJSON()));
}
});
// calls from console
// var person = new Person; // a person object created...
// var personView = new PersonView({ model: person });
// personView.el // ---->; You can call this method and it will display the view..
//$(document.body).html(personView.el); // --->; This will add output to the dom. This is not ideal but good enough for demo.
Now from above code if we want to create a new person and add that model in view that it will become messy and it will go so much messy if we have to define some 10 people records. Thanks to backbone that we have collections in backbone js. So here is how we define collections in backbone js.
// A List of People
var PeopleCollection = Backbone.Collection.extend({
model: Person
});
So we tell collection that what kind of objects we are dealing with by specifying model attribute. In this case we have PeopleCollection so we have Person defined there. So lets see how to can use it. So we have:
// Person Model
var Person = Backbone.Model.extend({
defaults: {
name: 'Guest User',
age: 30,
occupation: 'worker'
}
});
// A List of People
var PeopleCollection = Backbone.Collection.extend({
model: Person
});
// The View for a Person
var PersonView = Backbone.View.extend({
tagName: 'li',
template: _.template( $('#personTemplate').html()),
initialize: function(){
this.render();
},
render: function(){
this.$el.html( this.template(this.model.toJSON()));
}
});
// calls from console
// var person = new Person;
// var personView = new PersonView({ model: person });
// var peopleCollection = new PeopleCollection();
// peopleCollection.add(person);
// var person2 = new Person({name: "Mohit Jain", age: 25, occupation: "Software Developer"});
// var personView2 = new PersonView({ model: person2 });
// peopleCollection.add(person2);
// peopleCollection
// peopleCollection.toJSON(); // --> returns a list of data attributes
Lets see what we have on console.
Another way to adding data in collections is:
// Person Model
var Person = Backbone.Model.extend({
defaults: {
name: 'Guest User',
age: 30,
occupation: 'worker'
}
});
// A List of People
var PeopleCollection = Backbone.Collection.extend({
model: Person
});
// The View for a Person
var PersonView = Backbone.View.extend({
tagName: 'li',
template: _.template( $('#personTemplate').html()),
initialize: function(){
this.render();
},
render: function(){
this.$el.html( this.template(this.model.toJSON()));
}
});
var peopleCollection = new PeopleCollection([
{
name: 'Mohit Jain',
age: 26
},
{
name: 'Taroon Tyagi',
age: 25,
occupation: 'web designer'
},
{
name: 'Rahul Narang',
age: 26,
occupation: 'Java Developer'
}
]);
So you can loop over it. Do so many things as collections has so much data stored in it with respect to model objects. It may seem like we can store in the form of array but collections have their collections view and that make them pretty powerful. Lets talk about collection views in next lesson and that will help you to understand the importance of collections.
If you are facing any issues. Checkout the source code files at github. I will be creating more and more directories in the same repo regarding each post. Still if you have any doubts contact me or you can comment on the blog post itself.


@import _root_.musicWebApp.models.{Recording, Performer, Soloist, Ensemble, Conductor}
@import _root_.musicWebApp.controllers.PerformerData
@import helper._
@(pOpt: Option[Performer], rs: Seq[Recording], performerForm: Form[PerformerData])(implicit messages: Messages)
@implicitField = @{ FieldConstructor(myFieldConstructorTemplate.f) }
@pId = @{ if( pOpt.isDefined ) pOpt.get.id.get else -1L }
@pName = @{ if( pOpt.isDefined ) pOpt.get.name else "" }
@pPerformerType = @{ if( pOpt.isDefined ) pOpt.get.performerType.toString else "" }
@pRecordings = @{ if( pOpt.isDefined ) pOpt.get.recordings else Seq.empty }
@pHasRecordings = @{ pOpt.isDefined && pOpt.get.hasRecordings }
@main("Classic Music Service") {
@if( pOpt.isDefined ) {
Performer: @{pName} (@{pPerformerType})
} else {
New Performer
}
@form(action = musicWebApp.controllers.routes.WebApplication.performerCreateOrUpdate(pId), 'class -> "form-horizontal", 'role -> "form") {
@input(performerForm("name"), '_label -> "Name", '_showConstraints -> false, '_showErrors -> true,
'placeHolder -> "Name", 'labelColSm -> 2, 'inputColSm -> 3) { (id, name, value, args) =>
}
@select(field = performerForm("performerType"),
options = options(Map( "" -> "Select a Performer Type",
Soloist.toString -> Soloist.toString,
Ensemble.toString -> Ensemble.toString,
Conductor.toString -> Conductor.toString)),
'id -> "selectPerformerType",
'_label -> "Performer Type", '_showConstraints -> false, '_showErrors -> true,
'placeHolder -> "Performer Type", 'labelColSm -> 2, 'inputColSm -> 3, 'class -> "form-control")
}
@if( pHasRecordings ) {
×
You cannot delete this Performer as long as Recordings are assigned to him. First delete the recordings of this performer. Then you can delete the performer.
}
Recordings assigned to this Performer
@if( pHasRecordings ) {
@for( r <- pRecordings ) {
@r.title, @r.composer, @r.year
}
} else {
--- No Recordings assigned to this Performer ---
}
Delete selected Recordings
Recordings not assigned to this Performer
@if( !rs.isEmpty ) {
@for( r <- rs ) {
@r.title, @r.composer, @r.year
}
} else {
--- No Recordings left to be assigned to this Performer ---
}
Add selected Recordings
}


Class AMDShaderExplicitVertexParameter
- java.lang.Object
-
- org.lwjgl.vulkan.AMDShaderExplicitVertexParameter
-
public final class AMDShaderExplicitVertexParameter extends java.lang.Object
When theVK_AMD_shader_explicit_vertex_parameter
device extension is enabled the application can pass a SPIR-V module toCreateShaderModule
that uses theSPV_AMD_shader_explicit_vertex_parameter
SPIR-V extension.When the
VK_AMD_shader_explicit_vertex_parameter
device extension is enabled theCustomInterpAMD
interpolation decoration can also be used with fragment shader inputs which indicate that the decorated inputs can only be accessed by the extended instructionInterpolateAtVertexAMD
and allows accessing the value of the inputs for individual vertices of the primitive.When the
VK_AMD_shader_explicit_vertex_parameter
device extension is enabled inputs can be also decorated with theCustomInterpAMD
interpolation decoration, including fragment shader inputs that are signed or unsigned integers, integer vectors, or any double-precision floating-point type. Inputs decorated withCustomInterpAMD
can only be accessed by the extended instructionInterpolateAtVertexAMD
and allows accessing the value of the input for individual vertices of the primitive.The
BaryCoordNoPerspAMD
decoration can be used to decorate a fragment shader input variable. This variable will contain the (I,J) pair of the barycentric coordinates corresponding to the fragment evaluated using linear interpolation at the pixel's center. The K coordinate of the barycentric coordinates can be derived given the identity I + J + K = 1.0.The
BaryCoordNoPerspCentroidAMD
decoration can be used to decorate a fragment shader input variable. This variable will contain the (I,J) pair of the barycentric coordinates corresponding to the fragment evaluated using linear interpolation at the centroid. The K coordinate of the barycentric coordinates can be derived given the identity I + J + K = 1.0.The
BaryCoordNoPerspCentroidAMD
decoration can be used to decorate a fragment shader input variable. This variable will contain the (I,J) pair of the barycentric coordinates corresponding to the fragment evaluated using linear interpolation at each covered sample. The K coordinate of the barycentric coordinates can be derived given the identity I + J + K = 1.0.The
BaryCoordPullModelAMD
decoration can be used to decorate a fragment shader input variable. This variable will contain (1/W, 1/I, 1/J) evaluated at the pixel center and can be used to calculate gradients and then interpolate I, J, and W at any desired sample location.The
BaryCoordSmoothAMD
decoration can be used to decorate a fragment shader input variable. This variable will contain the (I,J) pair of the barycentric coordinates corresponding to the fragment evaluated using perspective interpolation at the pixel's center. The K coordinate of the barycentric coordinates can be derived given the identity I + J + K = 1.0.The
BaryCoordSmoothCentroidAMD
decoration can be used to decorate a fragment shader input variable. This variable will contain the (I,J) pair of the barycentric coordinates corresponding to the fragment evaluated using perspective interpolation at the centroid. The K coordinate of the barycentric coordinates can: be derived given the identity I + J + K = 1.0.The
BaryCoordSmoothCentroidAMD
decoration can be used to decorate a fragment shader input variable. This variable will contain the (I,J) pair of the barycentric coordinates corresponding to the fragment evaluated using perspective interpolation at each covered sample. The K coordinate of the barycentric coordinates can: be derived given the identity I + J + K = 1.0.
-
-
Field Summary
Fields Modifier and Type Field and Description static java.lang.String
VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME
The extension name.static int
VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION
The extension specification version.
-
-
-
Field Detail
-
VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION
public static final int VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION
The extension specification version.- See Also:
- Constant Field Values
-
VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME
public static final java.lang.String VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME
The extension name.- See Also:
- Constant Field Values
-
-


Variant Characterization & Actionability Report
Type a variant and enter or click the Update annotation button. The syntax of a variant is chromosome, position, reference allele, and alternate allele, concatenated with a colon. Strand is assumed to be plus. For example, chr17:39724004:C:G
Update annotation
I. Gene and Variant Characteristics
II. Variant Population Frequency
III. Variant Disease-Causing Potential
IV. Variant Driver/Oncogenic Potential
V. Variant Distribution & Protein Structure
VI. Variant Level Evidence of Actionability


Stephen Diehl
Index
Blog
Writings
Talks
Contact Me
PGP Key
Bitcoin
Github
Twitter
A Haskell Reading List
Here is a list of papers and writings of what I consider are essential Haskell reading.
Haskell 2010 Language Specification
Typeclassopedia
The Essence of Functional Programming
How to make ad-hoc polymorphism less ad hoc
Monads for functional programming
Monad Transformers: Step-By-Step
Some interesting features of Haskell’s type system
Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire
Applicative Programming with Effects
The Algebra of Algebraic Datatypes
Kleisli Arrows of Outrageous Fortune
Theorems for free!
Beautiful Concurrency
Typed Tagless Interpretations
Imperative Functional Programming
Reverse Engineering Machines with the Yoneda Lemma
From Monoids to Monads
Tackling the awkward squad
Functional Reactive Animation
Flipping Arrows in coBurger King
Duality for Haskellers
Parallel and Concurrent Programming in Haskell
Beautiful Differentiation
Typed Tagless Interpretations and Typed Compilation
Species and Functors and Types, Oh My!
The Implementation of Functional Programming Languages
Datatype-generic Programming in Haskell
Giving Haskell a Promotion
Faking It: Simulating Dependent Types in Haskell
OutsideIn(X): Modular Type Inference with Local Assumptions


Date: May 2018
Publisher: Google Summer of Code 2018
Location: Geneva, Switzerland
Links:
PROJECT
CERNBox is a cloud storage synchronisation service for CERN users: it allows syncing and sharing files on all major mobile and desktop platforms (Linux, Windows, MacOSX, Android, iOS) aiming to provide offline availability to any data stored in the CERN EOS infrastructure. CERNBox is based on ownCloud, a cloud sync and share platform written in PHP following a Model-View-Controller architecture software pattern.
This project aims to provide a prototype of a new web UI for CERNBox that will provide an immersive user experience. To achieve this, a milestone of this project is to provide offline manipulation of the data from the browser. The use case is that when a user goes offline in his browser, he could continue to work on the document and perform actions like renaming and browsing his files. Once network is re-established, the application will reconcile the changes in the browser cache with the server, offering a non-disruptive work environment for the end-user.


Anping Yachting Festival in SW Taiwan to showcase nearly 50 yachts
Organizer says Anping event being presented as first yacht festival to be held in Taiwan
by George Liao(Tainan Anping Yachting Festival Facebook photo)
TAIPEI (Taiwan News) — The 2019 Tainan Anping Yachting Festival will take place at Anping Argo Marina in Tainan's Anping District from Nov. 22–24, with nearly 50 yachts on display worth a total of NT$500 million (US$160 million), including the Azimut S6, UDN reported on Wednesday (Nov. 20).
The organizer of the yacht show, the Argo Yacht Club, said that in order to differentiate it from the annual Taiwan International Boat Show in Kaohsiung, the Anping event will be presented as the first yacht festival to be held in Taiwan, according to UDN.
In addition to the yacht show, there will be a grassy area at the venue set aside for food trucks, a market, and a playground. Concerts, flash mob performances, and picnic parties will also take place during the show, according to the yacht club’s Facebook page.
Activities and facilities in the grassy area are free of charge. However, tickets will be required to visit the yachts. However, related information indicates that all the tickets have been sold.
For more information about the yacht show, refer to its Facebook page.
(台南安平遊艇展 Tainan Anping yachting Festival/Facebook video)


Important note: this program is doing what it promises but the programming itself is of very poor quality and for demonstration purposes only. Never ever use this program as source for your own programs because there are a lot of conversions to get it run.
Get more information about this program on
my webpage JSON web encryption JWE with algorithms RSA-OAEP-256 and A256GCM
collecting data for the payload:
Enter a subject:
Enter an issuer:
Enter the data to encrypt:
Enter an expire time in seconds:
collecting data for the payload:
Enter the key algorithm:
Enter the encryption algorithm:
Insert the Public Key you received (PEM encoding):
press the encrypt button to proceed:
This is the payload to encrypt in JSON-encoding:
This is the JWT header in JSON-encoding:
Technical note: this program uses the RSA OAEP-256 key encryption algorithm with a 2048 bit long key and an AES-256-GCM payload encryption.


title = "Web Development - Web Design - Social Media - Domain Management" url = "/" layout = "octaskin" description = "Business rehabilitation to a profitable path!" is_hidden = 0 == {% partial "pages-home/slideshow" %} {% partial "pages-home/feature" %} {% partial "pages-home/utility" %} {% partial "pages-home/mainpage" %} {% partial "pages-home/who-we-are" %} {% partial "pages-home/extension" %}


Coverage report:
60%
Hot-keys on this page
n
s
m
x
c
change column sorting
Module
statements
missing
excluded
coverage
Total
1096
433
0
60%
bag/admin.py
1
0
0
100%
bag/contexts.py
64
3
0
95%
bag/models.py
1
0
0
100%
bag/urls.py
3
0
0
100%
bag/views.py
36
5
0
86%
checkout/admin.py
30
0
0
100%
checkout/apps.py
5
0
0
100%
checkout/forms.py
43
11
0
74%
checkout/models.py
113
6
0
95%
checkout/signals_order.py
9
1
0
89%
checkout/signals_preorder.py
9
1
0
89%
checkout/templatetags/checkout_tools.py
5
0
0
100%
checkout/urls.py
4
0
0
100%
checkout/views.py
176
125
0
29%
checkout/webhook_handler.py
83
67
0
19%
checkout/webhooks.py
28
19
0
32%
furnitart/settings.py
70
21
0
70%
furnitart/urls.py
5
0
0
100%
home/admin.py
1
0
0
100%
home/models.py
1
0
0
100%
home/urls.py
3
0
0
100%
home/views.py
20
8
0
60%
products/admin.py
8
0
0
100%
products/forms.py
13
6
0
54%
products/models.py
44
14
0
68%
products/urls.py
3
0
0
100%
products/views.py
254
139
0
45%
profiles/admin.py
1
0
0
100%
profiles/forms.py
18
1
0
94%
profiles/models.py
21
1
0
95%
profiles/urls.py
3
0
0
100%
profiles/views.py
21
5
0
76%
No items found using the specified filter.


Item 12.
Use space with n to find the next occurrence of the last searched-for text string. If you searched for the word "chapter" and did not find the correct chapter, you could use space with n to search for the word "chapter" again.
Use space with n to find the next occurrence of the last searched-for text string. If you searched for the word "chapter" and did not find the correct chapter, you could use space with n to search for the word "chapter" again.


{% extends "base.html" %} {% block content %}
Please review the image for the following poem.
Poem Id: {{ images.id }}
Poem: {{ images.poem }}
Keyword: {{ images.keyword }}
Marked: {{ numbers.marked }} Confirmed: {{ numbers.confirmed }} Denied: {{ numbers.denied }}


Dêbno Marathon
Dêbno POL
Website: www.maratondebno.pl
Race Winners
(46 runnings, 42 runnings as a marathon)
2:12:53 2:33:56 2:13:16 2:44:53 2:15:00 2:39:19 2:35:42 2:33:42 15 Apr
2007
2:15:31
2:40:46
09 Apr
2006
2:14:11
2:36:41
10 Apr
2005
2:14:47
2:39:53
04 Apr
2004
2:12:13
2:33:27
13 Apr
2003
2:14:48
2:32:09
14 Apr
2002
2:13:27
2:37:39
08 Apr
2001
2:12:27
2:37:02
16 Apr
2000
2:15:28
2:34:22
17 Oct
1999
2:16:19
2:36:36
1991-1998
---
---
10 Jun 1990
2:16:04
2:40:02
27 Aug
1989
2:15:00
2:38:20
27 Mar
1988
2:12:26
2:32:23
05 Apr
1987
2:14:15
2:37:44
06 Apr
1986
2:10:34
2:32:30
19 May
1985
2:14:26
2:39:27
06 May 1984
2:12:49
2:36:31
01 May
1983
2:14:48
2:38:51
25 Apr
1982
2:14:49
2:40:46
24 May
1981
2:14:17
2:52:35
27 Apr 1980
2:13:30
27 May 1979
2:16:09.8
2:41:56.3
28 May 1978
2:15:27.0
26 Jun 1977
2:13:43.8
16 May 1976
2:12:19.8
15 Jun 1975
2:12:34.2
16 Jun 1974
2:16:48.0
17 Jun 1973
2:16:07.4
24 Jun 1972
2:18:35.8
04 Jul 1971
2:21:09.8
28 Jun 1970
2:22:45
22 Jul 1969
2:21:17.4
1968
1:20:50
1967
1:06:39
1966
1:08:41
* The race distance for 1966-67 was a half marathon; the race distance for 1968 was 26.5 km. The 1986 course was
probably short. The 2010 race was postponed from 11 Apr due
to death of president Lech Kaczynski.
07 Apr
2019
2:16:47
Boniface Wambua Nduva-2
2:34:51
Aleksandra Brzezinska (POL)
08 Apr
2018
2:14:48
David Kiprono Metto (KEN)
2:39:06
Iryna Somava (BLR)
02 Apr
2017
2:16:47
Boniface Wambua Nduwa (KEN)
2:40:05
Kellen Waithira Mukami (KEN)
03 Apr
2016
2:11:56
Cosmas Kyeva Mutuku-2
2:33:13
Stella Barsosio Chepngetich (KEN)
12 Apr
2015
2:14:28
Felix Kipkorir Kangogo (KEN)
2:44:52
Rebecca Chepchirchir Korir (KEN)
06 Apr
2014
2:09:57
Cosmas Kyeva Mutuku (KEN)
2:43:02
Arleta Meloch (POL)
(nc)
07 Apr
2013
2:13:48
Desta Beriso Morhama (ETH)
2:40:03
Agnieszka Gortel (POL)
(nc)
15 Apr
2012
David Kiprono Metto (KEN)
(nc)
Volha Mazuronalk (BLR)
10 Apr
2011
Ivan Babarika (UKR)
(nc)
Mariya Butakova (BLR)
(nc)
24 Oct
2010
Joel Komen Kosgei (KEN)
(nc)
Dorota Gruca (POL)
(nc)
19 Apr
2009
2:14:29
Mathew Kibowen Kosgei (KEN)
(nc)
Edyta Lewandowska (POL)
(nc)
13 Apr
2008
2:10:59
Yuriy Hychun (UKR) (nc)
Monika
Drybulska-2 (nc)
Pawal Ochal (POL) (nc)
Natalia Kulesz (BLR) (nc)
Rafal Wojcik-2 (nc)
Elena Mazovka (BLR) (nc)
Rafal Wojcik (POL) (nc)
Galina Karnatevicz (BLR) (nc)
Waldemar Glinka-2 (nc)
Monika Drybulska (POL) (nc)
Waldemar Glinka (POL) (nc)
Grazina Syrek-2 (nc)
Samuel Tangus (KEN) (nc)
Grazina Syrek (POL) (nc)
Miroslaw Plawgo (POL) (nc)
Elzbieta Jarosz (POL) (nc)
Piotr Poblocki (POL)
Alena Peterkova (CZE) (nc)
Andrzej Nowak (POL)
Krystyna Kuta-2
not held
not held
Józef Kazanecki (POL)
(nc)
Krystyna Kuta (POL)
(nc)
Marek Deputat (POL)
(nc)
Krystyna Chyliñska (POL)
(nc)
Viktor Sawicki (POL)
(nc)
Wanda Panfil (POL)
(nc)
Martin Vrabel (SVK)
(nc)
Ewa Szydlowska (POL)
(nc)
Antoni Niemczak (POL)
(nc)
Renata Walendziak-2
(nc)
Ryszard Misiewicz (POL)
(nc)
Renata Walendziak (POL)
(nc)
Wojciech Ratkowski (POL)
(nc)
Lyudmila Melicherova (SVK)
(nc)
Jerzy Kowol (POL)
(nc)
Jarmila Urbanova (CZE) (nc)
Ryszard Kopijasz (POL) (nc)
Vlasta Rulcova (CZE) (nc)
Ryszard Marczak-2 (nc)
Anna Beltowska-Król (POL)
Zbigniew Pierzynka-2 (nc)
.
Zbigniew Pierzynka (POL) (nc)
Christa Vahlensieck (GER)
Ryszard Marczak (POL) (nc)
Kazimierz Orzel (POL) (nc)
Leonid Moseyev (RUS) (nc)
Ron Hill (ENG) (nc)
Edward Legowski (POL) (nc)
Hans-Joachim Truppel (GER) (nc)
Edward Stawiarz-2
Edward Stawiarz (POL) (nc)
Steffan Gottert (GER)
Yuriy Velikorodnikh (RUS)
Zdzislaw Bogusz-3
Zdzislaw Bogusz-2
Zdzislaw Bogusz (POL)
(nc) => national champion
2017 Dominika Stelmach was the national champion (2nd place, 2:41:13)
2012 Yared Segumo was the national champion (3rd place, 2:15:19)
2011 Blazej Brzezinski was the national champion (2nd place, 2:14:16)
2011 Arleta Meloch was the national champion (2nd place, 2:46:43)
2010 Radoslaw Dudycz was the national champion (2nd place, 2:16:15)
2009 Radoslaw Dudycz was the national champion (2nd place, 2:14:58)
2008 Henryk Szost was the national champion (2nd place, 2:11:59)
2007 Arleta Meloch was the national champion (2nd place, 2:41:46)
2006 Ewa Brych was the national champion (4th, 2:42:51)
2005 Janina Malska was the national champion (3rd place, 2:41:43)
2002 Jan Bialk was the national champion (2nd place, 2:14:01)
2000 Janina Malska was the national champion (3rd place, 2:44:07)
1987 Bogumil Kus was the national champion (2nd place, 2:14:22)
1984 Gabriela Gorzynska was the national champion (2nd place, 2:39:21)
1983 Renata Walendziak-Pentlinowska was the national champion (2nd place, 2:40:49)
1982 Anna Krol-Beltowska was the national champion (2nd place, 2:44:28)
1976 Kazimierz Orzel was the national champion (4th place, 2:13:19)
1975 Edward Legowski was the national champion (2nd place, 2:13:26)
1973 Edward Stawiarsz was the national champion (3rd place, 2:22:02.4)
Most Wins
(1966-date)
Men
3
Zdzislaw Bogusz (POL)
1966-68
Women
2
Renata Walendziak (POL)
1985-86
.
Krystyna Kuta (POL)
1990,1999
.
Grazina Syrek (POL)
2002-03
Monika Drybulska (POL)
2004,2008
Prize Money
(ADR qualified runners)
Year Men Women Total 2017 $11,355 $10,595 $21,950 2016 12,865 7,770 20,635 2015 13,450 7,905 21,355 2014 19,085 11,845 30,930 2013 14,845 11,135 25,980 2012 14,990 9,370 24,360 2011 17,190 10,605 27,795 2010 13,185 8,610 21,795 2009 14,230 10,125 24,355 2008 17,600 9,150 26,750 2007 12,715 8,300 21,015 2006 11,165 7,285 18,450 2005 9,835 6,345 16,180 2004 9,940 5,100 15,040 2003 12,250 5,000 17,250 2002 7,735 6,285 14,020 2001 8,000 6,500 14,500 2000 5,475 5,475 10,950 Sums $225,910 $147,400 $373,310
Race Time Bias (sec/km)
Year Men Women 2012 -1.2 n/c .... 2009 -4.9 n/c 2008 -0.9 n/c .... 2006 -3.5 -3.4 2005 -1.7 n/c 2004 -1.3 n/c 2003 -0.5 n/c 2002 -0.8 n/c 2001 -0.7 n/c .... 1990 -0.1 n/c 1989 -1.9 n/c 1988 -3.5 n/c 1987 -1.4 n/c 1986 -4.8 -5.6 1985 +1.0 n/c 1984 -2.4 n/c 1983 -0.6 n/c 1982 -1.6 n/c 1981 -0.7 n/c 1980 -1.3 n/c 1979 +3.3 n/c 1978 +1.9 n/c 1977 +1.1 n/c 1976 -2.2 n/c 1975 -3.7 n/c 1974 -2.2 n/c 1973 +3.4 n/c Avgs -1.0 -1.1
Note: Averages and extremes do not include 1986, this course is considered to have been short
Competitive Level (1990-date)
Year Men Women 2017 65 18 2016 279 n/c 2015 241 n/c 2014 60 n/c 2013 77 n/c 2012 64 n/c .... 2010 219 n/c 2009 115 62 2008 193 n/c 2007 196 13 2006 193 58 2005 43 114 2004 180 n/c 2003 144 n/c 2002 199 n/c 2001 276 134
Quality Performances through 2019
Men <2:10 1 <2:11 2 <2:12 4 <2:13 15 <2:14 35 <2:15 60 Women <2:34 7 <2:36 11 <2:38 21 <2:40 40
Note: 1986 is not included
Last Updated on 10 Apr 2019 mp
Contributors: Tadeusz Dziekonski, Martin Rix, Zbigniew Jonik (34), Klaas Loonstra (1)


--- layout: default title: Preface ---
Nothing matters but empathy, compassion and kindness. Empathy is the understanding of another that creates feelings of compassion that drive acts of kindness.
I spent years as a religionist, trying to understand the good life. It always eluded me, as it does religionists, because religion will not bring the good life. Religion is a framework for the exercise of power and power is the antithesis of kindness.
If we are to live well, we must emphasize kindness, for there is nothing else that brings greatness of spirit or existence. We will all become ash and the best we can do is leave behind kindness. Without it, our species is doomed.
The Buddha was right that all is suffering. He was wrong that the suffering is external. Suffering is not illness, aging and death. Suffering is the mental states that we create for ourselves and the suffering that we project onto others through our actions. External acts cannot bring suffering. It is created in the mind.
Do you want to live the good life? Do you want to be spiritual? Practice kindness towards all. Do no harm.
Lee Jordan, MBA, MEd, MCouns


crc16 - Perform a 16bit Cyclic Redundancy Check
This package provides a Tcl-only implementation of the CRC algorithms based upon information provided at http://www.microconsultants.com/tips/crc/crc.txt There are a number of permutations available for calculating CRC checksums and this package can handle all of them. Defaults are set up for the most common cases.
The command takes either string data or a file name and returns a checksum value calculated using the CRC algorithm. The command used sets up the CRC polynomial, initial value and bit ordering for the desired standard checksum calculation. The result is formatted using the format(n) specifier provided or as an unsigned integer (%u) by default.
A number of common polynomials are in use with the CRC algorithm and the most commonly used of these are included in this package. For convenience each of these has a command alias in the crc namespace.
It is possible to implement the CRC-32 checksum using this crc16 package as the implementation is sufficiently generic to extend to 32 bit checksums. As an example this has been done already - however this is not the fastest method to implement this algorithm in Tcl and a separate crc32 package is available.
Return a checksum for the file contents instead of for parameter data.
Return the checksum using an alternative format template.
Select an alternative seed value for the CRC calculation. The default is 0 for the CRC16 calculation and 0xFFFF for the CCITT version. This can be useful for calculating the CRC for data structures without first converting the whole structure into a string. The CRC of the previous member can be used as the seed for calculating the CRC of the next member. It is also used for accumulating a checksum from fragments of a large message (or file)
This hook is provided to allow users to provide their own implementation (perhaps a C compiled extension). The procedure specfied is called with two parameters. The first is the data to be checksummed and the second is the seed value. An integer is expected as the result.
The package provides some implementations of standard CRC polynomials for the XMODEM, CCITT and the usual CRC-16 checksum. For convenience, additional commands have been provided that make use of these implementations.
Terminate option processing. Please note that using the option termination flag is important when processing data from parameters. If the binary data looks like one of the options given above then the data will be read as an option if this marker is not included. Always use the -- option termination flag before giving the data argument.
% crc::crc16 -- "Hello, World!" 64077
% crc::crc-ccitt -- "Hello, World!" 26586
% crc::crc16 -format 0x%X -- "Hello, World!" 0xFA4D
% crc::crc16 -file crc16.tcl 51675
Pat Thoyts
This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category crc of the Tcllib Trackers. Please also report any ideas for enhancements you may have for either package and/or documentation.
When proposing code changes, please provide unified diffs, i.e the output of diff -u.
Note further that attachments are strongly preferred over inlined patches. Attachments can be made by going to the Edit form of the ticket immediately after its creation, and then using the left-most button in the secondary navigation bar.
Hashes, checksums, and encryption
Copyright © 2002, 2017, Pat Thoyts


July 17
For this purpose the Son of God was manifested, that he might destroy the works of
the devil.
1 John 3:8
Is the devil giving you fits today? Is he causing trouble for you at every turn?
If so, turn the table on him. Start making him miserable for a change. You have the power to do it, you know. You have the power residing in you to destroy his works, to heal, to deliver, to set the captivesfree.  That troublemaker is up again!"
A few years ago, I got a letter from a little girl who had attended one of my healing services in Los Angeles. Although she was far too young to understand theology or anything like that, the Lord gave her a very simple and profound revelation as she watched people being healed.
She said that as she looked up at the platform, she couldn't see me at all. She just saw Jesus. And she also saw a devil. Do you know what the devil was doing? He was lying on the floor crying, "This can't be! This can't be! This can't be!"
Right now, at this very moment, the power of the Lord Jesus Christ is at work within you. And it's not just there to get you to heaven someday. It's there so you can give the devil a fit right here on earth. It's there so you can build the kingdom of God now-- while there's still time.
Line up with God's Word and will for your life. Let the anointing of Jesus go forth from within you.  And you will never be quite the same again.
Scripture Reading: 1 John 5:4-20


I spent the past weekend at NUS, participating in the NUS-MIT Datathon. This event was co-organised by both the National University of Singapore (NUS) and Massachusetts Institute of Technology (MIT), and brought together the combined knowledge and skills of clinicians and data scientists to analyse and extract useful information, trends and insights from the huge pool of electronic health records.
The best part of the datathon was that we were fully focused on addressing real-world problems with real-world clinical datasets. The diversity of the teams allowed us to gain different perspectives into the problems identified.
When I went in on the first day, clinical consulatants/doctors were each pitching their ideas to the participants. Eventually the interested participants formed a team with the consultant/doctor, to embark on using the data to solve the problems.
My team managed to clinch the 1st Runner Up position in this datathon and I certainly attribute this success to the hard work of my team, my team’s doctor for bringing out such a problem to light (see below) and the close mentorship of the data scientists/researchers from MIT.
The Problem
Our team tackled the problem on identifying the critical values in laboratory tests. I was initially shocked to know that there are no international/national standards or universal consensus on the critical limits or thresholds in the various lab tests being done. This meant that different doctors use their own perception and “gut feeling” to determine if a patients lab test results are in the danger zone. Upon looking at various publications, our team found substantial evidence on the large variations of these values across various hospitals, which signified the lack of uniformity.
The problem with this is that, if the upper thresholds are set too high, then patients might end up with untreated diseases and missed treatment time. If they are set too low, patients will be receiving unnecessary treatment/medicine which could potentially harm their current health status. Not only that, hospital resources will be wasted.
Approach
Our approach to this problem had 4 major steps. Firstly, we gathered the datasets available from MIMIC. Next, we retrieved the outcome of patients who were admitted with serious conditions, the outcome being if the patient was discharged, or unfortunately dead. Following that, we ran certain algorithms to obtain some tangible thresholds for the patients.
All work were performed in a virtual environment with R for statstical analysis, Python for data processing and PostgreSQL for the database operations.
More on MIMIC
MIMIC is an openly available dataset developed by the MIT Lab for Computational Physiology, comprising deidentified health data associated with ~40,000 critical care patients. It includes demographics, vital signs, laboratory tests, medications, and more.
Methods
We primarily used 2 methods. First, is multiple logistic regression to find what actually matters in the lab tests. Lab results can contain several tests. For example, a single lab test can have the levels of potassium, calcium, sodium etc. Out of all these results, a few will matter more than others. And that was the goal here: to find which of those tests actually matter most to the doctors.
We trained and tested the model, and finally found the threshold values with logistic regression. The model yielded an accuracy of 73.7% on the test set.
The second method is called LOESS, which is Locally weighted scatterplot smoothing. We fit smooth LOESS curves of the probability of death vs. lab values using linear regression to find the probability of death of a patient and the threshold values.
Results
Strength of Association between Lab Tests & Probability of Mortality
In our results, we found the most important results from the lab test.
This formed the top 10 list:
- Magnesium
- Free Calcium
- Phosphate
- Total Calcium
- Potassium
- Total Bilirubin
- INR
- pH
- Bicarbonate
- Anion Gap
Extensions & Learning Points
Of course, as with all hackathons, the limiting factor was time. If we had more time, we could have optimised the results towards a specific population. We would have tried to increase the accuracy of the models and perform counterfactual analysis to find the thresholds.
It was really a great experience taking part in the datathon. More than winning the 1st runner up position, the datathon exposed me to the numerous problems lying in the medical world waiting to be solved. Today, we have the power of technology to aid us and with techniques like big data analysis, machine learning etc., we can indeed go a long way in making use of the huge volume of health records to optimise the future for us, and solving the existing problems in the process.


CSC648 Software Engineering
Presenting Team 6
Gebrezgabiher Mengis
Frontend Engineer
CS major @SFSU
gmengis@mail.sfsu.edu


-
Jonathan
Strand - London
Call me for bike pump anytime on weekend at<PHONE_NUMBER>4
grade
-
Fahad
Bike puncture repair kit available
Central London
grade
-
Jesus
Call me to fix your bikes
15 pounds an hour
grade
-
Jason
City University Area
Free bike repair kit for students
grade


clustergb.lammps¶
A class and functions for writing LAMMPS input files and running LAMMPS.
-
class
clustergb.lammps.
LammpsJob
(input_file='in.clustergb.lammps', log_file='log.lammps', cluster=None)¶ Handles LAMMPS calculations by building a LAMMPS input file through initialization and a series of add methods, then run the LAMMPS executable and parsing the log file.
Uses LAMMPS ‘metal’ units, so distances are all in angstroms, time in ps, temperatures in K, and energy in eV.
-
add_cell_relax
(pressure=0, isotropy='iso')¶ Add a relaxation command to the LAMMPs input string.
Parameters: - pressure (float) – Pressure at which to run in bars (default is 0.)
- isotropy (str) – Allow box to relax ‘iso’tropically or ‘aniso’tropically (orthogonal only.) (Default is iso.)
-
add_dump_cna
(xl_type, lattice_constant, dump_file, dump_period=1)¶ Add a dump command for common neighbour analysis values for all atoms.
Parameters: - xl_type (str) – Crystal structure indicator.
- lattice_constant (float) – Lattice parameter.
- dump_file (str) – Where to dump the per-atom CNA data.
- dump_period (int) – Period (steps) to dump the data. (Default is 1–dump every step.)
Raises: NotImplementedError
– If lattice_type is “hcp”ValueError
– If lattice_type is not “fcc”, “bcc”, or “hcp”.
-
add_dump_thermo
(dump_period=1)¶ Add a dump command for basic thermo properties (c.f. self.thermo_keys), and if the cluster option was given also dumps spatial data.
Parameters: dump_period (int) – Period (steps) to dump the data. (Default is 1–dump every step.)
-
add_dump_xyz
(dump_file, dump_period=100)¶ Add a dump command for the cartesian positions of the atoms.
Parameters: - dump_file (str) – Where to write the positions to. (Recommended extension for the file is .xyz)
- dump_period (int) – Period (steps) to dump the data. (Default is 100–dump every hundredth step.)
-
add_potential
(pot_file, species)¶ Add commands for which potential to use and which species to reference within it.
Parameters: - pot_file (str) – Path to empirical potential to use.
- species (str) – Space separated, potential-appropriate chemical symbols who will be applied (in order) to the type column of the input file.
-
add_print_value
(value, filename=None)¶ Add a command to print a system reserved value. Keywords can be found at the LAMMPS documentation.
Parameters: - value (str) – LAMMPS tag for the value to print.
- filename (str) – Where to write the value to. (Default is None–print only to screen)
Raises: Exception
– If value is not a valid LAMMPS keyword.
-
add_restart
(read_restart)¶ A a command for restarting the calculation from a LAMMPS restart file.
Parameters: read_restart (str) – Where to find the LAMMPS restart file.
-
add_run_minimization
(max_steps, force_convergence)¶ Add a command to minimize the atomic forces using conjugate gradient.
Note
The minimization command requires a force eval, but the LAMMPS docs are ambiguous about what counts as a force evaluation, so it is just 1000 times the number of steps for now. There is no evidence of this causing premature stopping for calculations with up to 700k atoms.
Parameters: - max_steps (int) – Maximum number of conjugate gradient steps to take.
- force_convergence (float) – Stopping threshold based on the L2 norm of the global force vector.
-
add_run_nve_damped
(steps, timestep, damping)¶ Add commands to run the system with an NVE (microcanoncical) integrator and apply damping friction to the atoms.
Parameters: - steps (float) – How long to run for.
- timestep (float) – Velocity verlet integration time step size.
- damping (float) – Coefficient of friction.
-
add_run_nvt_langevin
(steps, timestep, temp, langevin_period, init_temp=None, seed=None, write_restart=None)¶ Add commands to run the system with an NVT (canonical) integrator using a Langevin thermostat to equilibrate temperature.
Parameters: - steps (float) – How long to run for.
- timestep (float) – Velocity verlet integration time step size.
- temp (float) – Target temperature for the thermostat.
- langevin_period (float) – Parameter to control Langevin damping. Long times give weak damping.
- init_temp (float) – Temperature for initial velocity distribution. (Default is temp.)
- seed (int) – Seed to use when generating random initial velocities. (Default is random.)
- write_restart (str) – Location to write a restart file to. (Default is to not write a file.)
-
add_run_static
()¶ Add commands to run the system for zero steps. Useful for forcing output without changing the system, e.g. with CNA.
-
add_species_change
(ids, new_type=2)¶ Add a command to change the species of some of the atoms.
Warning
If new_type exceeds the number of species available in the structure file that was read, this will cause a failure in the LAMMPS run.
Parameters: - ids (int or np.ndarray or list) – Integer id(s) for which to change species.
- new_type (int) – New species value for given ids. (Default is 2.)
-
add_structure_bulk
(xl_type, lattice_constant, cell_repetitions, nspec=1)¶ Add a command to set the structure to a block of the ideal crystal.
Parameters: - xl_type (str) – Crystal structure indicator.
- lattice_constant (float) – Lattice parameter.
- cell_repetitions (int) – How many repetitions of the unit cell to allow (in each of x-, y-, and z-directions.)
- nspec (int) – How many species to allow. (Default is 1.)
-
add_structure_file
(structure_file)¶ Add a command to read the structure from a file.
Parameters: structure_file (str) – Path to .xyzin formatted structure file to read.
-
add_structure_single
(vacuum_distance=25.0)¶ Add a command to build the structure as a single atoms surrounded by vacuum.
Parameters: vacuum_distance (float) – The vacuum distance between periodic images, i.e. the supercell edge length. (Default is 25.)
-
add_vacancy
(ids)¶ Delete some of the atoms.
Parameters: or numpy.array(n, dtype=int) or list(int) ids (int) – Which id(s) to turn to vacancies. Returns:
-
run
(nprocs)¶ Writes the input_string to file and executes LAMMPS (using MPI if available and requested.)
Parameters: nprocs (int) – How many processors to run on.
-
-
clustergb.lammps.
energy_volume_curve
(xl_type, lattice_constants, pot_file, species, cell_repetitions=1, solute_ids=None, new_type=2, input_file='in.rescale.lammps', nprocs=1)¶ Run a series of static calculations with different volumetric strains.
Parameters: - xl_type (str) – Crystal structure identifier.
- lattice_constants (list) – float lattice parameters to use.
- pot_file (str) – Path to empirical potential to use.
- species (str) – Space separated, potential-appropriate chemical symbols who will be applied (in order) to the type column of the input file.
- cell_repetitions (int) – How many repetitions of the unit cell to allow (in each of x-, y-, and z-directions.)
- solute_ids (int or np.ndarray or list) – Integer id(s) for which to change species. (Default is None.)
- new_type (int) – New species value for solute ids. (Default is 2.)
- input_file (str) – File to write LAMMPS input script to. (Default is “in.rescale.lammps”)
- nprocs (int) – How many processors to run on. (Default is 1.)
Returns: 2-element tuple containing
- (np.ndarray) – Supercell volumes used for strained structure.
- (np.ndarray) – Resulting total energies from a static calculation.
-
clustergb.lammps.
potential_check
(pot_file)¶ Checks if the provided string is a path pointing to a valid file with a known extension for empirical potentials.
Parameters: pot_file (str) – Path to empirical potential to verify. Returns: (str) – Path to empirical potential. Raises: Exception
– When the path isn’t to a file ending with the extension ”.fs” or ”.alloy”
-
clustergb.lammps.
run_cna
(structure, pot_file, species, xl_type, lattice_constant, cna_file, input_file='in.cna.lammps', nprocs=1)¶ Calculate the common neighbour analysis values for a structure.
Parameters: - structure –
- pot_file (str) – Path to empirical potential to use.
- species (str) – Space separated, potential-appropriate chemical symbols who will be applied (in order) to the type column of the input file.
- xl_type (str) – Crystal structure indicator.
- lattice_constant (float) – Lattice parameter.
- cna_file (str) – Where to dump the per-atom CNA data.
- input_file (str) – File to write LAMMPS input script to. (Default is “in.cna.lammps”)
- nprocs (int) – How many processors to run on. (Default is 1.)
-
clustergb.lammps.
run_minimization_bulk
(xl_type, lattice_constant, pot_file, species, cell_repetitions=1, solute_ids=None, new_type=2, input_file='in.clustergb.lammps', nprocs=1, pressure=0, isotropy='iso', max_steps=1000, force_convergence=0.0001)¶ Optimize a structure to minimize forces.
Parameters: - xl_type (str) – Crystal structure indicator.
- lattice_constant (float) – Lattice parameter.
- pot_file (str) – Path to empirical potential to use.
- species (str) – Space separated, potential-appropriate chemical symbols who will be applied (in order) to the type column of the input file.
- cell_repetitions (int) – How many repetitions of the unit cell to allow (in each of x-, y-, and z-directions.)
- solute_ids (int or np.ndarray or list) – Integer id(s) for which to change species. (Default is None.)
- new_type (int) – New species value for solute ids. (Default is 2.)
- input_file (str) – File to write LAMMPS input script to. (Default is “in.clustergb.lammps”)
- nprocs (int) – How many processors to run on. (Default is 1.)
- pressure (float) – Pressure at which to run in bars (default is 0.)
- isotropy (str) – Allow box to relax ‘iso’tropically or ‘aniso’tropically (orthogonal only.) (Default is iso.)
- max_steps (int) – Maximum number of CG steps to take. (Default is 1000)
- force_convergence (float) – Stopping threshold based on the L2 norm of the global force vector. (Default is 0.0001.)
Returns: (Namespace) – Parsed thermodynamics data from the log file.
-
clustergb.lammps.
run_static_bulk
(xl_type, lattice_constant, pot_file, species, cell_repetitions=1, solute_ids=None, new_type=2, input_file='in.clustergb.lammps', nprocs=1)¶ Run a static calculation of a bulk unit cell.
Parameters: - xl_type (str) – Crystal structure indicator.
- lattice_constant (float) – Lattice parameter.
- pot_file (str) – Path to empirical potential to use.
- species (str) – Space separated, potential-appropriate chemical symbols who will be applied (in order) to the type column of the input file.
- cell_repetitions (int) – How many repetitions of the unit cell to allow (in each of x-, y-, and z-directions.) (Default is 1.)
- solute_ids (int or np.ndarray or list) – Integer id(s) for which to change species. (Default is None.)
- new_type (int) – New species value for solute ids. (Default is 2.)
- input_file (str) – File to write LAMMPS input script to. (Default is “in.clustergb.lammps”)
- nprocs (int) – How many processors to run on. (Default is 1.)
Returns: (Namespace) – Parsed thermodynamics data from the log file.


WE ARE UNDER DEVELOPMENT OF THE CONSOLE
We are Adding Some Awesome New Features to Lextor!Till Then Keep Thinking About it!
So Sorry, ButWe Promise To be back Soon!
© Lextor - All Rights Reserved
SHARE THIS PAGE!


| Installation Getting the software on your system |
|
||||||||||||||||
|
vb2Py is written in Python and runs on any platform which has a Python interpreter. Once you have downloaded the software you will have a zip file. Before you can do anything you must have Python installed. After Python is installed you can install the vb2py modules by going to the directory you unzipped the files to and typing, > python setup.py install Now you should have a 'vb2py' folder in your Python site packages directory. You also need to make sure you have both PythonCard and simpleparse installed on your system. Once these additional resources are installed on your system you should be ready to go and use the converter. Note:
You do not need VB to run the converter! |
||||||||||||||||


Module for generating citations from Code Source URL's like GitHub, or FigShare.
- Source:
Members
(static) FormatOptions
Properties:
| Name | Type | Description |
|---|---|---|
FormatOptions |
model.FormatOptions | A class that describtes the customizable options for formatting a citation. |
- Source:
(static) styles
Properties:
| Name | Type | Description |
|---|---|---|
styles |
Object | A collection of formatters for coercing source data into a particular format standard. |
- Source:
Methods
(static) generate(formatOptions, callback)
Parameters:
| Name | Type | Description |
|---|---|---|
formatOptions |
model.FormatOptions | The basic configuration object that is used to determine the format of the citation output string |
callback |
generateCallback | Callback on completion of citation generation. Args are string and array of errors or warning |
- Source:


--- layout: post status: publish published: true title: Thed & Jeo - Episode 7.73 author: display_name: Corey Fineran login: Corey email<EMAIL_ADDRESS>url: '' author_login: Corey author_email<EMAIL_ADDRESS>wordpress_id: 11589 wordpress_url: http://ivyenvy.com/?p=11589 date: '2015-12-13 22:23:27 +0000' date_gmt: '2015-12-14 04:23:27 +0000' categories: - Podcast tags: - John Lackey - Starlin Castro - Jason Heyward - Adam Warren - Ben Zobrist - Bronx Pinstripes comments: [] ---
On this episode of The Ivy Envy Podcast, we recap the INCREDIBLE last week in Cubs off-season moves.
Last week, the Cubs snatched John Lackey away from the Cardinals and this week, the Cubs convinced Jason Heyward to leave St. Louis for less money...and that doesn't sit well with the best fans in baseball.
The Cubs also signed central Illinois native, Ben Zobrist (for less money than other teams offered).
The sad news of the week was that these signings were facilitated by the Cubs trading Starlin Castro to the New York Yankees. We talk reflect on the Starlin-era and share some scary stats and our favorite Castro memories.
Scott and Andrew from Bronx Pinstripes jump in to talk about Adam Warren.


Home
About Me
Blog
My Projects
Contact
Yangtao
Ge
Back End Developer, Student in University College London


Build a Rover combining the best of Azure Sphere security with FreeRTOS
What you will learn
You will learn how to integrate a Real-time FreeRTOS application responsible for running a timing-sensitive ultrasonic distance sensor with the security and cloud connectivity of Azure Sphere.
#JulyOT
This is part of the #JulyOT IoT Tech Community series, a collection of blog posts, hands-on-labs, and videos designed to demonstrate and teach developers how to build projects with Azure Internet of Things (IoT) services. Please also follow #JulyOT on Twitter.
Source code and learning resources
Source code: Azure Sphere seeing eyed rover Real-time FreeRTOS sensors and Azure IoT.
Learning resources: Azure Sphere Developer Learning Path.
Learn more about Azure Sphere
Azure Sphere is a comprehensive IoT security solution – including hardware, OS, and cloud components – to actively protect your devices, your business, and your customers.
Application architecture
The application running on the Azure Sphere consists of two parts.
Real-time FreeRTOS Application
- The Real-time FreeRTOS application running on one of the M4 cores that is responsible for running the timing-sensitive HC-SR04 ultrasonic distance sensor.
- Distance is measured every 100 milliseconds so the rover can decide the best route.
- The sensor requires precise microsecond timing to trigger the distance measurement process, so it is a perfect candidate for running on the Real-time core as a FreeRTOS Task.
- Every 5 seconds a FreeRTOS Task sends distance telemetry to the Azure Sphere A7 High-level application.
Azure IoT High-level Application
- The application running on the Azure Sphere A7 High-level application core is responsible for less timing-sensitive tasks such as establishing WiFi/Network connectivity, negotiating security and connecting with Azure IoT Central, updating the device twin and send telemetry messages.
Extending
- I am thinking about extending this solution with a local TinyML module for smarter navigation.
Parts list
Azure IoT Central
Azure IoT Central provides an easy way to connect, monitor, and manage your Internet of Things (IoT) assets at scale.
I created a free trial of Azure IoT Central and in no time I had the rover distance sensor charted and available for deeper analysis. By the way, you can continue to connect two devices for free to IoT Central after the trial period expires.
Extend and integrate Azure IoT Central applications with other cloud services
Azure IoT Central is also extensible using rules and workflows. For more information, review Use workflows to integrate your Azure IoT Central application with other cloud services
How to build the solution
- Set up your Azure Sphere development environment.
- Review Integrate FreeRTOS Real-time room sensors with Azure IoT.
- Learn how to connect and Azure Sphere to Azure IoT Central or Azure IoT Hub.
- The IoT Central Device Template Capabilities Model JSON file for this solution is included in the iot_central directory of this repo.
Have fun and stay safe and be sure to follow us on #JulyOT.


| DOSE: |
10 hits |
smoked |
Cannabis |
(plant material) |
Is it over? My body temperature is too low to verify that.
Once an active smoker (cannibis), some old friends convinced me to come outside and take a 'quick hit' for old time's sake.
I took at least 10, large, deep breaths. Beforehand I had noted that it didnt smell like weed, and later confirmed that it was heavily potent pcp-laced marijuana.
The first effect was a pounding on my upper spine. Something was going on there and it was making my vision strobe and I could feel every passage of blood through my body.
I sat at the computer, but something was wrong. My heart was racing and about to burst out of me. I could feel a disconnection in my ribcage, though this was purely mental. But my heart kept going faster and faster and my breathing got slower and slower - and then I realized, after counting it, my heartbeat had not changed at all, but my perception of it was twisted.
My hearing and other feelings became incredibly acute. I could hear every noise around me and shut whatever I could up. I felt my tongue in my mouth like it was a glistening unfamiliar thing. My vision began to trail and my head+neck movements were extremely robotic or poorly animated (changing positions in straight motions and then locking)
My dad noted that my door was open and earlier I was missing, and I did not answer on my cell - I had to convince him that I walked around outside to make a phonecall. He was already worried, because he closed it and locked it, but I think he got over it. However, I'm worried that I may have reeked of something when I came inside, and he may know what happened. My entire conversation with him was from a different angle, and I thought up the things I'd say only after I'd said them.
I did my best to be unnoticable - grabbed a granola bar and some 7up, and declared that I was gonna get some sleep early. (this was 6:30pm). I stood up when I got back to my room, but my eyes were covered by a transparent hand and I could feel a propeller on my head lifting me and taking weight off my spine. I sat down again - the feeling in my back from before intensified and I could, very sharply, feel wings on my back.
They were large and angelic, and I can describe them as being two parts. It was like the exact crossing between reality and unreality - the first was an extremely heavy bone to the wings, which was the part connected to my upper back. It was thick and branchlike and put alot of weight on my balance. But the rest was an infinity of thick white feathers, and I had a strong connection to each of them. I tried to move them and I could feel them going to a more outwards position. It was mindblowing - I tried to accept that it was a hallucination but the experience was too strong to be denied.
I tried to concentrate on something else. I put on a live jane's addiction set I downloaded, and it was strange - I didnt know any of the songs, but I know every jane's addiction song. Yet, I felt a strange connection to the music, and then turned and saw my guitar. I then saw myself pick it up, play 30 seconds, and put it down satisfied. The friends I had im’ed before had not answered yet so I played another 30 seconds. Repeat about 3 times, though the total time managed out to about 1 minute.
I got immediate advice to go to sleep from a friend online. It was like a virtual sitter: he got me to calm down first, then tried to make me ride it in a stable mental condition.  My heart raced again and my breathing seemed like very slow waves on a coastline. It was like being strangled - and when I opened my eyes, the conditions were normal.
I accepted the fact that, if I close my eyes, I will die. My parents would find me dead, heart stopped...their disappointing child. I would be torn away from my friend's lives. I'd had a miserable week, yet today seemed like an interesting day to die, so I closed my eyes and decided to see what it would show me.
My bed became a falling platform, descending at impossible speeds. I was falling, faster, further...but I opened my eyes and got my heart to slow down and my breathing to return. I had to sleep through this, so I closed my eyes again, and this time the experience was in reverse. The bed was ascending at incredible speeds, and my body was being forced against it. Gravity was crushing me against my ceiling.
Then, some very weak hallucinations - fond memories of an unknown place that really didnt exist - came up in my head and I layed there, remembering them for what felt like the entire night. I looked at the clock - 3 minutes had passed. But I fell asleep and sit here, 2:30 am, awake now. I have a lot of homework to do.
Having a fairly strong knowledge of hallucinogens and a strange interest in them, this was an unexpected experience and, at the moment, life changing. I feel detached, and the emotion of it is concentrated into my upper back. The experience with those wings was so real that I took my shirt off to check for signs of it. Nothing. I want the wings back but the fear that I felt, I do not want to experience again.
I'm puzzled now and mostly still in shock.   Was it god I touched - why was that horrifying?
I am cold now and my parents are asleep. What will today bring? Will they know? What will I tell people? Who will I tell?
It is cold...
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.


|
|||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
| Interface Summary | |
|---|---|
| AsyncGetConnector | An object connector that implements asynchronous get operations. |
| AsyncPostConnector | An Connector that implements asynchronous post operations. |
| AsyncPutConnector | An object connector that implements asynchronous put operations. |
| Connector | The base interface for connectors of all kinds. |
| ConnectorCallback | The base interface for Connector callbacks. |
| GetCallback | The interface to be implemented for asynchronous get operations. |
| PutCallback | The callback interface to be implemented for asynchronous put operations. |
| RemoveCallback | The callback to be implemented for asynchronous remove operations. |
| SyncBrowseConnector | The interface to be implemented for a Connector that allows synchronous browse operations. |
| SyncDumpConnector | The interface to be implemented for a Connector which is capable of being dumped. |
| SyncGetConnector | The interface to be implemented by a Connector that allows synchronous get operations. |
| SyncLoadConnector | The interface to be implemented for a Connector which is capable of loading a dump value. |
| SyncPostConnector | The interface to be implemented by a Connector that allows synchronous post operations. |
| SyncPutConnector | The interface to be implemented by a Connector that allows synchronous put operations. |
| SyncQueryConnector | The interface to be implemented by a Connector that allows synchronous query operations. |
| Class Summary | |
|---|---|
| ConnectorBase | A base class for Connector , implementing HasSystem . |
| IgnoreResultPutCallback | A PutCallback that does nothing when the request succeeds and throws a RuntimeException when it fails. |
| MemConnector | Implements the in-memory item store. |
|
|||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |


Enter a CNF formula as an array of arrays.
For example, for (x1 v x2)(!x1)(!x3), write [[1,2],[-1],[-3]].
[[1,2],[-1],[-3]]
Solve
Result:


Home
Sign In
Sign Up
KDUMOOC
Register and start learning now!
First Name:
Last Name:
Date of Birth:
Gender:
Male
Female
NIC No.:
Email:
Username:
Password:
Register


| 005:015 Khan | : |
O people of the Scripture (Jews and Christians)! Now has come to you Our Messenger (Muhammad SAW) explaining to you much of that which you used to hide from the Scripture and passing over (i.e. leaving out without explaining) much. Indeed, there has come to you from Allah a light (Prophet Muhammad SAW ) and a plain Book (this Qur'an). |
| 005:015 Maulana | : |
O People of the Book, indeed Our Messenger has come to you, making clear to you much of that which you concealed of the Book and passing over much. Indeed, there has come to you from Allah, a Light and a clear Book, |
| 005:015 Pickthal | : |
O People of the Scripture! Now hath Our messenger come unto you, expounding unto you much of that which ye used to hide in the Scripture, and forgiving much. now hath come unto you light from Allah and plain Scripture, |
| 005:015 Rashad | : |
O people of the scripture, our messenger has come to you to proclaim for you many things you have concealed in the scripture, and to pardon many other transgressions you have committed. A beacon has come to you from GOD, and a profound scripture. |
| 005:015 Sarwar | : |
People of the Book, Our Messenger has come to you. He tells you about the many things that you had been hiding of the Book and forgives you much. A light and a clarifying Book has come to you from God |
| 005:015 Shakir | : |
O followers of the Book! indeed Our Messenger has come to you making clear to you much of what you concealed of the Book and passing over much; indeed, there has come to you light and a clear Book from Allah; |
| 005:015 Sherali | : |
O People of the Book ! there has come to you Our Messenger who makes clear to you much of what you have kept hidden of the Book and forgives many of your faults. There has come to you indeed from ALLAH a Light and a clear Book. |
| 005:015 Yusufali | : |
O people of the Book! There hath come to you our Messenger, revealing to you much that ye used to hide in the Book, and passing over much (that is now unnecessary): There hath come to you from Allah a (new) light and a perspicuous Book, - |
Concepts/Themes Covered: أركان الإسلام > (محمد (صلى الله عليه وسلم > تأييد رسالته Pillars of Islam> The Blessed Muhammad(PBUH)> Supporting his Message الإيمان > الأنبياء والرسل > مهمتهم في البلاغ Faith> The Prophets and the Messengers of Allah> Their Mission to Inform الإيمان > الإيمان بالله > تشبيه الإيمان بالنور Faith> Belief In Allah> Resembling Faith with Light الإيمان > الكتب السماوية الأخرى > الكتب المقدسة Faith> The Other Divine Books> The Holy Books القرآن الكريم > وصفه ووجوب الإيمان به The Holy Quran> The Description and the Necessity to Believe it الإنسان والعلاقات الاجتماعية > المجتمعات > شعوبا والقبائل Man and The Social Relations>The Societies>People and Tribes الديانات > أهل الكتاب: ( اليهود و النصارى) > العلاقة معهم Religions> The People of the Book (the Jews and the Christians)>The Relation with them الديانات > بنو إسرائيل > حالاتهم Religions>Children of Israel>Their Status
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


You are
Diana is the hunting goddess. She was often associated with nature, and she had the power to talk to and control animals. Oak groves were especially sacred to her. In later myths, she also became known as the moon goddess and the goddess of childbirth.
You are
Neptune is the god of water and the sea. When peaceful, he created new islands and offered calm seas, but when angry, he struck the ground with his trident and caused chaotic earthquakes and shipwrecks.
You are
Minerva is the goddess of wisdom and the arts. She was often shown with an owl, symbolizing her great intelligence. She was believed to be the inventor of numbers and musical instruments.
You are
Fortuna is the goddess of fortune and luck, both good and bad. She was worshipped at a number of shrines in which her influence was hoped to have a positive effect. But she wasn’t always helpful—she could be doubtful, fickle, or downright evil.
You are
Venus is the goddess of love and beauty. Born of sea foam, she was essential to the balance of life. She absorbed anger and brought good fortune and prosperity.
You are
Apollo is the god of sun and light. Handsome and young, he was known to have healing powers as well as the ability to bring on plague and disease. Apollo also had artistic gifts—the Olympians loved to lounge around Mount Olympus listening to him play his lyre.
You are
Hercules is a celebrated hero, the son of Jupiter and Alcmene, and possesses exceptional strength. While famous for all his far-ranging adventures, he was most well-known for the 12 labors he carried out for his cousin Eurystheus in order to gain immortality.
You are
Mercury is the god of trade, merchants, and travel. Messenger to the other gods, he wore winged sandals. He was often accompanied by a tortoise, a reference to his legendary invention of the lyre from a tortoise shell.
Woops! This interactive will not work for you
Looks like you are using Windows XP or older and an older version of Internet Explorer.
We recommend you use if you are using Windows XP or below, please activate Google
Chrome Frame (below), which will be a wonderful addition to your browser and enable
you to use this interactive.
Please restart your browser when download is complete.
You may also use one of these other great, updated and secure browsers!
PLEASE UPDATE YOUR BROWSER:
WOOPS! It looks like you are using an older version of Internet Explorer. (Internet Explorer 7 or Internet Explorer 8)
This interactive will not work for you.
Please upgrade to a more modern and secure browser. Browsers like Internet Explorer 9, Firefox or Google Chrome


{% extends "!footer.html" %}
{% block extrafooter %} {{super}}
This documentation is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No. 823852
{% endblock %}


--- layout: post status: publish published: true title: Base64 talk encrypted author: display_name: vishvendra login: vishvendra email<EMAIL_ADDRESS>url: '' author_login: vishvendra author_email<EMAIL_ADDRESS>wordpress_id: 317 wordpress_url: http://vishvendrasingh.com/?p=317 date: '2016-09-28 17:23:38 +0530' date_gmt: '2016-09-28 17:23:38 +0530' categories: - Encryption - Linux tags: - encryption - Linux comments: [] ---
Hi all, why most of computer engineers choose Linux as their preferred os. Friends we get lot of advantages here like we can talk encrypted
For encryption
$ echo -n hi | base64
output: aGk=
For decryption
echo -n aGk= | base64 -d output: hi Not only this you can also encrypt image with the following command $ echo -n $(cat image.jpg) | base64 >
inputfile
To decrypt use
$ echo -n $(cat inputfile) | base64 -d
Enjoyeee...