Privacy Policy for Vishnu S Reddy
At Vishnu S Reddy, accessible from vishnusreddy.pythonanywhere.com, one of our main priorities is the privacy of our visitors. This Privacy Policy document contains types of information that is collected and recorded by Vishnu S Reddy and how we use it.
If you have additional questions or require more information about our Privacy Policy, do not hesitate to contact us.
This Privacy Policy applies only to our online activities and is valid for visitors to our website with regards to the information that they shared and/or collect in Vishnu S Reddy. This policy is not applicable to any information collected offline or via channels other than this website. Our Privacy Policy was created with the help of the Privacy Policy Generator.
Consent
By using our website, you hereby consent to our Privacy Policy and agree to its terms.
Information we collect
The personal information that you are asked to provide, and the reasons why you are asked to provide it, will be made clear to you at the point we ask you to provide your personal information.
If you contact us directly, we may receive additional information about you such as your name, email address, phone number, the contents of the message and/or attachments you may send us, and any other information you may choose to provide.
When you register for an Account, we may ask for your contact information, including items such as name, company name, address, email address, and telephone number.
How we use your information
We use the information we collect in various ways, including to:
- Provide, operate, and maintain our website
- Improve, personalize, and expand our website
- Understand and analyze how you use our website
- Develop new products, services, features, and functionality
- Communicate with you, either directly or through one of our partners, including for customer service, to provide you with updates and other information relating to the website, and for marketing and promotional purposes
- Send you emails
- Find and prevent fraud
Log Files
Vishnu S Reddy follows a standard procedure of using log files. These files log visitors when they visit websites. All hosting companies do this and a part of hosting services' analytics. The information collected by log files include internet protocol (IP) addresses, browser type, Internet Service Provider (ISP), date and time stamp, referring/exit pages, and possibly the number of clicks. These are not linked to any information that is personally identifiable. The purpose of the information is for analyzing trends, administering the site, tracking users' movement on the website, and gathering demographic information.
Cookies and Web Beacons
Like any other website, Vishnu S Reddy uses cookies. These cookies are used to store information including visitors' preferences, and the pages on the website that the visitor accessed or visited. The information is used to optimize the users' experience by customizing our web page content based on visitors' browser type and/or other information.
For more general information on cookies, please read "What Are Cookies".
Our Advertising Partners
Some of the advertisers on our site may use cookies and web beacons. Our advertising partners are listed below. Each of our advertising partners has its own Privacy Policy for its policies on user data. For easier access, we hyperlinked to their Privacy Policies below.
https://policies.google.com/technologies/ads
Advertising Partners Privacy Policies
You may consult this list to find the Privacy Policy for each of the advertising partners of Vishnu S Reddy.
Third-party ad servers or ad networks uses technologies like cookies, JavaScript, or Web Beacons that are used in their respective advertisements and links that appear on Vishnu S Reddy, which are sent directly to users' browser. They automatically receive your IP address when this occurs. These technologies are used to measure the effectiveness of their advertising campaigns and/or to personalize the advertising content that you see on websites that you visit.
Note that Vishnu S Reddy has no access to or control over these cookies that are used by third-party advertisers.
Third-Party Privacy Policies
Vishnu S Reddy's Privacy Policy does not apply to other advertisers or websites. Thus, we are advising you to consult the respective Privacy Policies of these third-party ad servers for more detailed information. It may include their practices and instructions about how to opt out of certain options.
You can choose to disable cookies through your individual browser options. To know more detailed information about cookie management with specific web browsers, it can be found at the browsers' respective websites.
CCPA Privacy Rights (Do Not Sell My Personal Information)
Under the CCPA, among other rights, California consumers have the right to:
Request that a business that collects a consumer's personal data disclose the categories and specific pieces of personal data that a business has collected about consumers.
Request that a business deletes any personal data about the consumer that a business has collected.
Request that a business that sells a consumer's personal data, not sell the consumer's personal data.
If you make a request, we have one month to respond to you. If you would like to exercise any of these rights, please contact us.
GDPR Data Protection Rights
We would like to make sure you are fully aware of all of your data protection rights. Every user is entitled to the following:
The right to access – You have the right to request copies of your personal data. We may charge you a small fee for this service.
The right to rectification – You have the right to request that we correct any information you believe is inaccurate. You also have the right to request that we complete the information you believe is incomplete.
The right to erasure – You have the right to request that we erase your personal data, under certain conditions.
The right to restrict processing – You have the right to request that we restrict the processing of your personal data, under certain conditions.
The right to object to processing – You have the right to object to our processing of your personal data, under certain conditions.
The right to data portability – You have the right to request that we transfer the data that we have collected to another organization, or directly to you, under certain conditions.
If you make a request, we have one month to respond to you. If you would like to exercise any of these rights, please contact us.
Children's Information
Another part of our priority is adding protection for children while using the internet. We encourage parents and guardians to observe, participate in, and/or monitor and guide their online activity.
Vishnu S Reddy does not knowingly collect any Personal Identifiable Information from children under the age of 13. If you think that your child provided this kind of information on our website, we strongly encourage you to contact us immediately and we will do our best efforts to promptly remove such information from our records.


The Static Head Common
The Static Header
*
First name
*
Last name
*
User name
*
Password
*
Confirm Password
*
Email address
*
Address Line 1
Address Line 2
*
City
*
State
Register
Already have an account?
Click here to Login


[§489D-6.2]Registration with NMLS. The commissioner may require all licensees to register with NMLS. [L 2013, c 167, pt of §1]


What is the Version:
Valid.
Please fill out this field.
Enter Topic to be Published:
Valid.
Please fill out this field.
Provide a Description of the Topic:
Valid.
Please fill out this field.
Which Agency Can Access this topic?:
All Agencies
MOH
LTA
NEA
MHA
Submit


Deepen Mehta
I am graduate student at Northeastern University pursuing master's in computer science. I was Software Engineer Co-op at Intuit. My interest are Machine Learning, Information Retrieval, Data Mining, Data Analytics and Web Development. Also, I have previously worked as full stack developer.
Currently, I am Teaching Assistant at Northeastern University. My responsibilities include teaching labs, oversee grading of homework sets, help grade exams and hold office hours to help students with learning material.
Recent Work
Would you like to grab a coffee ?
Leave me a message.


| nhipatient | ||
| Patient | Entity. Role, or Act | |
| id | ||
| meta | ||
| implicitRules | ||
| language | ||
| text | Act.text? | |
| contained | N/A | |
| extension | ||
| extension (ethnicity) | n/a | |
| extension (placeOfBirth) | n/a | |
| extension (nzcitizenship) | N/A | |
| modifierExtension | N/A | |
| identifier | id | |
| identifier (NHI) | id | |
| identifier (DormantNHI) | id | |
| name | name | |
| telecom | telecom | |
| gender | player[classCode=PSN|ANM and determinerCode=INSTANCE]/administrativeGender | |
| birthDate | player[classCode=PSN|ANM and determinerCode=INSTANCE]/birthTime | |
| id | ||
| extension | ||
| extension (source) | n/a | |
| value | ||
| address | addr | |
| multipleBirth[x] | player[classCode=PSN|ANM and determinerCode=INSTANCE]/multipleBirthInd, player[classCode=PSN|ANM and determinerCode=INSTANCE]/multipleBirthOrderNumber | |
| generalPractitioner | subjectOf.CareEvent.performer.AssignedEntity |
| nhipatient | ||
| Patient | ClinicalDocument.recordTarget.patientRole | |
| id | ||
| meta | ||
| implicitRules | ||
| language | ||
| text | ||
| contained | ||
| extension | ||
| extension (ethnicity) | ||
| extension (placeOfBirth) | ||
| extension (nzcitizenship) | ||
| modifierExtension | ||
| identifier | .id | |
| identifier (NHI) | .id | |
| identifier (DormantNHI) | .id | |
| name | .patient.name | |
| telecom | .telecom | |
| gender | .patient.administrativeGenderCode | |
| birthDate | .patient.birthTime | |
| id | ||
| extension | ||
| extension (source) | ||
| value | ||
| address | .addr | |
| multipleBirth[x] | n/a | |
| generalPractitioner | n/a |
| nhipatient | ||
| Patient | administrative.individual | |
| id | ||
| meta | ||
| implicitRules | ||
| language | ||
| text | ||
| contained | ||
| extension | ||
| extension (ethnicity) | ||
| extension (placeOfBirth) | ||
| extension (nzcitizenship) | ||
| modifierExtension | ||
| identifier | id | |
| identifier (NHI) | id | |
| identifier (DormantNHI) | id | |
| name | ||
| telecom | ||
| gender | ||
| birthDate | ||
| id | ||
| extension | ||
| extension (source) | ||
| value | ||
| address | ||
| multipleBirth[x] | ||
| generalPractitioner |
| nhipatient | ||
| Patient | ||
| id | ||
| meta | ||
| implicitRules | ||
| language | ||
| text | ||
| contained | ||
| extension | ||
| extension (ethnicity) | ||
| extension (placeOfBirth) | ||
| extension (nzcitizenship) | ||
| modifierExtension | ||
| identifier | PID-3 | |
| identifier (NHI) | PID-3 | |
| identifier (DormantNHI) | PID-3 | |
| name | PID-5, PID-9 | |
| telecom | PID-13, PID-14, PID-40 | |
| gender | PID-8 | |
| birthDate | PID-7 | |
| id | ||
| extension | ||
| extension (source) | ||
| value | ||
| address | PID-11 | |
| multipleBirth[x] | PID-24 (bool), PID-25 (integer) | |
| generalPractitioner | PD1-4 |
| nhipatient | ||
| Patient | ||
| id | ||
| meta | ||
| implicitRules | ||
| language | ||
| text | ||
| contained | ||
| extension | ||
| extension (ethnicity) | ||
| extension (placeOfBirth) | ||
| extension (nzcitizenship) | ||
| modifierExtension | ||
| identifier | ||
| identifier (NHI) | ||
| identifier (DormantNHI) | ||
| name | ||
| telecom | ||
| gender | ||
| birthDate | 21112-8 | |
| id | ||
| extension | ||
| extension (source) | ||
| value | ||
| address | ||
| multipleBirth[x] | ||
| generalPractitioner |


China calls on United States to 'stop flexing muscles' in South China Sea
The US has accused China of militarising the South China Sea
China, during defence talks in Bangkok on Monday, called on the US military to stop flexing its muscles in the South China Sea and to avoid adding "new uncertainties" over Taiwan, underscoring tensions between the world's two largest economies.
Chinese Defense Minister Wei Fenghe called on US Defense Secretary Mark Esper to "stop flexing muscles in the South China Sea and to not provoke and escalate tensions in the South China Sea," said Defense Ministry spokesman Wu Qian.
The United States did not immediately respond but has accused China of militarising the South China Sea. Esper said on Sunday Beijing was "increasingly resorting to coercion and intimidation to advance its strategic objectives" in the region.
During closed-door talks on the sidelines of a gathering of defence ministers in Bangkok, Wei urged Esper to "stop flexing muscles in the South China Sea and to not provoke and escalate tensions in the South China Sea," the spokesman, Wu Qian, said.
China claims almost all the energy-rich waters of the South China Sea, where it has established military outposts on artificial islands. However, Brunei, Malaysia, the Philippines, Taiwan and Vietnam also have claims to parts of the sea.
The United States accuses China of militarising the South China Sea and trying to intimidate Asian neighbours who might want to exploit trillion of dollars worth of oil and gas reserves.
The US Navy regularly vexes China by conducting what it calls "freedom of navigation" operations by ships close to islands China occupies in the South China Sea.
Asked specifically what Wei sought for the United States to do differently, and whether that included halting such freedom of navigation operations, Wu said: "We (call on) the US side to stop intervening in the South China Sea and stop military provocation in the South China Sea."
Chinese carrier transit
Despite warm words exchanged in front of reporters, Wei and Esper also discussed the thorny issue of Taiwan, which is claimed by China as a wayward province and is the Communist Party's most sensitive and important territorial issue.
Fenghe underscored to Esper China's position that it would "not tolerate any Taiwan independence incident," Wu said, adding that it opposed any official or military contact with Taiwan.
China has in the past threatened to attack if Taiwan, set to hold a presidential election next year, moves towards independence.
"The Chinese side also requires the US side to carefully handle the Taiwan related-issue and to not add new uncertainties to the Strait," Wu said.
The exchange came a day after news that China sailed a carrier group into the sensitive Taiwan Strait, led by its first domestically built aircraft carrier.


N Most Frequent words
Enter N:
Go
Error! n is greater than number of words
Word
Frequency
{{ x.key }}
{{ x.value }}


| PostgreSQL 9.0.10 Documentation | ||||
|---|---|---|---|---|
| Prev | Up | Appendix E. Release Notes | Next |
Release date: 2005-05-09
This release contains a variety of fixes from 7.2.7, including one security-related issue.
A dump/restore is not required for those running 7.2.X.
Repair ancient race condition that allowed a transaction to be seen as committed for some purposes (eg SELECT FOR UPDATE) slightly sooner than for other purposes
This is an extremely serious bug since it could lead to apparent data inconsistencies being briefly visible to applications.
Repair race condition between relation extension and VACUUM
This could theoretically have caused loss of a page's worth of freshly-inserted data, although the scenario seems of very low probability. There are no known cases of it having caused more than an Assert failure.
Fix EXTRACT(EPOCH)
for
TIME WITH TIME ZONE values
Additional buffer overrun checks in plpgsql (Neil)
Fix pg_dump to dump index names and trigger names containing % correctly (Neil)
Prevent to_char(interval)
from dumping core for
month-related formats
Fix contrib/pgcrypto for newer OpenSSL builds (Marko Kreen)


Home
Dashboard
Dashboard
Pages
About Us
Contact Us
User Profile
Blog
Login
Add blogs
Post Your Idea
Title
Algorithm Type:
Description:
By click you must agree with our
Terms & Condition and Posting Rules.
Post


Atom for Web Developers
This is a no frills look at Atom, a powerful, open-source text editor maintained by the GitHub team.
Contents
Atom comes with a number of features right out of the box. However, its true power comes from the package management system, allowing you to customize the editor to meet your specific development needs.
New to Atom? Start by reading the first two chapters from the Atom Flight Manual.
NOTE: This tutorial is meant for full-stack JavaScript developers, and it uses Atom version 1.8.0.
This is a companion piece to Sublime Text for Web Developers.
Keyboard Shortcuts
Remember: The goal is to never take your hands off the keyboard!
- Command Palette (CMD-SHIFT-P) - Opens the powerful Command Palette, where you can access all Atom commands and packages.
- Hide/Show the Sidebar (CMD-K, CMD-B) or (CMD-\) - Toggles the sidebar.
- Comment Your Code (CMD-/) - Highlight the code you want to comment out, then comment it out. If you do not highlight anything, this command will comment out the current line.
- Highlight an entire line (CMD-L)
- Duplicate line (CMD-SHIFT-D)
- Move line Up or Down (CMD-CTRL-Up/Down Arrow)
- Multi-Edit (CMD-D) - Simply select the word you want to edit, and press CMD-D repeatedly until you have selected all the words you want to update. Go too far? Use CMD-U to unselect.
- Change the language (CTRL-SHIFT-L)
- Settings (CMD-,) - Opens the Settings menu where you can update settings, download and configure packages, and change themes.
Check out the Atom shortcut cheat sheet for more handy keyboard shortcuts.
Settings
Much like Sublime Text, you can customize almost every aspect of Atom.
Start by reading over the Basic Customization guide to learn how to update the global and language-specific settings. If you’re just getting started, I recommend leaving the settings just as they are, since Atom comes with a solid set of defaults.
That said, you may way to update the UI and syntax themes from the Settings menu. The Flatland Dark UI and Syntax themes are rather pleasing…
…but make sure to experiment on your own!
Packages
Again, like Sublime Text, Atom’s core features can be extended via the powerful package management system. Navigate to the Settings menu to download and/or configure packages.
Linter
Linter is the base package (and API) for a number of language-specific linters. There’s support for all the main languages. Start with the following linters to start checking for style and syntactic errors:
Highlight Selected
With Highlight Selected you double click a word to highlight every instance of it in the open file.
docblockr
docblockr simplifies the writing of documentation. Once installed, simply press ENTER after you type \** to add a basic comment:
/**
*
**/
If the line directly after contains a function, then the name and parameters are parsed and added to the comments.
Try it out:
function getTotalActiveLessons(chapters) {
var total = chapters.reduce(function(acc, chapter) {
var active = (chapter.lessons).filter(function(lesson) {
return lesson.lessonActive;
});
return acc.concat(active);
}, []);
return total;
}
Given the above function, add an opening block (/**
), and then when you press ENTER it automatically creates the base documentation:
/**
* [getTotalActiveLessons description]
* @param {[type]} chapters [description]
* @return {[type]} [description]
**/
function getTotalActiveLessons(chapters) {
var total = chapters.reduce(function(acc, chapter) {
var active = (chapter.lessons).filter(function(lesson) {
return lesson.lessonActive;
});
return acc.concat(active);
}, []);
return total;
}
File Icons
As the name suggests, File Icons adds icons to a filename within the sidebar tree based on the file type “for improved visual grepping”. In other words, you can find a file from the tree at a quick glance. You can specify whether you want the icons in color or not as well.
Emmet
Type an abbreviation about the HTML or CSS you want and Emmet expands it out for you. For example, pressing TAB after ul#sample-id>li.sample-class*2
will output:

Check out the abbreviation syntax for more info.
less-than-slash
If you’re used to Sublime Text, then you will definitely want less-than-slash, as you can close out a tag when you type </
.
Todo Show
Todo Show summarizes all TODO
, FIXME
, CHANGED
, XXX
, IDEA
, HACK
, NOTE
, REVIEW
comments, scattered throughout your code, in a nice organized list.
Press CTRL-SHIFT-T to activate:
Conclusion
That’s it. Start here, but be sure to check out all the Atom packages (nearly 5,000 as of writing!) to fully personalize your development environment. Can’t find a package? Put your coding skills to use and write your own package, and then support the community by open sourcing the package!
Comment below with any packages that I missed. Cheers!


Welcome to Specta; an online lending platform that offers loans
of up to N5,000,000 in 5 Minutes to already profiled salaried workers. Our goal is to create a
simple, convenient, and personalized experience for you using proprietary data and analytics to
review applications.
With Specta, you do not need collaterals, paperwork or a visit to any office to get your loan
approved and funds disbursed if you are profiled. Once application is complete, scoring is
instant and disbursement done in less than 5 Minutes.
To get profiled, please be informed that you must be a salary earner.
Have a STERLING SALARY Account Number?
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.


--- layout: post title: Pacquiao vs. Marquez 3 Review date: 2012-03-07 06:43:54.000000000 +08:00 permalink: pacquiao-vs-marquez-3-review/ categories: - boxing - featured tags: [] status: publish type: post published: true meta: _edit_last: '2' _thumbnail_id: '24' OGP: a:20:{s:5:"title";s:0:"";s:4:"type";s:0:"";s:5:"image";s:0:"";s:11:"description";s:0:"";s:9:"fb:admins";s:0:"";s:9:"fb:app_id";s:0:"";s:14:"street-address";s:0:"";s:4:"city";s:0:"";s:11:"postal-code";s:0:"";s:12:"country-name";s:0:"";s:5:"email";s:0:"";s:12:"phone_number";s:0:"";s:10:"fax_number";s:0:"";s:5:"video";s:0:"";s:10:"videowidth";s:0:"";s:11:"videoheight";s:0:"";s:9:"videotype";s:0:"";s:6:"locale";s:0:"";s:18:"locale-alternative";s:0:"";s:3:"url";s:0:"";} _yoast_wpseo_focuskw: '' _yoast_wpseo_title: '' _yoast_wpseo_metadesc: '' _yoast_wpseo_meta-robots-noindex: '0' _yoast_wpseo_meta-robots-nofollow: '0' _yoast_wpseo_meta-robots-adv: none _yoast_wpseo_sitemap-include: '-' _yoast_wpseo_sitemap-prio: '-' _yoast_wpseo_canonical: '' _yoast_wpseo_redirect: '' cleaned: true ---
It's been a long wait before finally the third fight had occured between these two great warriors. The result however is not what everyone wants to see:
Pacquiao did not succesfully knocked-out Marquez, he did not even won the fight decisively.
Marquez have not won the judges scorecard. He did either not get pacman knocked out ( he said he is looking for a knock-out before the fight) and a lot of Mexicans are disappointed on the results.
Who should had won? Pacquiao.
Pacquiao is the depending champion, he could actually just sit there and just play it safe. It's marquez who needs to prove something.
The ironic part is, Marquez is not aggressive enough to get the belt. He is just waiting for the chance to counter-punch. This is not an ideal way to get a belt, you need to be aggressive and make the opponent lose convicingly. That's the mistake on Marquez's end --- He lacks offense.
I'm a Pacquiao fan, and I do believe, technically, Marquez is better than Pacquiao specially in ring IQ and strategy.
But this a thing I'm believing into:
"You should beat someone on what he does best, before you could declare yourself greater than him"
Pacquiao's style is not a technical fighter. neither a counter-puncher. If Marquez wants to prove something, beat Mayweather, because he is the best in counter-punching. If you want to prove that you had beaten pacquiao, beat him in a slugfest, because that is what Pacquiao does best. --- power to power.


Pre-requisites
Ruby
Version 1.8.6 or higher is required. You can find out which version you are running by executing:
ruby -v
Information on installing Ruby can be found here: www.ruby-lang.org/en/downloads
Ruby Gems
You’ll need Ruby Gems version 1.3.1 or later. You can check which version of “gem” you have by running:
gem -v
Information on installing Ruby Gems can be found here:
http://www.rubygems.org/read/chapter/3
To update your Ruby Gems, run (YMMV for various operating systems):
sudo gem install rubygems-update sudo update_rubygems
You can also manually install Ruby Gems:
wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz tar xzf rubygems-1.3.1.tgz cd rubygems-1.3.1 sudo ruby setup.rb gem -v
These commands should work for Linux and OSX, but we haven’t yet written any instructions for Windows installation. If anyone is able to volunteer for this task, please let us know!
Ruby Gems Sources
Make sure you have the standard ruby gem sources available:
gem sources -l
should show
http://gems.rubyforge.org http://gems.rubyonrails.org
If you’re missing those gem sources, add them like this:
gem sources -a http://gems.rubyforge.org gem sources -a http://gems.rubyonrails.org ==Git Client Information on getting the git client installed can be found here: http://git-scm.com/ http://book.git-scm.com/2_installing_git.html If you are behind a firewall, you may need to open port 9418 for Git.
Install Blacklight’s Ruby Gem TEST dependencies by running:
(Please see vendor/plugins/blacklight/init.rb for the Blacklight plugin dependencies’ versions. An example of a versioned install: sudo gem install rails —version ‘2.3.2’)
sudo gem install cucumber <-- for testing, must be version 0.3.5 or higher sudo gem install curb <-- used by rsolr sudo gem install rails sudo gem install rspec <-- for testing sudo gem install rspec-rails <-- for testing sudo gem install webrat <-- for testing, must be version 0.4.4 or higher sudo gem install authlogic <-- for authentication
You can confirm your gem installations and their release numbers with
gem list
Database dependencies
You can choose to use any database that has ruby on rails bindings, but sqlite and mysql are used most commonly and are documented here.
- if you are using sqlite3:
sudo gem install sqlite3-ruby
If you want to use sqlite, you will need to install sqlite3 and its ruby bindings
On Red Hat Fedora the command is:
sudo yum install sqlite sqlite-devel ruby-sqlite3
On OSX macports the command is:
sudo port install sqlite3 rb-sqlite3
On FreeBSD the command is:
cd /usr/ports/databases/rubygem-sqlite3 && make install clean
- if you are using mysql, make sure mysql is installed, and run:
sudo gem install mysql
Dependencies included with Blacklight
- ActsAsTaggableOnSteroids plugin docs: agilewebdevelopment.com/plugins/acts_as_taggable_on_steroids
- Resource Controller: github.com/giraffesoft/resource_controller/tree/master There is a very good
video tutorial on the resource_controller plugin: www.vimeo.com/637894


Created by petriken and contributors
To create a function declaration you use the function keyword followed by the name of the function
function name(parameter1, parameter2, parameter3) {
code to be executed
}
When using function declarations, the function definition is hoisted, thus allowing the function to be used before it is defined
A Function Expressions defines a named or anonymous function
let anonymous = function() {
code to be executed
}
let named = function name() {
code to be executed
}
Expressions are not hoisted, and therefore cannot be used before they are defined
Arrow functions (also called “fat arrow functions”) are undoubtedly one of the more popular features of ES6.
a function written in ES5 syntax:
function timesTwo(parameters) {
return param * 2
}
timesTwo(3); // 6
the same function expressed as an arrow function:
let timesTwo = parameters => param * 2
timesTwo(3); // 6
Arrow functions does not have its own this, arguments, super
, or new.target
These function expressions are best suited for
non-method functions, and they cannot be
used as constructors.
Surveys show they’re the most popular ES6 feature:
by Dr. Axel Rauschmayer from 2ality.comAccording to the airbnb style guide, you must use named function expressions instead of function declarations
// bad
function foo() {
// ...
}
// bad
const foo = function () {
// ...
};
// good
// lexical name distinguished from the variable-referenced invocation(s)
const short = function longUniqueMoreDescriptiveLexicalFoo() {
// ...
};
An Immediately-invoked Function Expression (IIFE) is a way to execute functions immediately, as soon as they are created.
This is the syntax that defines an IIFE:
(function() {
code to be executed
})()
We basically have a function defined inside parentheses, and then we append () to execute that function: (/* function */)().
You could also put the invoking parentheses inside the expression parentheses, there is no difference, just a styling preference
(function() {
/* */
}())
(() => {
/* */
}())
IIFEs can be defined with arrow functions as well:
(() => {
code to be executed
})()
Also you might see IIFES STARTING WITH A SEMICOLON
;(function() {
/* */
})()
This prevents issues when blindly concatenating two
JavaScript files
What is this ?
The JavaScript this keyword refers to the object it belongs to.
In most cases, the value
of this is determined by how a function is called. It can't be set by
assignment during execution, and it may be different each time the function is called.
In the global execution context (outside of any function), this refers to the global object whether in strict mode or not.
// In web browsers, the window object is also
// the global object:
console.log(this === window); // true
a = 37;
console.log(window.a); // 37
this.b = "MDN";
console.log(window.b) // "MDN"
console.log(b) // "MDN"
Inside a function, the value of this depends on how the function is called.
Since the following code is not in strict mode, and because the value of this is not set by the call, this will default to the global object, which is window in a browser.
function f1() {
return this;
}
// In a browser:
f1() === window; // true
// In Node:
f1() === global; // true
In strict mode, however, the value of this remains at whatever it was set to when entering the execution context, so, in the following case, this will default to undefined
To pass the value of this from one context to another, use call(), or apply():
// An object can be passed as the first argument
// to call or apply and this will be bound to it.
const obj = {a: 'Custom'};
// This property is set on the global object
const a = 'Global';
function whatsThis() {
return this.a; // The value of this is dependent
// on how the function is called
}
whatsThis(); // 'Global'
whatsThis.call(obj); // 'Custom'
whatsThis.apply(obj); // 'Custom'
ECMAScript 5 introduced method .bind()
Calling
f.bind(someObject) creates a new function with the same body and scope as f, but where
this occurs in the original function, in the new function it is permanently bound to the first argument
of bind, regardless of how the function is being used
function f() {
return this.a;
}
let g = f.bind({a: 'azerty'});
console.log(g()); // azerty
let h = g.bind({a: 'yoo'}); //bind only works once!
console.log(h()); // azerty
let o = {a: 37, f: f, g: g, h: h};
console.log(o.a, o.f(), o.g(), o.h()); // 37,37,
// azerty, azerty
In arrow functions, this retains the value of the enclosing lexical context's this. In global code, it will be set to the global object:
let globalObject = this;
let foo = (() => this);
console.log(foo() === globalObject); // true
No matter what, foo's this is set to what it was when it was created.The same applies to arrow functions created inside other functions: their this remains that of the enclosing lexical context.
When a function is called as a method of an object, its this is set to the object the method is called on. Note that this behavior is not at all affected by how or where the function was defined
When a function is used as a constructor (with the new keyword), its this is bound to the new object being constructed
When a function is used as an event handler, its this is set to the element the event fired from (some browsers do not follow this convention for listeners added dynamically with methods other than addEventListener())
When the code is called from an inline on-event handler, its this is set to the DOM element on which the listener is placed:
The above alert shows button. Note however that only the outer code has its this set this way
function makeFunc() {
let name = 'Godzilla';
function displayName() {
alert(name);
}
return displayName;
}
let myFunc = makeFunc();
myFunc();
A closure is the combination of a function and the lexical environment within which that function was declared
function makeAdder(x) {
return function(y) {
return x + y;
};
}
const add5 = makeAdder(5);
const add10 = makeAdder(10);
console.log(add5(2)); // 7
console.log(add10(2)); // 12
A closure is the combination of a function and the lexical environment within which that function was declared
Closures are useful because they let you associate some data (the lexical environment) with a function that operates on that data
It is unwise to unnecessarily create functions within other functions if closures are not needed for a particular task, as it will negatively affect script performance both in terms of processing speed and memory consumption
Is a mechanism of combining multiple simple functions to build a more complicated one. The result of each function is passed to the next one until you get a result
function compose(f1, f2) {
return function(value) {
return f1(f2(value));
};
}
or as an arrow function
() => () => result;
Compose has a twin. It’s often called pipe
const pipe = (fn,...fns) => (...args) => ...magic...;
//use the spread operator, ...fns, to apply all the
//arguments to compose to pipe, but backwards
const compose = (...fns) => pipe(...fns.reverse());
Method chaining is a technique that can be used to simplify code in scenarios that
involve calling multiple functions on the same object consecutively.
The typical way to enable method
chaining is to return the current object at the end of every function.
For our example, we will define a custom class with the ability to chain methods
const Kitten = function() {
this.name = 'Garfield';
this.color = 'brown';
this.gender = 'male';
};
Kitten.prototype.setName = function(name) {
this.name = name;
return this;
};
Kitten.prototype.setColor = function(color) {
this.color = color;
return this;
};
Kitten.prototype.setGender = function(gender) {
this.gender = gender;
return this;
};
Kitten.prototype.save = function() {
console.log(
'saving ' + this.name + ', the ' +
this.color + ' ' + this.gender + ' kitten...'
);
return this;
};
Here is example with method chaining on our new class:
new Kitten()
.setName('Bob')
.setColor('black')
.setGender('male')
.save();
// > saving Bob, the black male kitten...
Here is example without method chaining on our new class:
const bob = new Kitten();
bob.setName('Bob');
bob.setColor('black');
bob.setGender('male');
bob.save();
// > saving Bob, the black male kitten...
By using method chaining we end up with much cleaner code that is easier to understand.
Method chaining
can be a very useful technique to have in your bag of programming tools


Apollo Expeditions to the Moon
CHAPTER 15.6
LIFE IN AN OCEAN OF GAS
Our atmosphere is the breath of life to everything we do. It
is an ocean of gas in which we live as fish live in an ocean of
water. It is an integral part of our planet, and we cannot
understand Earth's history without also understanding its
atmosphere. In seeking to do this, the wide variation from the
airless Moon to the exotic and turbulent atmosphere of Jupiter
provides an invaluable context and perspective. As it happens,
the solar system has several planetary atmospheres between these
extremes.
Earth's atmosphere lies intermediate in surface pressure
between that of Venus and Mars, Venus' atmosphere being about 100
times that of Earth, and Mars' about one one-hundredth. The
composition of the atmospheres of Venus and Mars is predominantly
carbon dioxide, while Earth's today is predominantly nitrogen and
oxygen. On the other hand, the amount of carbon dioxide tied up
in the carbonate of the Earth's crust is comparable to what we
see free in the atmosphere of Venus today. Presumably on Earth
carbon dioxide exhaled from volcanoes, in the presence of the
abundant water, was soon taken up into the crustal rocks. Life on
Earth doubtless accounts for the presence of so much oxygen in
the atmosphere, most of which was probably generated by
photosynthesis. From the Mariner observations of Mercury, it
appears that Mercury is closer to the Moon than to Mars as far as
atmosphere is concerned.
Much patient work remains to bring out the full significance
of Apollo observations. Nevertheless it is already clear that
Apollo has made a great contribution to the development of the
new field of comparative planetary studies, a field that over the
years will provide us priceless insights into our own planet. In
days of deep concern over the Earth's environment and finite
resources, comparative planetology is a new science of
incalculable importance, and Apollo led the way.


A package to work with materials microstructures and 3d data sets
Convention to read and write 2d images with pyplot
apps Package
Enter search terms or a module, class or function name.


The API root URL is http://api.beancounter.io/rest/
All the subsequent
methods are to be intended as relative to that URL. Responses are available
in JSON format only and are all in this format:
{
"status": OK | NOK ,
"message": a success or error message,
"object": an optional object that may be returned
}
DISCLAIMER: responses are going to change frequently. Be aware and refer often to this page
The Beancounter is a centralized hub where data about users
activities and some processing on them - such as profiling or
analytics - are performed. The Beancounter is intended to be used by
third-party applications on top of its APIs. This means that all the applications
will share the same user base and the same analytics or profiling
results among them.
Every application using the Beancounter API needs to be registered in advance
and sign every HTTP call with the URL Query parameter.
1) Register a new application
Path: /application/register
Method: POST
Parameters:
- name, the application uniquely identifying name.
- description, a human readable short text describing what you do
with the Beancounter
- email, contact email - must be a human behind it :)
- oauthCallback, the URL if I need to redirect you when the
OAuth process completes.
Description: it registers a new application to the Beancounter
Example: with curl
curl -d "name=test-app&description=testing&email=dpalmisano@gmail.com&oauthCallback=http://google.com" http://api.beancounter.io/rest/application/register
Response:
{
"status": "OK",
"message": "Application 'test-app' successfully registered",
"object": "288301728d2b446c890b5094317e775a"
}
the returned object value is your apikey. Beware: write it down and
keep it - if you misplace it, contact me.
2) Deregister an application
Path: /application/{apikey}
Method: DELETE
Parameters:
- {apikey}, the apikey uniquely identifying you application.
Description: it removes the application from the Beancounter and all
its privilegies.
Example: with curl
curl -X DELETE http://api.beancounter.io/rest/application/288301728d2b446c890b5094317e775a
Path: /user/register
Method: POST
Parameters:
- username
- password
- name
- surname
- apikey
Description: it registers a new user to the Beancounter with username, password, name and surname.
Example: with curl
curl -d "name=Davide&surname=Palmisano&username=dpalmisano&password=abracadabra" http://api.beancounter.io/rest/user/register?apikey=your-api-key
with parameter body (application/x-www-form-urlencoded).
response:
{
"status":"OK",
"message":"user successfully registered",
"object":"5fe903d3-c6ef-49ba-a9af-44d91f028138"
}
The value in the 'object' fields is the unique user identifier in the
Beancounte plaform. Could be considered equivalent to the user name.
If the username is already taken, the service replies:
{
"status":"NOK",
"message":"username 'dpalmisano' is already taken"
}
Path: /user/{username}
Method: GET
Parameters:
- {username} the Beancounter username
- apikey
Description: it returns the user data but not the profile.
Example:
GET http://api.beancounter.io/rest/user/dpalmisano?apikey=your-api-key
response:
{
"status":"OK",
"message":"user 'dpalmisano' found",
"object":
{
"name":"Davide",
"surname":"Palmisano",
"forcedProfiling":false,
"activities":[],
"services":{},
"username":"dpalmisano",
"id":"5fe903d3-c6ef-49ba-a9af-44d91f028138"
}
}
Path: /user/{username}
Method: DELETE
Parameters:
- {username} the Beancounter username
- apikey
Description: it deletes all the user data and activities.
Example: with curl
curl -X DELETE http://api.beancounter.io/rest/user/dpalmisano?apikey=your-api-key
Path: /user/{username}/authenticate
Method: POST
Parameters:
- {username} the Beancounter username
- {password} the user password
- apikey
Description: it authenticates or not a user.
Example: with curl
curl -d "password=abracadabra" http://api.beancounter.io/rest/user/dpalmisano/authenticate?apikey=your-api-key
Path: /user/{username}/profile
Method: GET
Parameters:
- {username} the Beancounter username
- apikey
Description: it returns a weighted interests profile in JSON.
Example: with curl
curl http://api.beancounter.io/rest/user/dpalmisano/profile?apikey=your-api-key
8) Add a source (twitter, facebook) to a user
Beancounter.io APIs support only those services which are
OAuth-compliant or OAuth-like compliant. Twitter (OAuth-compliant)
and Last.fm (OAuth-like) examples follow:
Twitter
1) Send your Beancounter user with {username} to this url:
http://api.beancounter.io/rest/user/oauth/token/twitter/{username}?redirect={redirect} where:
- {redirect} is the URL of the user final landing page destination.
2) Then, the user will be redirected to his Twitter account home
page to authorize the Beancounter application.
Facebook
1) Send your Beancounter user with {username} to this url:
http://api.beancounter.io/rest/user/oauth/token/facebook/dpalmisano?redirect={redirect} where:
- {redirect} is the URL of the user final landing page destination.
2) Then, the user will be redirected to his Facebook account home
page to authorize the Beancounter application.
9) Remove a source (twitter, facebook) to a user
Path: /user/source/{username}/{service}
Method: DELETE
Parameters:
- {username} the Beancounter username
- {service} the service you want to remove from the user
- apikey
Description: it deletes a service from a user. That service will be
not used anymore until you don't add it again.
Example: with curl
curl -X DELETE http://api.beancounter.io/rest/user/source/dpalmisano/facebook?apikey=your-api-key
Path: /user/{username}/{service}/check
Method: GET
Parameters:
- {username} the Beancounter username
- {service} a supported service
- apikey
Description: it checks the token validity stored for the specified user.
Supported services: facebook and twitter.
Example: with curl
curl http://api.beancounter.io/rest/user/dpalmisano/facebook/check?apikey=your-api-key
{
"status": "OK",
"message": "[facebook] token for [dpalmisano] is valid"
}
Path: /activities/add/{username}
Method: POST
Parameters:
- {username} the Beancounter username
- activity : the activity in JSON format
- apikey
Description: It pushes the activity to the User.
Example with curl:
$ curl -d "activity={\"verb\":\"TWEET\",\"object\":{\"type\":\"TWEET\",\"url\":\"http://twitter.com/username/my_tweeet\",\"name\":null,\"description\":null,\"text\":\"A fake text\",\"hashTags\":[\"testingBeancounter\"],\"urls\":[]},\"context\":{\"date\":1340702105000,\"service\":\"http://twitter.com\",\"mood\":null}}" http://api.beancounter.io/rest/activities/add/dpalmisano?apikey=your-api-key
A "basic" JSON activity is made from an "object", a "context" and a "verb".
{
"object":
{
"type": the type of the activity,
"name": the name of the activity,
"description": a simple description of the activity,
"url": the url for the activity
},
"context":
{
"date": the date of the activity,
"service": the service of the activity,
"mood": the mood of the user
},
"verb": the kind of activity
}
At the moment the only possible "type" is "TWEET".
The available verbs are "TWEET", "FOLLOWING" and "FAVORITED".
TWEET
A TWEET has additional fields, as "text", "hashTags" and "urls".
The "text" is for text of the tweet.
"hashTags" is a list of strings of the tags in the tweet.
"urls" is a list of strings of the urls in the tweet.
TWEET Example
{
"object":
{
"type": "TWEET",
"text": "Just a fake tweet!",
"hashTags": ["testingBeancounter"],
"urls": ["http://fakeUrl.io"],
"name": "tweet_name",
"description": "A fake description",
"url": "http://twitter.com"
},
"context":
{
"date": null,
"service": null,
"mood": null
},
"verb": "TWEET"
}
Responses
If the activity was successfully added:
{
"status": "OK",
"message": "activity successfully registered",
"object": the id of the activity
}
12) Get a single activity
Path: /activities/{activityId}
Method: GET
Parameters:
- {activityId} the activityId of one of some user's activities
- apikey
Description: it retrieves a single specified activity if it exists and
is visible.
Example: with curl
$ curl http://api.beancounter.io/rest/activities/550e8400-e29b-41d4-a716-446655440000?apikey=your-api-key
Responses
If the activity was successfully retrieved:
{
"status": "OK",
"message": "activity with id [{activityId}] found",
"object": the activity in JSON format
}
If the activity does not exist or is hidden:
{
"status": "OK",
"message": "no activity with id [{activityId}]"
}
13) Change the visibility of an activity
Path: /activities/{activityId}/visible/{isVisible}
Method: PUT
Parameters:
- {activityId} the activityId of one of some user's activities
- {isVisible} either true or false depending
on whether the activity should be visible or not
- apikey
Description: sets the visibility of the specified activity. A hidden
activity will not be searched on or returned from any of the REST API
calls.
Example: with curl
$ curl -XPUT http://api.beancounter.io/rest/activities/550e8400-e29b-41d4-a716-446655440000/visible/false?apikey=your-api-key
Responses
If the visibility of the activity was successfully updated:
{
"status": "OK",
"message": "activity [{activityId}] visibility has been modified to [{isVisible}]"
}
If the activity's visibility could not be updated:
{
"status": "NOK",
"message": "Error modifying the visibility of activity with id [{activityId}]",
"object": internal error message specifying the cause of the error
}
14) Get all activities of a user
Path: /activities/all/{username}/
Method: GET
Parameters:
- {username} the Beancounter username
- page : the page of results to return (default is 0)
- order : the order the results should be returned in; either
"asc" for ascending (earliest activities first) or "desc" for descending
(latest activities first). The default is "desc".
- apikey
Description: retrieves all the activities of the specified user in a
paginated format where page 0 is the first page. If the page
parameter is omitted, it will be set to 0 by default. Each page
contains up to 20 activities.
Example: with curl
$ curl http://api.beancounter.io/rest/activities/all/dpalmisano?apikey=your-api-key
Responses
If the specified user has no activities:
{
"status": "OK",
"message": "user '{username}' has no activities."
}
If the specified user has activities for that page number:
{
"status": "OK",
"message": "user '{username}' activities found.",
"object": [list of up to 20 activities]
}
If the specified user has no activities for that page number:
{
"status": "OK",
"message": "user '{username}' has no more activities."
}
15) Search for activities
Path: /activities/search
Method: GET
Parameters:
- path : the JSON path to search on
- value : the value to search for
- page : the page of results to return (default is 0, the first page)
- order : the order the results should be returned in; either
"asc" for ascending (earliest activities first) or "desc" for descending
(latest activities first). The default is "desc".
- apikey
Description: searches all activities looking for a JSON path with the
specified value. Wildcard searches using '*' are not permitted.
If the page parameter is omitted, it will be set to 0 by default.
Each page contains up to 20 activities.
Example: with curl
$ curl http://api.beancounter.io/rest/activities/search?path=activity.type&value=TWEET&page=3&order=asc&apikey=your-api-key
Responses
If the search found at least one matching activity for the specified
page number:
{
"status": "OK",
"message": "search for [path=value] found activities.",
"object": [list of up to 20 activities]
}
If the search found no matching activities:
{
"status": "OK",
"message": "search for [path=value] found no activities."
}
A filter is a way to divert activities through different
channels. A filter is basically identified with a
name and could be described with a human-readable
description. A filter must be paired with an
activity pattern which identifies which activities
need to be diverted through the filter. This section
describes how register and manage filters on
beancounter.io.
Path: /filters/register/{name}
Method: POST
Parameters:
- {name} the name uniquely identifying the filter
- description:a human-readable description of the filter
- pattern : the activity pattern, in JSON format
- queue : the name of the target queue
- apikey : your app key
Description: it register a new filter if the provided name has not been taken already
Example: with curl
curl -d "description=test-description&queue=testqueue&pattern={"userId":{"uuid":null},"verb":{"verb":"ANY"},"object":{"type":"io.beancounter.filter.model.pattern.rai.CommentPattern",
"typePattern":{"string":"io.beancounter.filter.model.pattern.rai.CommentPattern"},"url":{"url":null},"onEventPattern":{"string":"ContentSet-07499e81-1058-4ea0-90f7-77f0fc17eade"}},"context":{"date":{"date":1,"bool":"AFTER"},"service":{"string":""},"mood":{"string":""},"username":{"string":""}}}" http://api.beancounter.io/rest/filters/register/test-filter?apikey=your-api-key
{
"status": "OK",
"message": "filter [test-filter] successfully registered",
"object": "test-filter"
}
A "basic" JSON activity pattern is made from an "object",
a "context" and a "verb", as described below:
{
"userId": {
"uuid": null
},
"verb": {
"verb": "ANY"
},
"object": {
"type": "io.beancounter.filter.model.pattern.rai.CommentPattern",
"typePattern": {
"string": "io.beancounter.filter.model.pattern.rai.CommentPattern"
},
"url": {
"url": null
},
"onEventPattern": {
"string": "ContentSet-07499e81-1058-4ea0-90f7-77f0fc17eade"
}
},
"context": {
"date": {
"date": 1,
"bool": "AFTER"
},
"service": {
"string": ""
},
"mood": {
"string": ""
},
"username": {
"string": ""
}
}
}
Path: /filters/{name}
Method: GET
Parameters:
- {name} the name uniquely identifying the filter
- apikey : your app key
Description: it retrieves the filter, if present
Example: with curl
curl http://api.beancounter.io/rest/filters/test-filter?apikey=your-app-key
{
"name": "test-filter",
"description": "test-description",
"definedAt":<PHONE_NUMBER>627,
"active": false,
"activityPattern": {
"userId": {},
"verb": {
"verb": "ANY"
},
"object": {
"type": "io.beancounter.filter.model.pattern.rai.TVEventPattern",
"typePattern": {
"string": "io.beancounter.filter.model.pattern.rai.TVEventPattern"
},
"url": {},
"uuidPattern": {
"uuid": "2590fd3d-97ea-49bb-b7ec-04da7553bb0a"
}
},
"context": {
"date": {
"date":<PHONE_NUMBER>683,
"bool": "BEFORE"
},
"service": {
"string": ""
},
"mood": {
"string": ""
},
"username": {
"string": ""
}
}
18) List all registered filters
Path: /filters/list/all
Method: GET
Description: lists all the names of the registered filters
Example: with curl
curl http://api.beancounter.io/rest/filters/list/all?apikey=your-app-key
{
"status":"OK",
"message":"[1] registered filters found",
"object":["test-filter"]
}
19) Start a specific filter
Path: /filters/{name}/start
Method: GET
Description: starts a registered filter
Example: with curl
curl http://api.beancounter.io/rest/filters/test-filter/start?apikey=your-app-key
{
"status":"OK",
"message":"filter with name [test-filter] started",
"object":"test-filter"
}
20) Stop a specific filter
Path: /filters/t{name}/stop
Method: GET
Description: stops a registered filter
Example: with curl
curl http://api.beancounter.io/rest/filters/test-filter/stop?apikey=your-app-key
{
"status":"OK",
"message":"filter with name [test-filter] stopped",
"object":"test-filter"
}
21) Delete a specific filter
Path: /filters/t{name}/stop
Method: DELETE
Description: completely removes a registered filter
Example: with curl
curl -X DELETE http://api.beancounter.io/rest/filters/test-filter?apikey=your-app-key
{
"status":"OK",
"message":"filter with name [test-filter] deleted",
"object":"test-filter"
}
Utilities APIs to check beancounter.io status and other
amenities. The apikey is not needed for these APIs.
22) Check Beancounter.io service
Path: /api/check
Description: it checks the status of the Beancounter.io returning the timestamp in ms
Example: with curl
curl http://api.beancounter.io/api/alive/check
{
"status": "OK",
"message": "system up and running at",
"object": "1342112536581"
}
23) Get beancounter.io version
Path: /api/version
Description: it retrieves the beancounter.io current version
Example: with curl
curl http://api.beancounter.io/rest/api/
{
"status":"OK",
"message":"beancounter.io version",
"object":"1.1"
}


--- layout: post title: "My Week(s) in Review" date: 2020-04-26 20:00:00 +0000 image: https://s3.amazonaws.com/audreywatters/2020-04-26-fox.jpg imagecredits: https://www.flickr.com/photos/plasticbag/32196079431 ---
I haven't written one of these in a while. I've been in a pretty dark place, I won't lie. The global pandemic hasn't helped. Like. At all. But things are sunnier now — literally, as we moved from Seattle to Oakland a couple of weeks ago. I'm trying to re-establish old routines and kickstart some new ones.
This was really not the time to try to reach people to secure permissions, but I managed to do so. Slowly. The book is now in the hands of the production team at MIT Press. Publication date: 2021
HEWN, No. 346 via substack.com (and since I last published this weekly round-up, No. 345)
I've been doing quite a bit of speaking, although this was the first paid gig in a while. Thank God. And I have quite a few gigs coming up. They're mostly unpaid, but I volunteered to be a guest speaker in classes, and I think it's the least I can do right now to help support educators.
This past week: LOL, what? Upcoming week: Haha. We're all at home.
I've missed out on tracking a lot of this, although I really haven't been reading much until recently. I finished the latest John Scalzi novel and the latest N. K. Jemisin one. I'm reading quite a bit for new writing and speaking projects too. As far as listening: the new Fiona Apple album is amazing. As far as viewing: ugh, I've been watching too much TV, most of it quite unremarkable. We did watch the Beastie Boys documentary twice this week, because apparently I need to ugly-cry regularly.
Icon credits: The Noun Project


By downloading or using the app, these terms will automatically apply to you – you should make sure therefore that you read them carefully before using the app. You’re not allowed to copy, or modify the app, any part of the app, or our trademarks in any way. You’re not allowed to attempt to extract the source code of the app, and you also shouldn’t try to translate the app into other languages, or make derivative versions. The app itself, and all the trade marks, copyright, database rights and other intellectual property rights related to it, still belong to Sodium Halogen.
Sodium Halogen is committed to ensuring that the app is as useful and efficient as possible. For that reason, we reserve the right to make changes to the app or to charge for its services, at any time and for any reason. We will never charge you for the app or its services without making it very clear to you exactly what you’re paying for.
The SH Brainstorm app stores and processes personal data that you have provided to us, in order to provide our Service. It’s your responsibility to keep your phone and access to the app secure. We therefore recommend that you do not jailbreak or root your phone, which is the process of removing software restrictions and limitations imposed by the official operating system of your device. It could make your phone vulnerable to malware/viruses/malicious programs, compromise your phone’s security features and it could mean that the SH Brainstorm app won’t work properly or at all.
The app does use third party services that declare their own Terms and Conditions.
Link to Terms and Conditions of third party service providers used by the app
You should be aware that there are certain things that Sodium Halogen will not take responsibility for. Certain functions of the app will require the app to have an active internet connection. The connection can be Wi-Fi, or provided by your mobile network provider, but Sodium Halogen cannot take responsibility for the app not working at full functionality if you don’t have access to Wi-Fi, and you don’t have any of your data allowance left.
If you’re using the app outside of an area with Wi-Fi, you should remember that your terms of the agreement with your mobile network provider will still apply. As a result, you may be charged by your mobile provider for the cost of data for the duration of the connection while accessing the app, or other third party charges. In using the app, you’re accepting responsibility for any such charges, including roaming data charges if you use the app outside of your home territory (i.e. region or country) without turning off data roaming. If you are not the bill payer for the device on which you’re using the app, please be aware that we assume that you have received permission from the bill payer for using the app.
Along the same lines, Sodium Halogen cannot always take responsibility for the way you use the app i.e. You need to make sure that your device stays charged – if it runs out of battery and you can’t turn it on to avail the Service, Sodium Halogen cannot accept responsibility.
With respect to Sodium Halogen’s responsibility for your use of the app, when you’re using the app, it’s important to bear in mind that although we endeavour to ensure that it is updated and correct at all times, we do rely on third parties to provide information to us so that we can make it available to you. Sodium Halogen accepts no liability for any loss, direct or indirect, you experience as a result of relying wholly on this functionality of the app.
At some point, we may wish to update the app. The app is currently available on iOS – the requirements for system(and for any additional systems we decide to extend the availability of the app to) may change, and you’ll need to download the updates if you want to keep using the app. Sodium Halogen does not promise that it will always update the app so that it is relevant to you and/or works with the iOS version that you have installed on your device. However, you promise to always accept updates to the application when offered to you, We may also wish to stop providing the app, and may terminate use of it at any time without giving notice of termination to you. Unless we tell you otherwise, upon any termination, (a) the rights and licenses granted to you in these terms will end; (b) you must stop using the app, and (if needed) delete it from your device.
we may update our Terms and Conditions from time to time. Thus, you are advised to review this page periodically for any changes. we will notify you of any changes by posting the new Terms and Conditions on this page.
These terms and conditions are effective as of 2020-04-17
If you have any questions or suggestions about our Terms and Conditions, do not hesitate to contact us at info@SodiumHalogen.com.


All submissions for this problem are available.In this problem, you will be given an array A of size N. The array will be 0-indexed and each element of the array will be a positive integer not greater than 9. You will be asked Q queries on this array.
In each query you will be given 3 integers l,r,x. You have to determine if the element x is present in the range A[l],A[l+1]....A[r]
Input:
First line of each test case contain the integer N, the size of the array.
Second line contain N space separated integers denoting the elements of the array
Next line contains the integer Q
Q lines follow where each of them contain 3 space seperated integers l,r,x.
Output:
For each testcase, output Q lines corresponding to the Q queries. Print "yes" if x is present in the given range, otherwise print "no".
Constraints
1≤N≤105
1≤Q≤105
1≤A[i],x≤9
0≤l,r≤N−1
Sample Input:
5
1 2 3 7 9
5
0 3 1
0 3 2
0 3 3
0 3 7
0 3 9
Sample Output:
yes
yes
yes
yes
no
EXPLANATION:
The first query yields yes as 1 is present in the sub array A[0],A[1],A[2],A[3]. The last query yields no as 9 is not present in the sub array A[0],A[1],A[2],A[3].


Predicting the Outcome of Professional Basketball Game
Introduction
The sports of basketball fascinates us for its unpredictability, but whenever we look retrospectively, the result almost always makes sense. We can explain a victory by many factors: better star players, better team chemistry, better coaching, better momentum, and the list goes on and on. With the belief that the result of a basketball game is not entirely random, we landed this project to predict the result of the game based on the previous records of the participating opponents.
Web Scraping
There was no comprehensive dataset that includes all the information we need for this project, so we made the best efforts to scrape data from the internet and then merged these datasets to create our dataset. The three data sources are basketball-reference, stats.nba.com and ESPN’s NBA website.
Potential Selection Bias
NBA rules have changed significantly since the start of league, leading to a great change in playing styles in the NBA. Since the data we collected are from 2008 to 2019, our model may achieve much worse results when trying to predict the outcomes of games a long time ago, like in the 20th century.
Feature Selection
Since feature selection is crucial in determining the result, we chose to design two methods to conduct feature selection: one is first to drop highly correlated features and then use the random forest to select the most 15 important features; the other is to use mutual information. By making feature selection in such two ways, we ended up in 16 sets of features for eight train-test splits. Now, we will call the first method using correlation and random forest as the feature selection strategy one and mutual information as the feature selection strategy two.
Blocking Time Series Split
To avoid potential problems of data leakage, traditional Cross Validation does not apply here due to its ran- domness. Instead, we used Blocking Time Series Split[8] written by staff in Packt as a strategy to tune the hyperparameters. Different from k-fold Cross Validation, Blocking Time Series Split uses a smaller set of data as test data and a fixed size of data before testing data as training data.


Heroin Has Always Been Here. It Wasn’t a ‘Crisis’ Until It Hit White Neighborhoods.
by Madison FellerGrowing up, I saw other people in my neighborhood who were using heroin. Then I became a heroin user. At one time, heroin was just in the inner city. And now that it's branching out, it's become an opioid ‘crisis.’ Politicians see their sons in college using and want to stop it. They’re losing loved ones because of opiates, so now they want to address it. Is it a little too late? I won't say that, but this has been an ongoing issue in Baltimore. Had they tried to stop it when I was younger, maybe it wouldn't have become as rampant as it is today.
I started using drugs at 14. It began with marijuana and quickly progressed to prescription medication, alcohol, heroin, cocaine. My bottom was when I was living in the basement of a house where we were plugging the holes up to keep the rats out. I looked around one day and thought, "How did my life turn out so bad?"
When I was little, I was really quiet and shy. I have a dark complexion, so I was teased a lot.  I'm the oldest of four girls, and I had a lot of responsibility placed on me at a very young age. I became this people pleaser, and I began to let people take advantage of me. At 14, someone asked me to smoke marijuana with them. I had never smoked, but I thought she liked me enough to ask me, so I did it.
Drugs gave me a false sense of courage. Once I got a little bit of freedom, I just wanted to continue to get that feeling. I wanted to block out all the things that I felt and all the things that were bothering me, and the drugs did that.
I went into a treatment facility on December 23, 1997 and stayed for 30 days. I was just so desperate, and I was so willing that I did whatever they had. I spoke to psychiatrists, counselors. I listened to the meetings. I was sharing all the pain, all the things that happened to me during my childhood that I never addressed, which contributed to my drug use. Once I left the facility, I started attending meetings and the 12-step program. My life really took off from there, and I haven’t used since.
Twenty-one years sober, I'm still seeing a psychiatrist and a therapist. In 2013, I was diagnosed with bipolar II, manic depression, and anxiety. I take medication to curb that. Going to therapy boils down to me accepting myself, past and present. I've learned to deal with things differently. Since getting clean, I’ve had two failed marriages.  I had an aunt and several uncles that passed. I couldn't use drugs to get me through. I didn't have the option to shut down. Instead, I can pick up the phone and call my sponsor. I can pray about it. I have these different avenues of dealing with my emotions. I'm not saying that drugs will never be an issue—they're always an issue. It's just that I choose not to go that route.
Now, I work as a certified peer recovery specialist, and my job is to assist people with substance use disorders. You may have someone that comes into the clinic where I work who wants treatment for their alcohol or drug addiction.  You may have individuals that are looking for housing, for clothing, for transportation. I’ve been in this field for five years, and I have a passion for it, to be able to identify and empathize with people who are going through what I’ve been through. I can be that face of hope to let them know they can get better. Just to be there to encourage them, to motivate them, to assist them in their journey of recovery. Just telling them, "Your life is not over. You can always move forward. And if you have a bad day, you can always start over."
In our program, we have a quote that says, "We did not suffer from a moral deficiency," meaning I didn't lose all my morals when I was using. It was just that the drugs were so powerful in my life that I did things that went against my principles just to get them—but that didn't mean that I lost it all. Even now, I'm so powerful. I'm such a go-getter. I want so much more for my life.
Linette Parrine-Waters, 53, was born and raised in Baltimore . She’s worked for the Baltimore County Health Department, as well as the Institutes for Behavior Resources’ REACH program, helping others with their own substance use disorders. She now works for Step by Step of Maryland .


DEE SNIDER'S STRANGELAND A film review by David N. Butterworth Copyright 1998 David N. Butterworth
** stars (out of ****)
"Dee Snider's Strangeland." To movie buffs, it doesn't have the familiar ring of, say, "John Carpenter's The Thing," "Russ Meyer's Vixen," or "Sidney Sheldon's Bloodline." And it's not nearly as funny as the recent "Jane Austen's Mafia!"
I wonder what made Dee Snider, best and perhaps only known for his heavily made-up persona as the front man for the heavy metal outfit Twisted Sister, associate his name with this film directly. Because he stars in it? Because he co-produced it? Because he wrote the sick and twisted thing? Maybe because he thought his name alone would rock the box office.
So what was going on in Snider's mind when, perhaps while awaiting the encore during the latest Sister tour, he sat down at his word processor and dreamed up "Strangeland"? Did he plan to revolutionize the horror film by conjuring up a uniquely shocking movie-going experience, or did he simply hope to cash in on a genre made profitable by those undiscerning enough to tell a "Scream" from a "Scream 2"?
If you said B then go to the top of the class: "Strangeland" is as by-the-book as horror movies come, but as such it's no less watchable than any number of "Psycho" rip-offs.
Perhaps if I hadn't expected it to be so bad I might have approved of it less.
As it turns out, "Strangeland" owes more to "The Silence of the Lambs" and the "Hellraiser" series than it does "Psycho" (if you were hoping for a little mother fixation, the remake of Hitchcock's classic shocker with "Return to Paradise"'s Vince Vaughn and Anne Heche is coming to a theater near you this Christmas). In "Strangeland," Snider plays a sadomasochistic deviant who prowls the Internet's teen chat rooms with the handle Capt. Howdy (Twisted Sister fans thrill away), luring unsuspecting minors to his basement of body-piercing depravity.
The online conversations are a little difficult to follow, visually, but it doesn't much matter since Capt. Howdy wastes little time in handing out the party invites. One victim proves to be the daughter of small town cop Mike Gage and his wife Toni (played with equal and adequate concern by Kevin Gage and Elizabeth Peņa) and it's find-and-nail-the-psycho-before-he-kills-again time.
There's a strange climax of sorts halfway through the film, when Howdy is tracked down and arrested rather easily. But if you've seen "Halloween" 1 through 7, you'll know you can't keep a good psychopath down. Howdy is reformed and rehabilitated as Carleton Hendricks who looks like he crawled off the pages of a Nathaniel Hawthorne novel, and this meek, apologetic personality is almost as creepy as his "Spawn"-like, rhetoric-spouting alter-ego.
Of course the townsfolk hassle Carleton and his medication accidentally gets run over. Oops.
The body-piercing focus and Snider's eerie dual performances keep the film interesting. While it's nice to see Robert Englund (aka Freddy Krueger) on the receiving end of the suffering for a change, there ain't buckets of creativity here. As for Dee Snider's drawing power, well, there was only one other person in the audience and he left before the film's closing metal track banged to an end.
So much for advertising.
-- David N. Butterworth<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Pilot walks away unscathed after plane crashes into power lines
by Yaron SteinbuchThis flight was a real high-wire act.
A pilot in Minnesota is lucky to be alive after crashing his Piper Cub into power lines and remaining suspended upside down until rescuers freed him, officials said.
“This incident could have been much worse,” Scott County Sheriff Luke Hennen said. “We are grateful the pilot was able to walk away without any injuries.”
The pilot and sole occupant, identified as 65-year-old Thomas Koskovich, was flying south near Shakopee in rural Minnesota about 4 p.m. Saturday when his single-engine plane struck the wires.
Emergency responders deactivated the power to the lines and brought the pilot safely to the ground.
The FAA said it was investigating the mishap, which occurred about 25 miles southwest of Minneapolis.


Deposit Wallet Report.
Wallet EON-ID
Currency
Amount Due (Currency)
Available Amount (Currency)
Due Date
Diff
wallet_eon_id
currency
amount due
available amount
due date
diff
wallet_eon_id
currency
amount due
available amount
due date
diff
Best regards,
Exscudo Team.


What is the desktop of your computer? The desktop is the area of the screen you see after turning on your computer and logging in. The top part of the desktop contains many icons. When the icons are clicked on, the computer user will be taken to applications, folders, or documents on the computer.
in-context


Package io.sf.carte.doc.style.css
Interface StyleDatabase
- All Known Implementing Classes:
AbstractStyleDatabase
public interface StyleDatabase
CSS Style database.
To use CSS in practice, you need to have information about the target rendering device:
available fonts, page sizes, etc. This information is supplied by an instance of the
StyleDatabase
interface.
- Author:
- Carlos Amengual
-
Method Summary
Modifier and Type Method Description int
getColorDepth()
Gives the number of bits allocated to colors (excluding the alpha channel) in the output device.String
getDefaultGenericFontFamily()
Gets the real name of the default font.String
getDefaultGenericFontFamily(String genericFamily)
Gets the name of the default font used when a generic font family (serif, sans-serif, monospace, cursive, fantasy) is specified.float
getDeviceHeight()
Gets the height of the device, expressed in its natural unit.float
getDeviceWidth()
Gets the width of the device, expressed in its natural unit.float
getExSizeInPt(String familyName, float size)
Gives the size of the 'ex' unit, expressed in 'pt' (typographic points) unit.float
getFontSizeFromIdentifier(String familyName, String fontSizeIdentifier)
Gets the font size from the given size identifier (small, medium, etc.), expressed in typographic points.CSSPrimitiveValue
getInitialColor()
Gives the initial (default) value for the 'color' property on this device.short
getNaturalUnit()
Gets the identifier of the device's natural unit.String
getSystemFontDeclaration(String systemFontName)
Gives the style declaration adequate to provide the given system font.String
getUsedFontFamily(CSSComputedProperties computedStyle)
Gets the used font family name according to the given style.float
getWidthSize(String widthIdentifier, float fontSize)
Gets the size corresponding to the given identifier (thin, thick, medium), in typographic points.boolean
isFontFaceName(String requestedFamily)
IsrequestedFamily
an available font family loaded by a font face rule?void
loadFontFaceRule(ExtendedCSSFontFaceRule rule)
Try to load the font family according to the given font face rule, and make it available to this object.void
setInitialColor(String initialColor)
Sets the initial (default) value for the 'color' property on this device.boolean
supports(String property, CSSValue value)
Does this medium support the given property-value pair?
-
Method Details
-
getInitialColor
CSSPrimitiveValue getInitialColor()Gives the initial (default) value for the 'color' property on this device.- Returns:
- the default color value.
-
setInitialColor
Sets the initial (default) value for the 'color' property on this device.- Parameters:
initialColor
- the String representing default color value.
-
getDefaultGenericFontFamily
Gets the name of the default font used when a generic font family (serif, sans-serif, monospace, cursive, fantasy) is specified.- Parameters:
genericFamily
- the name of the logical font.- Returns:
- the name of the real font to which the generic name is mapped to, or null if none.
-
getDefaultGenericFontFamily
String getDefaultGenericFontFamily()Gets the real name of the default font.For example, if the default generic font name is 'serif', this method should return the same as getDefaultGenericFontFamily("serif").
- Returns:
- the name of the default real font.
-
getUsedFontFamily
Gets the used font family name according to the given style.- Parameters:
computedStyle
- the computed style.- Returns:
- the name of the used font family.
-
getFontSizeFromIdentifier
Gets the font size from the given size identifier (small, medium, etc.), expressed in typographic points.- Parameters:
familyName
- the font family name. Could be null.fontSizeIdentifier
- the font size identifier.- Returns:
- the font size.
- Throws:
DOMException
- if the identifier is unknown.
-
getSystemFontDeclaration
Gives the style declaration adequate to provide the given system font.- Parameters:
systemFontName
- the system font name.- Returns:
- the style declaration, or null if the system font name was not recognized.
-
isFontFaceName
IsrequestedFamily
an available font family loaded by a font face rule?- Parameters:
requestedFamily
- the font family name in lower case.- Returns:
true
if is an available font family,false
otherwise.
-
loadFontFaceRule
Try to load the font family according to the given font face rule, and make it available to this object.- Parameters:
rule
- the font face rule.
-
getNaturalUnit
short getNaturalUnit()Gets the identifier of the device's natural unit.- Returns:
- the unit identifier as in
CSSPrimitiveValue
.
-
getExSizeInPt
Gives the size of the 'ex' unit, expressed in 'pt' (typographic points) unit.Although this type of information really belongs to
CSSCanvas
, having even an approximate value here is helpful.- Parameters:
familyName
- the font family name.size
- the font size in 'pt' units.- Returns:
- the size of the 'ex' unit, in units of 'pt'.
-
getWidthSize
Gets the size corresponding to the given identifier (thin, thick, medium), in typographic points.- Parameters:
widthIdentifier
- the CSS width identifier.fontSize
- the font size used by the box, in typographic points.- Returns:
- the size.
- Throws:
DOMException
- if the identifier is unknown.
-
getColorDepth
int getColorDepth()Gives the number of bits allocated to colors (excluding the alpha channel) in the output device.If the device is not a color device, the value is zero.
From W3C's Screen interface.
- Returns:
- the number of bits allocated to colors, or zero if the output device does not support colors.
-
getDeviceHeight
float getDeviceHeight()Gets the height of the device, expressed in its natural unit.- Returns:
- the height of the rendering device.
-
getDeviceWidth
float getDeviceWidth()Gets the width of the device, expressed in its natural unit.- Returns:
- the width of the rendering device.
-
supports
Does this medium support the given property-value pair?- Parameters:
property
- the property name.value
- the optional property value to be tested against.- Returns:
true
if the property (with the given value, if any) is supported,false
otherwise.
-


Cory Booker says he thought Joe Biden was 'high' when he said marijuana shouldn't be legalized
by Eliza Relman- Sen. Cory Booker went after former Vice President Joe Biden during the fifth Democratic debate on Wednesday night over Biden's opposition to legalizing marijuana.
- "This week I hear him literally say that I don't think we should legalize marijuana — I thought you might have been high when you said it," Booker said.
- That line provoked big laughter and applause from the audience.
- Visit BusinessInsider.com for more stories.
Sen. Cory Booker went after former Vice President Joe Biden during the fifth Democratic debate on Wednesday night over Biden's opposition to legalizing marijuana.
"I have a lot respect for the vice president — he swore me into my office, he's a hero," Booker began. "This week I hear him literally say that I don't think we should legalize marijuana — I thought you might have been high when you said it."
That line provoked big laughter and applause from the audience.
"Marijuana in our country is already legal for privileged people," Booker went on, to heavy applause. "The war on drugs has been a war on black and brown people."
Biden responded by reiterating his support for decriminalizing marijuana and arguing that he has strong support from black voters.
"I come out of the black community in terms of my support," Biden said. "They know me, they know who I am."
A former mayor of Newark, New Jersey, Booker has focused heavily on criminal-justice reform throughout his political career.
Booker in 2017 introduced legislation to legalize marijuana at the federal level, highlighting the disproportionate impact that the enforcement of its prohibition has on communities of color.
Recreational marijuana is now legal in 10 states, and medical marijuana is legal in 33. A strong majority of Americans (62%) also favor legalizing marijuana, according to an October 2018 survey from Pew Research Center, so this is an easy issue for Booker to campaign on.
Views on marijuana among the US public have shifted drastically over the past 15 to 20 years. In 2000, for example, just 31% of Americans said they believed marijuana should be legalized.
John Haltiwanger contributed to this report.


Help
What
The big matrix is an
Adjacency
matrix, a representation of a graph. If row 2 and column 4 is
colored, that means there exists an edge from node #2 to node
#4.
This adjacency matrix was generated
using Adjacency matrix code visualizer.
Why
The adjacency matrix give you an overview over connections in
your graph. These examples are about connections between classes in
a java code-base. Some interesting revelations this overview can
give are:
- See how connected your packages are
- Sort and color by Package. Nicely separated packages
will have half-box shapes just above the diagonal in the same
color, and not many points above or next to this half-box. A
half-box of the same color shows that classes within a package
uses each other. Having few points above or next to the half-box
means that package is not connected to other packages. A Tools
packages would have many points above and below it because it is
being used by all classes.
- Highlight groups of highly connected classes
- Sort by Similarity and color
by Package. This groups together classes that are highly
connected to each other and not highly connected to others,
largest groups are at the top left. You should see half-boxes
along the diagonal. If a half-box has two colors, then two
packages are heavily connected. If there are two half-boxes with
the same color, then that package should perhaps be split into two
packages.
- Detect cyclic dependencies
- Sort by Tree (or
by Package, Similarity, or Jar). When
sorted by tree, all dots below the diagonal are classes that are
part of a cycle of dependencies. In a perfect code-base there will
be cyclic dependencies and thus no dots below the diagonal. The
main purpose
of Classycle is to
detect cyclic dependencies. You should run Classycle on your code
to clearly find and eliminate cycles in your code. When sorting by
package, similarity and jar, nodes in the same package/group/jar
will be sorted by tree.
- Identify base classes
- Sort by Used. The most used classes are near the top
left. If you see colors in the full height at the left part you
have classes that are heavily used from all your classes. If you
see many colors in the whole the matrix, then all classes use all
other classes.
- Identify God classes
- Sort by Uses. The classes that use the use the most
classes are near the top left.
- Find Bacon
- Find one or a few classes by zooming or filtering. Then click
the Add connected, Add uses or Add used
by buttons to show all classes that uses or are used by your
starting classes. See how few clicks it takes to connect all your
classes from different start classes.
How
- Change size of adjacency matrix
- The size of the matrix is calculated based on the biggest
square that can fit on your browser window, with room for the
options buttons.
- Show nodes in rectangle
- You can click-drag a rectangle to only see nodes overlapping
the rectangle. Click-dragging shows all rows overlapping the
height of the rectangle, and all columns overlapping the width of
the rectangle. Because of this, zooming in areas away from the
diagonal give weird results.
- Mouse-wheel zoom
- You can also use the mouse-wheel to zoom in or out around your
mouse pointer. Zooming away from the diagonal is weird because
adjacency matrices must have the same rows and columns.
- Group by
- Switches to a new graph where the nodes have been merged. Two
merged nodes are connected when any node in the un-merged nodes
are connected.
- Filter
- Show just the classes that contains your filter text.
- Add uses
- Add all classes that uses one of the currently showing
classes. This button does nothing when showing all classes.
- Add used
- Add all classes that are used by one of the currently showing
classes. This button does nothing when showing all classes.
- Order by:
-
- Package: Order nodes by their packages. Nodes in
the same package are ordered by tree.
- Similarity: Attempts to make groups of nodes that
are highly connected to each other and not very connected to
other nodes. The largest group is near the top left. Nodes
in the same group are ordered by tree.
- Tree: If the graph is a tree, then order nodes
by breadth-first
. If the graph is not a tree, then try its best. Ordering a
tree by this will not put any dots below the diagonal. Any
dots below the diagonal are nodes that form a circle.
- Name: Order nodes by their names.
- Connections: Order nodes by the number of nodes
they use plus the number of nodes are used by them. Most
connected nodes are near the top left.
- Used: Order nodes by the number of nodes that are
used by them.
- Uses: Order nodes by the number of nodes they
use.
- jar: Order nodes by which jar they come
from. Nodes in the same jar are ordered by tree.
- Color by:
-
- Package: Give nodes in the same package the same
color.
- Name: Give nodes a distinct color.
- Connections: Color nodes based on number of nodes
they use plus the number of nodes are used by them. Most
connected nodes are blue, least connected nodes are
black.
- jar: Give nodes in the same jar the same
color.
- Pixel size
- A large pixel size draws nodes as big circles that are
transparent. The smallest pixel size draws nodes as pixels. Note:
large pixel sizes can get very laggy on large graphs.
- Showing current/maximum classes (Reset)
- Tell you how many nodes are currently shown versus how many
nodes are in the graph. Reset clears filters and zooms
all the way out.
- Populate table, Clear table
- Populate table creates a table of up to 1000 of the
nodes currently shown. Clear table remove the created
table.


“I was extremely fond of digging holes, but that form of gardening was not allowed.”—John Ruskin, Praeterita, Volume I (1885/6)
Look, children, there goes little Ruskin, marching up the path with his spade over his shoulder! But who is this come a-lolloping towards him? It is Mr Snippage, the kindly old gardener, Mr Snippage who leaves ants'-nests undisturbed so little Ruskin can investigate them with his already piercing observational skills.
“What ho!” says Mr Snippage, “Now what would you be about, little Ruskin, with that spade over your shoulder?”
“I am going to dig holes here in our Herne Hill garden, Mr Snippage. I am extremely fond of digging holes,” replies the infant.

Little Ruskin blushes. Last summer he had dug so many holes the house on the hill had been at risk of subsidence. That is why he plans to dig this year's holes at the farthest end of the garden. But he can find no words to say in reply to Mr Snippage.
“I know your Ma gets you a-Bible reading every morning,” continues the gardener, “And I know she added an eleventh commandment, didn't she?”
Little Ruskin nods.
“Thou shalt not dig holes in the garden,” quotes Mr Snippage, “And she didn't mean the garden of Eden, did she?”
Little Ruskin tosses his spade aside and begins to sob.
“There, there,” says Mr Snippage, mussing little Ruskin's carefully-combed hair, “Let's you and me see if we can't find an ants'-nest to study.”
And he takes little Ruskin by the hand and leads him off towards where he knows there will be an ants'-nest or two.
Ma Ruskin looks on at the scene from the drawing-room window. She clutches her doctored Bible to her bosom and offers up a prayer of thanks that the kindly old gardener has turned little Ruskin away from the path of sin.
Next Episode : Little Ruskin is given three raisins as a special treat.


BAPC21
Presentation for the STORM board.
BAPC
- Programming competition
- Solve Algorithmic problems
- 3 persons, 1 computer
- A lot more paper involved
Target group
- Check the tree
- Basicly maximum 1st year master
- In general all universities of the BeNeLux:
- Belgium
- Netherlands
- Luxembourgh
Selection
- Jury consists of people from the field/universities
- Preliminaries: For the VU, STORM with the AAPP committee
- Up to the university which team to promote
- After BAPC -> NWERC -> WF
Coachmeeting vs WISO
- Very little for this should be discussed at the WISO
- The coaches know what they do and are pretty stubborn


You know what I am?
I wouldn't know what to do with one if I caught it.
You know, I just ... do ... things.
-- The Joker
On the product side of marketing, planning has served me well.
But on the marcomm side, you know, I just ... do ... things.
And since the whole point of marcomm is to draw attention, I try to do things which are at least a little outrageous:
|
|
|
|
Years ago we wanted to tell people about SourceOffSite as a telecommuting solution, so we gave away boxer shorts at trade shows and ran ads advising people to "work in your skivvies". |
|
|
|
|
|
When Microsoft did their Software Legends campaign, we spoofed it with Not A Legend. |
|
|
|
|
|
We started talking about Vault several months before its release. Since it was vaporware, we showed up at Tech-Ed with a fog machine in our booth. |
|
|
|
|
|
When Vault was released, we promoted the product as a "compelling replacement for Visual SourceSafe" with a movie themed campaign. We hired Hal Douglas to voice our trailer. And yes, he started with "In a world...". |
|
|
|
|
|
We created a cartoon character called The Evil Mastermind, with twelve full-page print ads forming a complete story arc, plus two full-length comic books distributed at trade shows. |
|
|
|
|
|
When we were doing Guitar Hero in our trade show booth, we gave away actual custom guitars with The Evil Mastermind graphics. |
We did those things because nobody had done them before. I'll try just about anything. I just want to see what works. And afterward, I usually report here on my blog about how these things go.
In the second half of 2009, we did a marketing campaign for Vault.
As I mentioned above, Vault was originally positioned to be a compelling replacement for SourceSafe. Since our 5.0 release contains a new Handoff feature which makes it easier than ever to make the transition, we decided to focus this campaign on the product's original positioning, as a SourceSafe replacement.
The creative on this campaign was ... edgy. In a nutshell, we compared SourceSafe to an addiction. The ads were loosely patterned after billboards and ads aimed at convincing people not to use illegal drugs. The basic idea was to portray SourceSafe as something which might send your life into a downward spiral toward a 12-Step program or rehab.
We knew from the beginning that some people were going to be ticked off. We just weren't sure how many people and who.
We tried testing the ads by taking them home to our spouses for feedback. This resulted in a few tweaks, but we didn't get any criticism that caused us to change course. One guy's wife suggested that the ads would be a better reflection of our industry if the models in the stock photos were less attractive. :-)
So we moved ahead. The first thing we did was run the ads in MSDN magazine, which is published by an outside firm in close coordination with Microsoft. Nobody complained, so we kept going. We ran banner ads on several Microsoft-centric websites.
And then we showed up in November at the Microsoft Professional Developers Conference with this campaign as the theme for the entire booth. We gave away hundreds of T-shirts saying "VSS Must Die".
You can see the whole thing at vssisdead.com
This campaign was darker and more negative than anything we've done before. We knew we were pushing the envelope.
Well, we certainly didn't expect to win any Most Admired Company awards by running a marketing campaign which portrays the users of our competitor's product as drug addicts. :-) But the campaign was intended to be funny, in a "humor noir" sort of way.
Somewhere during the execution of this campaign, I realized that SourceSafe is very much like that dorky kid in high school that gets teased by everybody.
Why do high schoolers pick on other kids? Because it works. In high school, popularity is correlated with several factors, but one of them is unkindness. The meaner you are (to the right people), the more popular you are. Once the crowd has observed who is getting bullied by the popular kids, others join in. Even if they don't know the kid, they start ripping on them, just to try and identify with the "in" crowd.
As grownups, most of us know that this is reprehensible. No kid deserves to be treated this way just because they're different.
But teenagers do it anyway. And they do it because it gets them what they want.
This particular kid is an easy target. SourceSafe isn't just a little bit dorky. We're talking pocket protector, greasy hair, and a sport coat with elbow patches.
When it comes to poking fun, if any company is fair game, it's Microsoft. And if any Microsoft product is safe to pick on, it's gotta be SourceSafe. SourceSafe is the bullying target that everyone can agree on.
Dissing SourceSafe is so common that folks do it whether they have used SourceSafe or not. Just like in high school, people join the bashing just because they think it makes them look cool.
And SourceSafe has basically nobody defending it. When emacs people get an attitude, the vi fans speak up. When Visual Studio fans start trash talking, the Eclipse crowd starts showing features. But nobody stands up for SourceSafe. People bash it, and SourceSafe just mopes down the hall wearing flood pants and a shirt with the top button done.
So anyway, we chose to go negative on this, but we figured we were in plenty of company.

In general, this campaign worked. People at PDC loved the T-shirts. The click-through rate on the banner ads was the highest we have ever seen.
Some people were offended, but we received far more positive feedback than negative.
However, just like the awkward kid at school, SourceSafe doesn't really deserve this. I've admitted it before, and I'll do it again now: SourceSafe isn't really that bad.
In its day, SourceSafe was awesome. When it was created by One Tree in the early 90s, it was nearly revolutionary. SourceSafe brought ease of use in version control to a whole new level. Microsoft acquired this product because it was outstanding.
Over the years, SourceSafe hasn't always aged well. Its architecture didn't fit with the Internet. By relying on file sharing protocols for network access, SourceSafe ended up with data corruption problems that triggered a tidal wave of criticism.
But overall, SourceSafe has been a very successful piece of software. Most of us would love to create something that has thousands of happy users 15 years later.
At trade shows, people come up to us and ask why they should switch from SourceSafe to Vault. We always respond by asking them if they are happy with SourceSafe. If they say yes, we tell them not to switch. This conversation has happened at every show I have ever attended. Lots of people use SourceSafe every day without problems.
And despite those negative ads, I believe SourceGear is doing more for SourceSafe users than any other company, including Microsoft. We recently shipped SourceOffSite 5.0, a major upgrade with improved performance, new features, and a fancy new ribbon UI.
It's not. I don't owe SourceSafe an apology. SourceSafe isn't a person.
And it's hard to imagine the need to apologize to Microsoft as a company when so many of its employees stopped by the booth at PDC to join the bashing. Some of them took shirts.
So I'm not really apologizing. I'm just sharing about my experience and my reactions to it.
One exception: SourceSafe's principal author was Brian Harry. In working through the Microsoft acquisition of Teamprise I came to know Brian and developed a great deal of admiration for him. He is incredibly smart, and his accomplishments are amazing, including SourceSafe, the CLR, and Team Foundation Server. Brian, if our campaign caused you any personal offense, please accept my public apology.
So anyway, there you have it. I went negative. And it worked.
I'm not eager to do it again.
But I have no regrets. You know, I just ... do ... things.
I wrote most of this piece in the first person, but the truth is I deserve more blame than credit. If you were offended or disappointed by this marketing campaign, blame me. On the other hand, if you liked this marketing campaign, credit John Woolley and Paul Roub. The creative work here was mostly theirs.


NUXI College
Home
About
Courses
Teachers
Contact
Account
Apply Now
Register
Create New Account
Already have account?
Login Now


Some info about this speciric Virtual Exhibit
Use your keyboard or the navigation buttons on the edges of the screen to navigate. We could also tie it to the scroll of a mouse. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Lorem ipsum dolor sit amet, consectetur adipiscing elit.Scroll down for more info
Info here. Scroll even further down down for more info
More info here. Scroll even further down down for more info.
This is the end. You can go back up or simply go to the right to continue.


Join
Log into the club
Log in with Facebook
OR
Log in


Current Version: 1.0.0
Upcoming Features:
- Admin User Management Panel Upgrade (5/14/2021)
- Add a Add Change Button to Pages (5/14/2021)
- Advanced Form Data Validations (TBD)
- Reports (5/15/2021)
- Automated Account Creation Emails (TBD: Awaiting Domain)
- Change Calendar (TBD)
- Adding Downtime Field (TBD)
- Implement Save/Update Buttons to Change (TBD)
- Fix Latest Changes Table
- Change Assignee Breakdown
v1.0.0 - First Stable Release
- Live Dashboard
- View Current Requests
- Create Request
- View Assigned Requests
- View Active Changes
- View Past Changes
- Edit/Delete Current Requests
- View Account (Change Info and Password)
- Account Management (Create Users)
- Claim Server if no User Accounts