text:
Mylyn/Contributor Reference
See also: helpwanted bugs, eclipse dev, source repository, website repository
- 1 Project Structure
- 2 Getting Started
- 3 Workspace
- 4 Contributors
- 4.1 Getting Started
- 4.2 Tips
- 4.3 Voting
- 4.4 Patches
- 4.5 Writing Tests
- 4.6 Code
- 4.7 Graphics
- 4.8 Reviews
- 5 Committers
- 6 Incubator
- 7 Tips and Tricks
Project Structure
The Mylyn project is structured into sub-projects that address different areas of Application Life-cycle Management. Please see Mylyn/Charter for the top-level project charter.
Artifacts are published in a number of Mylyn/Repositories. The main repository aggregates sub-projects that participate in Mylyn releases. The participating projects are listed in the project plan. The main Mylyn update site features are mature components that are supported by the Mylyn project committers and may be distributed as part of the Eclipse Downloads.
Sub-projects are encouraged to provide a framework component and reference implementations called Connectors that extend Mylyn to different task management systems and focus the artifacts that you work with when you activate a task (formerly called Bridges).
Feature Maturity
Mylyn features vary in UI maturity and availibility of support. The following is a guideline for what it takes to move from experimentation through to maturity. (Note that this is partially based on the Eclipse project lifecycle and could converge further with that lifecycle if Mylyn were split into a separate incubation project or subprojects.)
Mature: packaged Eclipse downloads and available via main update site
- UI quality: Eclipse SDK features have set a very high quality and UI consistency bar that needs to be met in order to make it possible to improve users' productivity with Eclipse.
- UI simplicity: the Mylyn project's goal is to simplify and streamline the user experience. A simple and self-evident UI also helps ensure a manageable support burdeon on the component.
- Availability of support: the feature must have an owner or organization with a long-term commitment to the quality of the feature and the ability to provide responsive support for feedback on that feature.
- Responsiveness to feedback: the feature owner and other contributors must process and prioritize user feedback and respond to the highest priority needs in a timely manner (e.g. blockers and critical bugs need to be fixed within one release of being submitted, key enhancements help the feature evolve to meet users' needs).
Incubation: available via the nightly update site
High quality components that meet most but not all of the above criteria. To graduate, sufficient community feedback must be available on the quality and usability of the component (e.g. 100+ resolved bugs) and committers must vote to determine whether component meets the UI quality and simplicity guidelines.
Sandbox: available via the Incubation update site
- Unsupported components used for experimentation and not intended for daily use.
- Community interest and contributions determine which experimental features move from the Sandbox into Extras.
Creating New Components
Most sub-projects host a framework component and one or more reference implementations. When new code is brought into Mylyn it may be added as a sub-project, sub-sub-project or as a component of an existing project. The right organisational structure depends on the needs of the development community and the scope and process of the existing projects. Criteria that could qualify a component to be split out as a separate project:
- A component requires incubation status (e.g. for parallel IP) but the framework project has already matured.
- The committer set of the component is not a subset of the committer set of the framework project.
- A component wants to release more frequently than its framework project, i.e. it follows it's own project plan.
- A component publishes its own APIs and its scope and community are significant that it requires its separate management structure such as a Bugzilla product, news group etc.
Getting Started
The Mylyn project places a very high value on community contributions. This document is intended to help those interested in contributing to Mylyn. It communicates our conventions and discusses ways to get your contributions prioritized.
Individual Contributors
A significant portion of Mylyn contributions have been made by individuals wanting to make the tool or framework work better for them. There are several ways that individuals can get involved with the project:
- Mentoring: if you are an experienced user, you can support newcommers by providing feedback using the community channels
- Casual contribution: we have a large number of very valuable casual contributors who provide patches for their pet bugs, or enhancements that either they would find valuable or that they want to share with others. If you are interested but don't know where to start look first through the short list of bugday bugs, and then through the longer helpwanted list.
- bugday bugs: a short list of highly relevant bugs for getting started
- helpwanted bugs: a longer list of all bugs targeted at community contributions
- Working towards commit rights: The Eclipse and Mylyn development processes make it easy to make regular contributions without requiring commit rights, but frequent contributors may be interested in earning commit rights. Commit rights come with a significant overhead of user support as well as the need to follow the project's priorities for contributions. They require you to participate in the planning and of the project, and allow you influence the direction of the tool and framework. If you are interested in becoming a committer we recommend letting one of the existing committers know so that they can mentor you and help build a trust relationship. It can also help to identify a separable component of the project that you are interested in taking responsibility for, since Mylyn commit rights are assigned per-component.
- Committer Due Diligence Guidelines
- Mylyn Developer Mailing List
- Mylyn Meetings are held on a weekly conference call and open to all
Integrators and Vendors
Those building both closed and open source tools on top of Mylyn may be interested in evolving the Mylyn APIs to ensure that that the framework meets their needs. We welcome such contributions just as we welcome individuals making improvements to the tool, since they help make Mylyn a better framework for all. The Individual Contributor points above apply to integrators and vendors interested in contributing or earning commit rights. In addition, the following tips may be of interest:
- List your extension on the Mylyn Extensions page and in the Eclipse marketplace. This will help the Mylyn community become aware of the extension.
- If interested in exploring Mylyn integration, consider dialing into the our weekly call and adding an agenda item on the Mylyn Meetings page.
- Vendors are welcome, so make yourself known. We recommend using your company name for Bugzilla email addresses. If you have a product built on Mylyn and need a bug fixed, we recommend voting for it with that email address. The Mylyn project prioritizes bugs according to how much overall benefit they will have to users, and as such commercial integrations are an important part of that prioritization. If the bug does not fit with the project's priorities we will encourage you to provide a patch.
- Consider making a bug titled "support integration with <your tool>". We use these bugs for discussing integration issues particular to a specific tool or technology and leave them open for ongoing API or UI discussion needs.
- Eclipse Code Conventions
- Eclipse User Interface Guidelines
- Documentation Style Guidelines
- Eating your own dog food (Wikipedia)
The recommended way to work with Mylyn sources is by checking them out of Git. Doing this makes it easy to try the latest changes and work with patches and ensures that you can easily browse the source code and documenation using Eclipse's facilities.
Install Eclipse and get it configured for developing Java 5 applications.
- Unless targeting a particular Eclipse release, download the latest Eclipse milestone release.
- Associate J2SE-1.5 with your installed JRE via the Window -> Preferences -> Java -> Installed JREs -> Execution Environments. Note that to get rid of JRE association warnings you may need to download older JREs, e.g. from: http://java.sun.com/products/archive/
- To install additional JRE profiles or if you are unable to obtain a J2SE 1.5 installation install Add PDE/API Tools Environment Descriptions from the Eclipse project repository that corresponds to your Eclipse environment, e.g. http://download.eclipse.org/eclipse/updates/3.7
The source code is hosted in Git. Each sub-project has a separate repository that is accessible through the git, ssh and https protocol. For anonymous access use git or https. Committers need to use ssh or https.
Web access to the Git repositories
Release Tags: Each release is tagged with
R_. For example, Mylyn 2.2.0 for Eclipse 3.4 is tagged as
R_2_2_0 and the branched Eclipse 3.3 plug-ins are tagged
Active branches
- Mylyn Releng:
master3.x stream - git://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.git Web
- Mylyn Builds:
master0.x stream - git://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.builds.git Web
- Mylyn Commons:
master3.x stream - git://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.commons.git Web
- Mylyn Context:
master3.x stream - git://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.context.git Web
- Mylyn Docs:
master1.x stream - git://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.docs.git Web
- Mylyn Incubator:
master3.x stream - git://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.incubator.git Web
- Mylyn Reviews:
master0.x stream - git://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.reviews.git Web
- Mylyn Tasks:
master3.x stream - git://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.tasks.git Web
- Mylyn Versions:
master0.x stream - git://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.versions.git Web
Also see policy for supported Eclipse versions. Branched projects, if any, are updated with each release.
Maintenance Branches
Changes should be committed to master and cherry-picked onto maintenance branches to be included in service releases.
e_3_8_m_3_7_xMylyn 3.7.x stream (corresponds to Mylyn Docs 1.6.x)
End-of-life branches
e_3_7_m_3_6_xMylyn 3.6.x stream for Eclipse 3.7
e_3_7_m_3_5_xMylyn 3.5.x stream for Eclipse 3.7
e_3_6_m_3_4_xMylyn 3.4.x stream for Eclipse 3.6
e_3_6_m_3_3_xMylyn 3.3.x stream for Eclipse 3.6
e_3_5_m_3_3_xMylyn 3.3.x stream for Eclipse 3.5
e_3_4_m_3_3_xMylyn 3.3.x stream for Eclipse 3.4
e_3_5_m_3_2_xMylyn 3.2.x stream for Eclipse 3.5
e_3_4_m_3_2_xMylyn 3.2.x stream for Eclipse 3.4
e_3_3_m_3_2_xMylyn 3.2.x stream for Eclipse 3.3
e_3_4_m_3_1_xMylyn 3.1.x stream for Eclipse 3.4
e_3_3_m_3_1_xMylyn 3.1.x stream for Eclipse 3.3
e_3_4_m_3_0_xMylyn 3.0.x stream for Eclipse 3.4
e_3_3_m_3_0_xMylyn 3.0.x stream for Eclipse 3.3
e_3_4_m_2_xMylyn 2.x stream for Eclipse 3.4
e_3_3_m_2_xMylyn 2.x stream for Eclipse 3.3
e_3_2_m_2_0Mylyn 2.0 stream for Eclipse 3.2
e_3_3_m_1_0Mylyn 1.0 stream for Eclipse 3.3M4
e_3_2_m_1_0Mylyn 1.0 stream for Eclipse 3.2
e_3_1Mylyn 0.6 for Eclipse 3.1
- Web site for updating eclipse.org/mylyn PSF File
:pserver:dev.eclipse.org:/cvsroot/toolscan be used for manual checkout
Target Environment
Mylyn depends on a number of libraries from other Eclipse projects. The
org.eclipse.mylyn.releng project provides target environment definitions that specify all required dependencies. After following the steps under Checkout go to Window > Preferences and open the Target Platform page. Select one of the mylyn target definitions. Generally, mylyn-dev-base is the recommended choice.
- mylyn-dev-base - Targets the lowest support Eclipse version. Includes sources and additional integration features for development.
- mylyn-dev-latest - Targets the highest support Eclipse version. Includes sources and additional integration features for development.
- mylyn-e* - Target defintions used by the build. May only contain the minimal requirements excluding sources.
API Baseline
An API baseline for the latest releases is available from the download archive. Follow these instructions to configure the API baseline in your workspace:
- Extract a version of Eclipse Classic (SDK) to a directory that matches the version of your current target platform
- Extract the Mylyn API baseline zip archive to the eclipse/plugins directory from the extraced SDK
- Add the baseline under Windows > Preferences > Plug-in Development > API Baselines pointing to the eclipse/plugins directory from the extracted SDK
The general policy is that plug-ins should not have any errors or warning markers since these indicate potential problems or API insufficiencies. In practice, we do not have the capacity to address all warnings or the cost outweighs the benefit or warnings result out of intentional design decisions, e.g. usage of deprecated APIs for maintaining backwards compatibility.
To reduce the number of warnings we have established the following policies for usage of internal packages:
- Plug-ins are allowed to use internals within the boundaries of their component (e.g. o.e.m.bugzilla.ui may access internals of o.e.m.bugzilla.core). We have generally allowed that through x-friends relationships in plug-in manifests.
- It's generally okay to use provisional APIs. We have made these accessible through classpath filters: Project Properties > Java Build Path > Libraries > Plug-in Dependencies > Access rules. It's common that plug-ins have a rule to make org/eclipse/mylyn/internal/provisional/** accessible.
- In cases where platform internals need to be accessed due to a lack of API it's okay to make the specific classes or packages accessible. These cases should be documented on bug 233055.
- Test plug-ins are allowed to use all internals.
Additionally, it is recommend to create custom filters in the workspace to hide remaining warnings that will not get addressed in the short time. Filter can be configured through the view menu of the Markers view.
JUnit Tests
Each component has it's own All<Component>Tests suite. If not familiar with running PDE JUnit tests, refer to the Eclipse Documentation.
Tests that connect to repositories require a $HOME/.mylyn/credentials.properties file that specifies authentication information. The file needs to have the following content:
user: <user> pass: <pass>
- For <user> use email@example.com. For <pass> use mylyntest. If you have any trouble making this work email email@example.com.
- Add the following to the test configuration under Arguments -> VM Arguments: -enableassertions -Xmx384M
Test suites in org.eclipse.mylyn.tests:
AllTests: all automatic tests, should always pass, run as a JUnit Plug-in Test
AllHeadlessStandaloneTests: do not require workbench, can run as JUnit Test, subset of
AllConnectorTests: all automatic tests for repository connectors, requires network access
Test suites in org.eclipse.mylyn.tests.ui:
AllUiTests: all automatic SWTbot-based UI tests
Test suites in org.eclipse.mylyn.tests.performance:
AllPerformanceTests: all performance tests
Manual tests
The manual tests can be found on the Mylyn Testing page.
- Component owners are responsible for maintaining their respective manual tests and ensuring they are covered two days prior to release.
Trac Connector
- A Trac test repository that offers anonymous access through XML-RPC is available at http://mylyn.eclipse.org/tractest. Feel free to create or modify any tickets.
Self-hosting, also known as working bootstrapped (i.e. self-hosted) makes eating your own dog food easier and avoids having to update to dev builds.
The following is an example of how to set up a bootstrap workspace, work and runtime workspace. The result is an folder with the following three workspaces:
- Mylyn-Bootstrap
- Mylyn-Work
- Mylyn-Runtime
Please follow the steps:
- Download and install Eclipse 3.7 or later
- Start Eclipse and create an workspace called Mylyn-Bootstrap
- Install dependencies using File > Import > Install Software Items from File: mylyn-bootstrap.p2f
- Import projects using File > Import > Team Project Set: mylyn-dependencies.psf
- Switch to the Git Repository Exploring Perspective and clone the Git repositories listed under Mylyn/Contributor_Reference#Checkout
- Use Import Projects from the Git Repository Exploring Perspective to add the projects to your workspace
- Create a new Launch Configuration:
- SelectRun -> Run... -> create a new Eclipse Application.
- Call the application Mylyn Work.
- On the Main tab, set the Location
- You can use an existing workspace
- You can create a new workspace (e.g. Mylyn-Work)
Launching with this launch configuration will give you a second workbench with Mylyn. This workbench will be created based on the target platform (the workbench you're launching from) and the installed plugins. This workspace needs to be setup following the steps under #Setup:
Do your development in the Mylyn-Work workspace. Whenever your changes make it into master that you would like to use, close your Mylyn-Work workspace, pull from Git in the Mylyn-Bootstrap workspace, and then re-launch your Mylyn-Work workspace.
- The launching workspace will typically consume very little memory.
- Working in bootstrap mode means you have the source code checked out at least twice, once to bootstrap Mylyn, and once to actually develop.
- You must have two distinct workspaces, you can't bootstrap into the same workspace as you launch from.
- It is possible to run in debug mode so that the changes apply to the workspace immediately after synch, but this can cause problems with the running workspace if classes change or go missing. This is because the hot-swap virtual machine can only change method bodies, not class definitions.
All contributions to Mylyn need to be made using Mylyn since it links source changes to tasks and contexts, making open development and collaboration easier. Using Mylyn ensures that:
- All Bugzilla reports have a corresponding task context, making them easy to reopen or pick up by you and by others.
- All commits correspond to a single Bugzilla report, making it easy to navigate from changes to bugs.
Getting Started
- Use Bugzilla for all of your communication. This helps committers track the contribution.
- Before setting out to contribute to a bug report, post on the bug report describing your intention. This helps committers guide the contribution and avoids problems with patches going stale due to related work being done concurrently.
- For contribution ideas see #Individual_Contributors to find an enhancement that interests you, file a new bug of your own, or email mylyn-dev for ideas.
Following these steps will help get your patches applied more quickly.
- Before implementing the functionality post a brief proposal of the implementation and UI changes/additions and get a committer's feedback. The committer should be either the component owner.
- Post a patch to the core functionality with reasonable unit test coverage (see below). Thorough unit test coverage is typically required if API methods are affected.
- After that's applied iterate on the UI proposal if needed and the post the patch to the UI.
- Note that the smaller you make patches and the more focused they are on individual and well-tested units of functionality the more quickly they will get applied.
We use votes in order to track the general interest in a particular bug. Bugs with more votes are more likely to get fixed. However, we also have numerous "[connector]" bugs that are open, but out of the scope of the project. We encourage all in the community to vote for bugs, since it helps contributors prioritize work. If you notice a vote from a committer on a bug, the likely reason is that they would like to see the fix as well, even though the current priorities may mean that it is not planned for the near future (e.g. a UI enhancement while API is being prioritized).
In order to make your patch get applied as quick as possible, we recommend the following workflow:
- Comment on the corresponding bug, asking whether a committer or another contributor has any suggestions for the implementation approach.
- Propose a design, mentioning the key use cases, implementation, tests coverage, and UI changes or additions (if applicable).
- After a committer iterates with you on the design, prefix the summary of the bug report with "[patch]", and wait for review.
- Note that the review process might involve iterating on the patch, especially if there are UI changes or additions involved.
- Each patch should correspond to a single bug report, and a single patch should be made for each set of changes to be reviewed.
- A task context should be attached to each patch to make applying and evolving it easier.
- With few exceptions patches should be accompanied by a JUnit test, and in general unit tests are one of the most valuable and long-lived contributions. If you are having trouble writing a test (e.g. trickiness verifying what happens in the UI) comment on the corresponding bug report so that we can point you at similar test cases or consider extending the test harness if needed.
- Minimize the amount of changes to existing code to make review easier.
- Synchronize often to ensure you have the latest code. Once you start modifying resources, put the Synchronize view in Outgoing mode and press the Change Set button so that the changes are tracked per task.
- Before creating a new JUnit test class class check the components test suite for similar test cases (e.g. AllTasklistTests).
- Add an @author tag to each class that you create or make significant modification to, placed below any existing author tags, e.g.: @author Rob Elves
- Ensure that there is no console output.
- If tempted to copy code from either Mylyn or any other part of Eclipse, please first comment on the bug that you intend to do so. The need to copy code is often indicative of the need for us to provide additional modularity, and creates a maintenance burden for the project. If you do copy code, please put an @see link in the Javadoc for the method or class that has the copied code.
- Ensure there are no build errors, warnings, and that tests pass.
- Commit your changes to your local Git repository
- Drag and drop the commit from the History view to the task editor. This will open the attach wizard. Alternatively you can create the patch manually:
- For creating patches with Git, see Git_for_Committers#Generating_patches_for_Bugzilla or use EGit EGit/User_Guide#Creating_Patches
- In the Attachments section of the Task Editor select Attach File... and use Clipboard as the source.
- On the preview page verify that:
- Patches are rooted at the root of the Git repository
- Patches only contain relevant changes
- Check off the Patch and Attach Context checkboxes in this wizard page.
- Add a description of issues addressed and comment on what testing was done to validate it (e.g. unit test coverage, manual tests performed). Also indicate any changes made to the existing UI in the comment (e.g. reordering of menu actions). Also indicate if patch is intended to resolve bug report or further work is required.
Writing Tests
Writing tests along with patches is key to ensuring that it is possible for committers to maintain the new functionality added by the patch. When writing tests look for the
All<component>Tests class in the
tests plug-in for that component, identify a test that is similar to the functionality that you are adding, and use that test as an example of how to add additional coverage. Tests can sometimes take longer to write then the change itself, but a committer will always be willing to assist you in designing the test or extending the mock test harness to make it easier to write.
The key things to ensure is that your test covers is the addition or change to the existing functionality. For API changes it is often sufficient to have the public method covered. When writing tests for UI components, the simplest way of testing will often involve a combination of unit and black-box testing, for example, relying on other parts of the Mylyn UI to be set up (e.g. the Task List view). Consider the case of adding functionality for pre-selecting a repository in the New Task dialog, writing a test can take the following form (refer to
- Create a mock repository
- Add a task to the mock repository
- Set the selection on the Task List (new functionality uses this selection)
- Invoke the wizard and assert that the selection was set correctly on the viewer (wizard is a black box, all we care about is the contents of the viewer)
- Dispose the wizard dialog, remove the mock repository and the mock task
When writing UI tests note that asynchrous updates, such as refresh, can make testing challenging. Note that several UI components have a method on them to set synchronous execution for the purpose of testing, and if such a method is lacking it can be added.
Mylyn uses the Eclipse code conventions. See #Links for references.
If contributing a feature with icons or other graphics feel free to ask a committer to generate the graphic for you. If interested in contributing graphics you can find all of the source files (e.g. Photoshop) here:
For larger changes consider submitting a code review through Mylyn's Gerrit instance. To use the review server a few steps are required.
Register a Gerrit Account
To use the review server a few steps are required:
- Register an account at review.mylyn.org using an Open ID provider such as Google
- Define a username
- Upload your public ssh-key for authentication
Once the account has been created contact Steffen Pingel to get the account added to the trusted users group which has the required permissions to create code reviews.
Add Gerrit as a Git Remote
Gerrit is added as another remote to the local clone of a Mylyn Git repository. For example, the
.git/config file for the Mylyn Tasks git repository would specify these additional remote:
[remote "gerrit"] url = ssh://firstname.lastname@example.com:29418/org.eclipse.mylyn.tasks.git fetch = +refs/heads/master:refs/remotes/gerrit/master push = HEAD:refs/for/master
If you are not able to connect to review.mylyn.org through SSH on port 29418 you can instead setup a password for HTTP access. In this case the url in the remote configuration needs to specify a different url:
[remote "gerrit"] url = http://email@example.com/p/org.eclipse.mylyn.tasks fetch = +refs/heads/master:refs/remotes/gerrit/master push = HEAD:refs/for/master
Make sure you are using Git Client version 1.7.2 or later. Earlier versions might have problems connecting to the Gerrit Server.
Additionally, these settings are recommended:
[gerrit] createchangeid = true [branch] autosetuprebase = always
Add Gerrit as a Task Repository
You can add http://review.mylyn.org as a task repository in the Task Repositories view and create queries to bring your code reviews into your task list.
Create a Code Review
- Create a topic branch
git checkout -t origin/master -b bug#123-my-topic-branch
- Commit to the branch. Ensure that a Change-Id header is included in the commit message.
- Submit the code review
git push gerrit
Update a Code Review
- Check out the topic branch
- Update to the latest master
git pull
- Commit changes
git commit -a --amend
- Update code review
git push gerrit
Squash Commits
Gerrit creates one code review per commit. If you committed multiple times you can always squash commits later using interactive rebase, e.g. to merge the last two commits into one commit use this command:
$ git rebase -i HEAD~2
This opens an editor to modify the commit history. If you change pickin the second line of the editor to fixup that commit will be merged with the previous commit when you exit the editor.
Merging Contributions
The Git repositories on review.mylyn.org are mirrored hourly from git.eclipse.org. Hence, any changes that are merged by Gerrit are automatically overridden and do not propagate back to eclipse.org. Once bug 283749 is resolved Mylyn will switch to using Eclipse.org infrastructure but for now approved contributions will still need to go through the standard process. That means, once a code a review is approved a patch needs to be created and attached to a bug report to track the IP in accordance with the Eclipse process.
The Eclipse Charter explains how developers can gain commit rights.
Committers should:
- Sign up for all of the project mailing lists.
- Read the newsgroup regularly, and respond to posts in their area of expertise.
- Respond to mylyn-dev email in their area of expertise.
- Watch and update all wiki pages related to components that they contribute to.
Mylyn committers are required to follow these communication guidelines. Our philosophy is that the user is always right, even if it takes time to figure out how or why they are right. Our project thrives on the feedback of users, whether they are seasoned experts or newbies. Feedback defines how the tool should work, how it should be simplified, and how it should evolve.
- All feedback contains information, and it is the responsibility of committers to turn that information into actions. This can mean improving the implementation, simplifying the workflow, clarifying the documentation, or noting a duplicate request. Making the actions we take clear helps communicate this philosophy to our growing user community and encourages high-quality feedback.
- If users do not provide enough information or do not take the time to provide accurate information, they should be prompted to provide the necessary details. If they do not do so in a timely manner, the feedback is incomplete and can be resolved without taking action.
- Show respect to others in the community, whether they are making correct or incorrect assumptions about the tool or technology. When someone makes incorrect assumptions it is because we have not done our job well enough, or because the platforms we build on are making it hard for us to do our job well enough. Identifying those cases is important so that we can provide feedback to those platforms and find work-arounds.
- Never turn feedback or discussion away by flaming, being condescending, short, or insulting in any community communication forum. Forms of humor that work for face-to-face communication, such as sarcasm, are usually best avoided because they can result in misinterpretation, especially when there is a language or cultural barrier.
Handling Inappropriate Communication
In the vast majority of cases, following the above guidelines has lead to the high quality communication that our user and contributor community has thrived on. However, the openness of our communication channels has been abused in the past. These scenarios are typically marked by overly opinionated, non-technical and insulting posts on bugs in and in other forums. The communication may have technical elements or technical points, but the points are communicated in an overly opinionated way with a disregard for the opinions of others involved in the dialog. If encountering such communication, make sure to read the Wikipedia Entry on Flaming, especially the "Causes of flaming" section.
Note that invoking the process listed below should be the exception, and not the rule. Projects with like-minded committers can experience the Groupthink bug, which is why high quality open communications channels are so important to helping the project evolve. However, abuse undoes the openness that we strive for by making the channels intimidating or unfriendly to newcommers. Follow these steps if you encounter such communication:
- Make one or two attempts to steer the conversation back on a technical path.
- If that doesn't address the problem, enter the following text as the third comment:
Ignoring comment per: http://wiki.eclipse.org/index.php/Mylyn_Contributor_Reference#Communication
- Avoid following up again. Send the bug ID to the project lead who will assess the problem.
To comment on these guidelines please use bug 216157
- Any user-reported bug should be resolved by one of: code improvements, documentation/FAQ improvements, or being marked a duplicate of another bug. All but the last require attaching a context.
- Be judicious in marking bugs for LATER, because this typically communicates that the bug will never be resolved. Do this only if the bug does not fit in with the current scope of the project but is related to the mission. Otherwise mark P4/P5 and "helpwanted" to encourage a contribution that is not part of our current prioritization and plan.
- When naming bugs, try to describe the use case or problem instead of the implementation unless there is no ambiguity in how the fix should be implemented. If the implementation approach helps with queries append it.
- Bad: task list working set
- Good: support nesting top level task list elements, e.g. via working sets
- Use the Eclipse bug severity with this exception: bugs marked as Trivial are enhancements, that can be easily implemented.
helpwanted: bugs that are beyond the current priorities for the project. Note that some bugs marked for an upcoming milestone can be marked as
helpwanted. This indicates that the project committers would like to see the bug solved for the milestone and will actively contribute to a solution, but that the bug is more likely to be fixed in a timely manner with the help of additional contributors.
bugday: these are a special category of
helpwantedbugs that are intended to be mast accessible or rewarding for new contributors interested in helping the project to tackle. See the Bug Day FAQ for more information. In order to keep this list focused on the most relevant bugs it is capped at 24 and should be reviewed periodically.
contributed: bugs that were resolved through a contribution from a non-committer.
plan: bugs that are part of the project plan (see below).
Tags The project uses the following tags in the summary of bugs on bugs.eclipse.org (bug 215853):
[activity] - bugs related to improving work flow [api] - bugs that require API changes; every API change has a corresponding bug which is tagged that way [bridge] - requests for structure bridges [connector] - requests for connectors [context] - bugs related to the context framework [discussion] - discussion items [editor] - bugs related to the Task Editor [e3.2][e3.3] - bugs specific to a particular version of Eclipse [folding] - bugs related to active folding [framework] - bugs that address internal implementation details that do not require API changes [linux] - bugs specific to Linux (Gtk) [m2.3.1] - bugs that are fixed in a particular maintenance version of Mylyn [mac] - bugs specific to Mac OS (Cocoa, Carbon) [multi monitor] - bugs related to multi monitor environments [new uex] - new user experience [patch] - bugs that have a patch attached that is pending for review or waiting to be applied; the tag is removed after the patch has been applied or if a review requested changes [performance] - bugs that indicate severe performance problems [planning] - requests for planning features [refactor] - request for non-functional refactorings [regression] - bugs that indicate regressions [sandbox] - bugs that affect components in the sandbox [standalone] - bug related to usage of Mylyn outside of the Eclipse environment [update] - update manager and P2 related bugs [usage] - usage monitoring related bugs [web connector] - bugs in the Web Templates connector [website] - bugs related to the web page on eclipse.org/mylyn (use Doc component for that?) [win] - bugs specific to Windows (Win32, WPF) [workflow] - requests for integration of task and repository workflow [working sets] - bugs related to working set support [search] - bugs related to desktop search (see bug 349351)
The goal of bug triage to minimize the overhead for committers and to maintain a manageable backlog. Each (new) bug that is filed is processed as follows:
- Major bugs or regressions are marked P1. If necessary the bug is escalated and scheduled for the current milestone.
- Other bugs are marked P2.
- Enhancements requests that should be considered for a future release are generally marked P3.
- Other enhancement requests are marked P4 and tagged as helpwanted if they can be resolved through a community contribution.
- If a request is out of scope of the project it is marked P5 or preferably closed. P5 bugs should not be marked helpwanted.
The backlog consists of all tasks scheduled for
-- with a priority of P2 or higher. User stories are tagged with the plan keyword.
Bugs are assigned as following:
- email@example.com: New bugs are and bugs that need user input.
- email@example.com: Bugs that have been responded to and severity and priority has been set.
- other: The owner is committed to completing the task for the scheduled milestone or within a reasonable time frame in the future if the bug is scheduled for --.
The goal of planning is to schedule a list of bugs for the milestone that concludes the next release cycle. When the milestone is reached all bugs with a priority of P3 or higher are expected to be completed. It is important that planning takes existing resources into account to avoid over-committing. Predictable release deliverables will enable integrators to plan their own progress based on the Mylyn framework and aid the growth of the ecosystem.
Before every release planning is done by triaging the entire backlog. Bugs marked with the plan keyword become part of the official release plan. Planning bugs marked P1 are committed items, other bugs are proposed items. Half way through a release cycle the plan is reviewed and P1/P2 bugs in the backlog are reconsidered for the milestone to accommodate for regressions and major bugs that were submitted after initial planning.
The list of bugs that are scheduled for a milestone serves as a log that documents changes to release artifacts. In order to preserve historical information captured by the change log bugs that have been resolved should not be moved to other milestones once a milestone has been released.
If a defect reoccurs or a bug requires further work a new bug should be created and linked to the resolved bug. It is recommended to add a comment on the resolved bug that points to new bug and describes the reason for its creation.
Git repositories can be accessed in Eclipse via EGit. Mylyn uses the following conventions for Git repositories:
- It is strongly recommended to rebase before pushing to keep the revision history flat as possible:
git pull --rebase
The branch.autosetuprebase setting automates that:
git config branch.autosetuprebase always
See also:
Mylyn is built regularly by jobs running on the Eclipse.org Hudson server.
Heartbeat Test Jobs
Each sub-project has its own build job triggered by Git activity that runs all tests for the sub-project.
Integration Test Jobs
Integration tests run against the Git integration build repository that includes all sub-projects as submodules. Integration tests are triggered by the mylyn-release job.
mylyn-integration-e3.5 - Eclipse 3.5: All tests excluding repository tests mylyn-integration-e3.6 - Eclipse 3.6: All tests excluding repository tests mylyn-integration-e3.7 - Eclipse 3.7: All tests including repository tests against all supported versions
mylyn-integration-e4.1 - Eclipse 4.1: All tests including repository tests against all supported versions
mylyn-integration-standalone - Java 1.6 : Tests designed to work outside of an OSGi environment
The full suite of repository tests is only run on the most recent Eclipse platforms. Running the full suite is expensive and a Bugzilla or Trac specific test that fails on Eclipse 3.5 is very likely to also fail on Eclipse 3.7.
Release Jobs
Release and snapshot artifacts created by release jobs are published to download.eclipse.org.
mylyn-3.5.x-release - e_3_7_m_3_5_x branch mylyn-3.6.x-release - e_3_7_m_3_6_x branch mylyn-release - master branch
The Mylyn build is based on Maven/Tycho. The minimum required Maven version is 3.0.
- The
org.eclipse.mylyn/org.eclipse.mylyn-parentmodule specifies a parent pom with common settings. This pom is published to the Mylyn Maven repository.
- The
org.eclipse.mylyn/org.eclipse.mylyn-targetmodule specifies a target definitions. These are published to the Mylyn Maven repository.
mvn package
To skip execution of tests use
To run tests invoke the following command:
mvn integration-test
- Check out the org.eclipse.mylyn.all project.
- Run
git submodule initto initialize sub modules
- Run
git submodule updateto update sub modules to the latest integration build
- Run
mvn packageto build release artifacts.
The Release Howto describes how to build and publish official Mylyn releases.
The build defines profiles to build Mylyn against different targets. Profiles can be activated by passing
-P<profile> to mvn.
implicit-target- build against nightly repositories, this is the default
explicit-target- build against a target definitions in
org.eclipse.mylyn/org.eclipse.mylyn-target, needs to be activated through property
ganymede, galileo, indigo, juno, e4.1, e4.2- build against a specific Eclipse release (requires
Properties control certain aspects of the build such as execution of tests or optional analysis of source code. Properties can be set by passing
-D<property>=<value> to mvn. All properties are initialized to sensible default values and are optional.
tycho-version- version of Tycho to use for building
analysis.skip- set to false to run code analysis (default: true)
test.skip- set to false to run tests (default: ${maven.test.skip})
sign.skip- set to false to run code signing (default: true)
pack.skip- set to false to run pack repositories (default: false)
promote.skip- set to false to copy artifacts to download location (default: true)
Mylyn uses the Eclipse code conventions with these minor additions (bug 214179):
Tags: Mylyn uses the following tags in the code:
- TODO: The following code needs to be reviewed.
- TODO API: Indicates that a method or class needs to be reviewed.
- TODO API x.y: This API is going to change for version x.y. Should include a description how it is going to change.
- TODO e3.4: Make a change in the future specific to an Eclipse version.
- XXX: The implementation uses a temporary work around that should be replaced by a proper solution in the future.
- XXX SDK: The code uses internals of the Eclipse platform.
- FIXME: Should only be used in very rare cases as a reminder that the marked code does not work as expected. Code marked as FIXME should not be distributed in a release.
- FIXME REVIEW: Review the code before the next version is released
Creating new plug-ins and features
File a bug that describes the purpose of the new plug-ins and the proposed names. Then add an item to the weekly meeting agenda to discuss the request with other committers. Once consensus has been reached follow the steps below.
To retain consistency of layout and settings, new projects should always be created by copying an existing project rather than creating plug-in or feature projects from scratch.
Steps for creating a new plug-in or feature:
- Copy an existing project on disk, e.g. to create an org.eclipse.myconnector.core bundle do the equivalent of running
cp -a org.eclipse.mylyn.bugzilla.core org.eclipse.mylyn.myconnector.core
- Edit
META-INF/MANIFESTto reflect the new bundle id
- List the new bundle as a module in the parent pom to include it in the build
- Use Import Projects from the popup menu in the Git Repositories view to add the project to the workspace
For plug-ins these additional steps should be considered:
- Add bundle to feature
- Add source bundle to SDK feature
For features these additional steps should be considered:
- Add feature to site
Contributions are a key part of evolving Mylyn. All committers should encourage and prioritize contributions.
Applying Patches
- Note that each patch should not contain more than 250 lines of code of unique and seprately usable functionality. For larger patches we need to invoke the IP Review process.
- Contributors frequently write quick patches in order to get something working for them. It is the responsibility of the committer to either encourage the contributor to improve the modularity and test coverage of the patch or to do those themselves if this aligns with the projects' priorities. Failing to do so can reduce the overall quality of the code and failing to get sufficient test coverage reduces our ability to evolve the code.
When applying a patch follow these steps:
- Enter the name of the contributor as the author of the commit
- Encourage the contributor to update the patch into state where it can be applied unaltered.
- If you need to make addtional changes that are non-trivial (e.g., copyright header fixes) commit the unaltered patch first and then make another commit with your changes.
- If absolutely necessary, a task-branch can be used to group commits and improve traceability otherwise commit messages should be sufficient to associate bugs with commits.
- All files altered by a contributor must have a note in the copyright header and should have an @author tag if a change was significant.
- If several authors have worked on a commit consider adding Co-authored-by headers to the commit message for each author.
- Also see Development_Resources/Handling_Git_Contributions .
- Flag the the patch attachment as iplog+.
- Add the contributed keyword to the corresponding bug.
Web Site
- Create a new CVS location: :extssh:dev.eclipse.org:/cvsroot/org.eclipse
- Check out www/mylyn as a project
You need to be a member of the
mylyn group to commit changes to the website.
The Mylyn Incubator is a set of projects and feature contributors use for experimentation. These features are not intended to be used for daily development. Incubator features include experimental connectors and bridges, experimental UI features, and developer tools. To use Incubator tools either check them out of the version control, or install them using the Incubator update site.
Dev tools
- Introspect Object (action): displays the class and other relevant information (e.g. degree-of-interest, task synchronization state) of any object visible in the workbench. Appears at the end of the context menu for any view that accepts an object contributions.
- Interest Level Decorator: displays the floating point interest level of elements. Enable via Decorators preference page.
- Repository Spy: displays the repositories with all their atrtributes in a separate view. Allows the deletion of selected properties.
- Properties View sources: Shows properties of items selected in the Tasklist View or Task Repositories view in the standard Eclipse Properties View.
Experimental tools
The following experimental views can be opened via the Experimental view category or accessed via the Tasks -> Experimental preference page.
- Context Search: Automatically finds and displays elements that are structurally related to landmarks in the active . These elements become part of the task context and have a predicted degree-of-interest.
- Context Hierarchy: Displays the Java hierarchy of all landmark elements.
- Predicted interested for Java errors: Potentially useful, but tends to overload the Package Explorer. If you find this useful for long-term use condiser commenting on bug 107542.
Tips and Tricks
User support
- Every time that you find yourself formulating an answer to a bug report, email, or newsgroup post, if the answer is more than a sentence, consider updating the FAQ, User Guide, or Integrator Reference and pointing to the entry.
- Every time that resolving a bug does not result in a code change that addresses the problem or clarifies the UI, update the FAQ or User Guide to make sure that users can self-diagnose the problem. This is particularly important for bugs marked INVALID or WORKSFORME.
- For error handling use
StatusHandlerand pass an
IStatusobject. Note that some of the other Mylyn code uses the convenience methods on
StatusHandler, but we are phasing those out because they do not pass the plug-in ID that the exception originated from.
- Use
WorkbenchJobfor running jobs that should only run when the workbench is active. Not doing this can cause errors on workbench shutdown (e.g. bug 178409).
- When using
String.toLowerCase(), use
String.toLowerCase(Locale.ENGLISH)to ensure locale safety (see bug 168652).
- Do not use
@Overrideannotations on implementing methods, only on overriding methods. Doing so violates Java 5 (bug 173171).
- Use DateFormat with extra caution. It is not thread-safe and should not be saved to fields in classes that can be used from multiple threads (UI, asynchonous execution, or jobs).
- For the sake of multi-monitor setups, use
getMonitor()instead of
getDisplay()when you want to position a UI element on a specific coordinate of the screen.
- To improve the speed of decorators use setUseHashlookup(true) on all structured viewers.
- Query setup: If you are added to the cc list on a report that is not picked up by your usual queries it may go unnoticed. One trick is to create a query for ALL products except the product you usually work in (and hence have queries for) and set the cc field of the query to your id. Now you will be notified of anybody adding you to the cc of a product you don't usually monitor.
- Including Platform plug-ins in search: Java search (Ctrl+H > Java Search) will include all plugins in your Plugin-in Dependencies. If you want to search other plugins as well, open the Plug-ins view, right click on the desired plugin(s) and choose 'Add to Java Search'. That plugin will now always be included in your java searches.
- Task List problems: do not ask users to send or attach their Task List, since it can contain highly sensitive information. If needed ask the user to create a new workspace and try to reproduce the problem there, ensuring that they have not included any user private or company private information, and have them send that.
- Plug-ins fail to load: verify that plug-in dependencies are met via the Validate Plug-in Set button on the launch configuration Plug-ins tab.
- Startup failure: If you get an
IStartupfailure message or a
ClassNotFoundExceptionon startup this is often the result of some step in the activation of the plug-in failing.
- Attempt to find the earliest exception thrown within the in the plug-in's activation process. For example, this could occur in
- If the cause of the failure is not straightforward, the problem could be due to a class loading race condition. This can sometimes be verified by trying a different VM like IBM's or BEA's and checking if that resolves the problem. If this is the case, please file a bug.
- Attempt to find the earliest exception thrown within the in the plug-in's activation process. For example, this could occur in
- Getting a thread dump (when Eclipse hangs):
- On Windows use the tool found at the adaptj home page:
- Follow the link and select button "Launch" and run the applet
- Select menu Process > Thread Dump
- In the combo box "Process ID" select the Java VM and click OK
- Or, run Eclipse with the
-debugoption (or use
javaw.exeon windows), then
- On Windows: Hit a
Ctrl-Breakfew times on the console window during that long synchronization to capture the thread dump
- On Windows: Hit a
- Or, on Linux: Use
Ctrl-\on the console or send SIG_QUIT signal:
kill -SIGQUIT pid
- Or, with jconsole (requires 1.5 jdk, works on any OS):
- Launch eclipse -vmargs -Dcom.sun.management.jmxremote
- Launch the JDK's jconsole tool. You can attach to the Java Process and copy&paste the thread dump.
- Use
jpsto find the PIDs of Java processes and
jstackto show the stack trace of Java processes:
jstack pid
- Supported starting JDK 5 for UNIX / JDK 6 for Windows
- See this Weblog on jstack
- Also see Thread Dump and Concurrency Locks for more details.
- On Windows use the tool found at the adaptj home page:
- Startup problems and deadlocks: for a diagnosis of a potential problem see diagnosis on https://bugs.eclipse.org/bugs/show_bug.cgi?id=177048#c3


text:
James Van Dyke Evers was only 3 when his father, Medgar, was assassinated in the driveway of the family's home in Jackson, Miss., in June 1963.
A sniper shot Medgar Evers in the back as he returned from a meeting late at night. Tensions had been running high because Evers, the first field secretary for the NAACP, was making headway in pushing the state's black citizens to register to vote. White Mississippians who had lived comfortably under segregation could feel the ground shifting beneath them — and they didn't like it.
Evers and his wife, Myrlie Evers, regularly received death threats tied to Evers' work. They had created a drill for their two older children, Reena and Darrell: If you hear shots, drop to the floor and carefully crawl to the bathroom. Get in the tub. You'll be safe there. Watch out for your brother. The tub was a bulwark of porcelain-covered cast iron, strong enough to stop a bullet or protect from a firebomb.
So on the evening that Byron De La Beckwith fired a rifle at Medgar Evers as Evers was emerging from his car, Reena and Darrell Evers did what they'd been told. They took their little brother, Van, with them to the bathroom and placed him in the tub and ran outside when they heard their mother's cries. They encircled their father while he bled in the driveway. He died in a local hospital an hour later.
That was 50 years ago. Van Evers, now a handsome man with his father's height and his mother's charm, has had plenty of time to think about what's been taken from him.
"I feel as if I gave up both of my parents to the movement," he says in a park near his Pasadena home. "After Dad died, Mom was gone a lot. She had to support us, she had to carry on my dad's work, so she frequently wasn't there. We were alone a lot," he says, and family and friends looked after the siblings in their mother's absence.
But Van Evers is not complaining. His mother is his hero. "If I can do nearly as much as what my mother has done in family, togetherness, tightness of a unit, I've been successful," he says.
While Myrlie Evers-Williams — she remarried in 1975, to labor organizer Walter Williams, who died in 1995 — did continue her work in the movement that her first husband died for, Van Evers decided to go another route. He's a successful commercial photographer doing portraits, editorial work and still photography on television shows. He does not announce who his parents are, because he wants to make his own way through life.
It's a decision not everyone agrees with. He tells, with some irritation, of a very well-known movement veteran who chastised him for not picking up the torch.
"It's not my calling," he says simply. "There have been famous people who would say, 'Why aren't you doing what your dad did?' And I look at them and say, 'Well, guess you've not been in my position.' "
Evers is married with two sons, and he spends as much time with them as possible. "Having my dad taken from me — and I didn't get to do things like playing ball in the park, and all the rest of that stuff — I feel like the most important thing I can do for my kids is give them what I didn't get."
He may not have as many memories of his father as his older siblings, but Van Evers has inherited something significant: his father's love and aptitude for photography. Medgar Evers was known to take a camera with him almost everywhere he went.
Van Evers didn't know he shared his father's love of photography until a young neighbor handed his camera over and showed Evers how to work it. He was entranced: "I looked through the camera and took a picture, and it was magic. I could frame a life in that lens."
From that point on, he knew what he wanted to do.
Evers put his skill to good use in 2013, when his mother gave the invocation at Barack Obama's second inauguration. The family was invited to the presidential viewing stand to watch the inaugural parade pass before the Obamas and their guests. And Nolan and Alex Evers, 12 and 13, got to shake the president's hand as their grandmother looked on proudly.
Nice synergy, that: Obama, the 44th president of the United States, the first black president of the United States, was shaking the hands of the grandchildren of Medgar Evers, whose work made his historic victory possible.
And Van Evers captured it all with his camera.
This summer, NPR is looking back at watershed moments in the Civil Rights Movement. Among the legacies of that era are the children of people killed because of their work to bring about racial equality. They're sometimes called Children of the Martyrs.
Today, NPR's Karen Grigsby Bates introduces us to Van Evers, the son of Medgar Evers, whose work to register black voters cost him his life.
KAREN GRIGSBY BATES, BYLINE: June 11th, 1963, Jackson, Mississippi. In the early evening, Myrlie Evers and her three children - Reena, Darrell and Van - had been gathered around the television to hear President John F. Kennedy tell the country it would begin to experience desegregation in earnest soon.
PRESIDENT JOHN F. KENNEDY: A great change is at hand. And our task, our obligation is to make that revolution, that change, peaceful and constructive for all.
BATES: The night of the speech, Myrlie Evers allowed her children to stay up and wait for their father who had, as he often did, worked late. As the first field secretary for the NAACP, Medgar Evers did work that was dangerous and necessary to desegregate what some called the meanest state in the country. The family had received so many death threats that the Evers regularly ran household drills to teach their children how to drop to the floor and crawl to the safety of their bathtub to avoid the damage from bullets and firebombs.
A few moments after midnight, Medgar Evers' car turned into the driveway. But then, as he was exiting the car, a shot rang out.
UNIDENTIFIED MAN: The bullet hit him in the back, crashed through his body, through a window into the house. He died within an hour at a Jackson hospital.
BATES: Medgar Evers was just 37 years old. He'd been killed by an angry segregationist for his voter registration activities and for urging blacks to boycott Jackson businesses that insisted on remaining segregated.
MEDGAR EVERS: Don't shop for anything on Capitol Street. Let's let the merchants feel the economic pinch.
BATES: James Van Dyke Evers still marvels at his father's courage. He was three when his dad was killed. Now, at 53, he has his mother's charm and his father's love of photography. Medgar Evers was known to take a camera with him everywhere he went.
After his murder, the family fled Mississippi for California, where Van Evers grew up. And he now has a job that would make his father smile. He's a successful professional photographer, doing commercial and editorial work.
Sitting in a park not far from his Pasadena home, Evers says he went back to Mississippi with his mother in June, to be honored at ceremonies commemorating the 50th anniversary of his father's death, and celebrating his life and work. It was not an easy trip to make.
VAN EVERS: Going back to Mississippi is always a difficult thing for me. It brings back memories, not very pleasant memories.
BATES: He's proud of the racial progress Mississippi has made since his father's death and proud of the part his father had in creating that progress. But it came at a huge personal cost to Van Evers, one he isn't sure he'd pay if he'd had the choice.
EVERS: Being selfish, I'd give it all back to have Dad.
BATES: Growing up, Van Evers says he felt as if he'd given both of his parents to the movement. Myrlie Evers was often on the road, making speeches to provide for the children and continuing her husband's work. When she was home, she made sure her children knew they were important parts of their father's life.
EVERS: She's like, Dad would drive from I don't even know the counties, do anything to get back for my brother and sister if they had events. He loved us.
BATES: And that influences his own parenting. Van Evers and his wife are raising two young sons and he's very clear on what he wants for his own children.
EVERS: The most important thing I can do in my life is give my kids what I did not get.
BATES: Some have questioned Evers for making family his priority, rather than continuing his father's work. That irritates him.
EVERS: That was not my calling. And, you know, society and people, famous people have - well, why aren't you doing what your dad did?
BATES: They actually ask you that?
EVERS: Oh, yeah? Why aren't you picking up the torch? And why aren't you moving along? Why don't you just - and I look at them and it's like, I guess you've not really been ever in my position.
BATES: Evers has created a rich, full life. And like, many of the martyrs' children, he is remarkably philosophical about his loss. To feel hatred for all whites because one white man killed his father? No. That would go to a very dark place in his soul and he refuses.
EVERS: My dad gave his life for us not to live on the dark side, not to live with anger and not to live in fear.
BATES: In 2008, Van Evers did what he's always done to honor his father's work, he voted. He says he felt his dad was with him when he entered the voting booth. Some time later, Evers and his family visited the White House. Barack Obama shook hands with the children whose grandfathers' work on voter registration helped to make his job possible.
And Van Evers, of course, documented the moment with a photograph.
Karen Grigsby Bates, NPR News.
CORNISH: Karen covers race, ethnicity and culture for NPR's Code Switch team.
We have conversations with other children of Civil Rights martyrs, including Martin Luther King III, at our website, NPR.org. Transcript provided by NPR, Copyright NPR.

subset: commoncrawl


text:
Building, puzzling and playing: at the Explorado Children's Museum in Duisburg the focus is on learning by doing. By experimenting, trying things out for themselves and having fun, children acquire knowledge more easily. Suitable for ages four and above.
The Explorado Children's Museum is situated at the heart of Duisburg's river port. Learning is lots of fun in this huge exhibition space containing more than 100 exhibits. The journey of hands-on discovery begins in the very first room in which the children themselves become the object of study. In this body-themed area, where the focus is on movement and motor skills, the children get to explore and analyse all aspects of their physical selves. As they play on and with the exhibits, they learn how amazing their bodies are and how important it is to be aware of their own needs. A running track, bells obstacle course, motopad and climbing wall are among the other fun-packed exhibits that improve the youngsters' abilities to balance, bend, run and hold postures. There is also a play ship, where the kids can have a go at being captain and learn what river barges do. It's a journey of discovery that never stops!
At the Explorado Children's Museum, children aged from four upwards can look forward to a huge tree rising up from the basement to the first-floor 'nature' section – climbing allowed! At the excavation site, mini archaeologists get to dig for prehistoric finds such as fossilised bones, a sword and an ancient mobile phone! In the water world, they race sailing boats across a pool to see how cleverly these boats harness the power of wind. As technology testers, they get to build walls and roofs, try out wheelbarrows and sit in a mini excavator. In the transport section with its hands-on workshop, the kids can take their 'driving test'. Other highlights include a shadow theatre, drum tree, barge, recording studio, balance rope and parents' corner. In the MediaMix section, the children learn all about this increasingly important aspect of everyday life by playing with the many creative exhibits, and explore the pros and cons of social media such as Facebook. The Kids' University is a series of events that gives children a solid grounding in the workings of science and scientific research.
Tarayıcıda zoom yapmak için iki faydalı tuş kombinasyonu:
Büyütme: +
Küçültme: +
Daha fazla yardım için aşağıdaki simgeye tıklayarak sağlayıcınızla bağlantı kurun:


text:
These Accuride 3732 Drawer Slides with 100% Extension are designed with a unhanded push-latch disconnect for simple drawer removal, and have a hold-in feature to keep slides closed until extra force is applied.
Please see technical drawing for hole exceptions.
Material - Mild Steel
Finish - Zinc Plate & Passivate
SL = Slide Length
TR = Travel
W = Weight of slide (kg) - per pair
L = Load capacity of slide (kg) - per pair
Enquire about this product
You can contact us about this product directly on the form below. Please send us the details of any question, or help that we can provide you.
Drawings and images are for reference only and should not be used for product specification. For new applications we recommend that you carry out assembly tests using samples supplied by us.
All dimensions are mm unless specified.
Established in 1977, JET PRESS is now positioned as a market leader in providing you with engineered fastening products and components.
We have a vast range of off-the-shelf proven products with expertise in developing bespoke prototypes and tooling to deliver solutions that you need.
JET PRESS Limited
Nunn Close, Huthwaite
Nottinghamshire, NG17 2HW, UK
Order on-line at Components Direct, part of the JET PRESS Group.
Privacy and Cookie Policy | Terms of Use | Terms of Sale
© 2020 JET PRESS Limited. Registered in the UK, Company nr 1884896, VAT nr GB 509 4994 09.


text:
Jodi Arias Found Guilty of First-Degree Murder
A jury in Arizona found Jodi Arias guilty of the first-degree murder of Travis Alexander, meaning she may face the death penalty.
The killing occurred in 2008, and the ensuing investigation and trial captivated many legal observers before arriving at today's verdict. Arias did not deny having killed Alexander, she merely claimed it was done in self-defense.
The jury did not agree, and perhaps the details of his death played a role in their decision. Alexander, Arias's ex-boyfriend, was shot, stabbed numerous times and nearly decapitated, which doesn't sound much like self-defense.
The deliberations took 15 hours, following a trial that began on January 2. The next stage is the sentencing process, and it is unclear whether the jury is likely to condemn her to death. According to CNN legal analyst Jeffrey Toobin, "Now the odds, I think shift somewhat in her favor, because it's a very different thing to sentence someone to die than to convict them."


text:
The place where travelers make memories.
For a small country, there's a lot to do here.
With reef, beach, inland and underworld activities to choose from, this is where travelers explore and have adventures of their own making. With so much of our natural environment under preservation efforts, eco-tourism adventures are much more rewarding here. See a few of the top activities listed below:


text:
Among recent enforcement actions by the SEC were charges against the owner of an investment advisory firm for insider trading; against a former tech company executive for tipping in the Rajaratnam insider trading case; against an independent filmmaker for insider trading; against a former Qualcomm executive and his former financial advisor for insider trading; against two former bank executives for financial misstatements; against the former president of an investment firm for fraud; and against the founder of Left Behind Games and his friend in a revenue inflation scheme.
Advisor Charged With Insider Trading of Drug Firm
Tibor Klein, president of New York-based Klein Financial Services, was charged by the SEC with insider trading after he used confidential information about Pfizer's planned acquisition of King Pharmaceuticals to make more than $300,000 by trading in both his own and client accounts in advance of the public announcement.
His friend Michael Shechtman, a South Florida stockbroker, was also charged after he made more than $100,000 on a tip from Klein.
The SEC said that Klein got the nonpublic information on the approaching August 2010 merger from an attorney client who worked on matters for King Pharmaceuticals. The first day the market opened after Klein learned the information, Aug. 16, he went on a stock-buying spree for himself and his clients. That gave him away; he hadn't bought so many shares of a single stock in such a short time that whole year.
Klein also made repeated calls to Shechtman on Aug. 16 and again on Aug. 18. On the first date Shechtman opened an account to trade options, something he had never traded before, and on August 18 he bought 2,500 shares of King Pharmaceuticals stock and 300 call options in his personal account, and 2,400 shares in his wife's Roth IRA account.
The announcement didn't go public till Oct. 12; King Pharmaceuticals stock subsequently gained 39% and its trading volume soared 12,000% from the day before. Post-announcement, Klein sold his own and his clients' shares, making profits of $328,375.02; Shechtman sold the stock and the options and brought in profits of $109,040.53.
The SEC seeks disgorgement of ill-gotten gains, financial penalties, and other penalties against the two.
Independent Filmmaker Charged With Insider Trading
Manhattan-based independent filmmaker Lawrence Robbins has been charged by the SEC with insider trading based on confidential information from his business partner John Michael Bennett about impending takeovers of two biotechnology companies, Millennium Pharmaceuticals and Sepracor.
Bennett and his friend Scott Allen, from whom he received the information, were previously charged in the scheme.
Allen learned the confidential information prior to the two acquisitions through his job at a global consulting firm that was advising the acquiring company in each deal. Thanks to his leaking the information to Robbins and Bennett, the latter two collectively spent tens of thousands of dollars acquiring call options in the companies, then made more than $2.6 million in illicit profits after the deals were publicly announced. Robbins used part of his proceeds to fund the independent film production business that he shared with Bennett.
Allen got the information on Millennium in mid-February 2008 when his firm began advising Japan-based Takeda Pharmaceutical Company during its negotiations with Millennium. On Feb. 27, he passed inside information about the deal to Bennett, who then shared it with Robbins. The two began stockpiling shares two days later, and when the announcement was made public on April 10, the 48% increase in share price brought Robbins $1.12 million in profits and Bennett more than $602,000.
Then, in May 2009, Allen participated in due diligence work for the Japanese firm Dainippon Sumitomo Pharma Co. (DSP) in connection with its impending acquisition of Sepracor. Again he shared what he knew with Robbins and Bennett, who went into action once more. This time they made more than $388,000 and $516,000 respectively.
Robbins has agreed to pay more than $1 million to settle the SEC's charges: $865,000 in disgorgement and prejudgment interest and a $150,000 penalty. The settlement, subject to court approval, takes into account Robbins' current financial condition.
The SEC's case continues against Allen and Bennett, who have pleaded guilty in parallel criminal actions.
Ex-Qualcomm Exec, Advisor Charged With Insider Trading From Secret Offshore Accounts
Jing Wang, a former executive vice president and president of global business operations at Qualcomm, and his former financial advisor Gary Yin, a former registered representative at Merrill Lynch, were charged by the SEC with insider trading that brought the two more than a quarter-million dollars in profits.
Wang and Yin became friends in 2005 as members of the same church. When Wang discovered that Yin was an advisor, he asked him to manage his money, and in the beginning all accounts and transactions were cleared with Qualcomm, as required by Wang's status as a company officer.
However, that changed in early 2006, when Wang approached Yin about hiding cash transactions. Yin suggested Wang create an entity registered in the British Virgin Islands (BVI) and use a non-U.S. citizen family member's name as the beneficial owner; then he could open a brokerage account in the new entity's name.
Yin helped Wang set up a secret account in the name of a BVI company called Unicorn Global Enterprises, with Wang's older brother listed as owner. Yin also created a BVI-registered entity for himself, named it Pacific Rim and put it in his mother-in-law's name. Then he opened a Merrill Lynch brokerage account for that entity, using it to hide funds that he was using for investments.
The two used the secret accounts to trade on material, nonpublic information that Wang learned as an executive at Qualcomm, including the news of a share repurchase program in 2010 that Qualcomm executives were not allowed to trade stock for.
Wang instead ordered Yin to use all the money in the Unicorn account to buy shares, which clued Yin in to the clandestine nature of the transaction; Wang had never bought Qualcomm stock on the open market in his Merrill Lynch accounts. So Yin, too, bought shares, and the two profited after the stock repurchase plan was announced along with the company's quarterly dividend announcement.
Wang next took things a step further, using the proceeds from this event to buy up shares of San Jose-based Atheros Communications—a planned Qualcomm acquisition that was so secret it was referred to in the company as "Project Tango." Wang told Yin to sell all the shares in the Unicorn account and get ready to use the money to buy Atheros shares. Then, after a Qualcomm board meeting in China at which the acquisition price of $45 per share was disclosed to attendees, Wang instructed Yin to buy as many Atheros shares as possible for between $34 and $35 a share — and while he was at it, buy some shares for himself, which Yin did in his own offshore account.
Wang's next insider trading move was to capitalize on a favorable Qualcomm earnings report in advance of its announcement — something he did only four minutes after selling the Atheros stock, according to the SEC.
Altogether, Wang made more than $244,000 in illegal profits through his insider trading, and Yin made more than $27,000. But Wang eventually realized that his transactions could be traced, and asked Yin to delete the Unicorn trade records — something he couldn't do. Wang also asked Yin to open a new offshore account and transfer the proceeds there as a means of distancing himself from the trades, and to take other actions, including making a trip to China to discuss the trades with Wang's brother, who the two planned to say had made the trades.
The SEC's complaint seeks disgorgement of ill-gotten gains plus prejudgment interest, financial penalties and permanent injunctions, as well as an officer-and-director bar against Wang.
Former Exec Charged With Tipping in Rajaratnam Case
Kieran Taylor, formerly senior director of marketing for Akamai Technologies, was charged by the SEC with illegally tipping hedge fund portfolio manager Danielle Chiesi with confidential information about the company's plans to lower its revenue guidance for 2008.
Chiesi, a lifelong family friend of Taylor, was then a portfolio manager at hedge fund advisory firm New Castle Funds. Chiesi not only prompted New Castle to short Akamai stock, she also took the knowledge and ran — straight to Rajaratnam, among other hedge fund managers. She also told another of Taylor's friends, Steven Fortuna of the hedge fund advisory firm S2 Capital. These fund managers, along with Chiesi, used the knowledge to rack up around $10 million in illegal profits by shorting the stock. Taylor himself also traded on the information he'd shared, selling his 2,500 shares of Akamai stock and avoiding losses of $20,635.
Taylor has agreed to settle the SEC's charges by paying more than $145,000 — $20,635 in disgorgement, $4,190.26 in prejudgment interest and a $120,635 penalty — and being barred from serving as an officer or director of a public company. The settlement is subject to court approval.
The investigation continues.
Former Bank Execs Charged for Financial Misstatements
Ted Awerkamp of Amarillo, Texas, former CEO of Illinois-based Mercantile Bancorp, and Michael McGrath of Quincy, Ill., its former CFO, have been charged by the SEC with failure to recognize in financial statements a probable loss on one of the bank's largest troubled loans.
Before the end of Q3 2010, the SEC said that Awerkamp knew the borrower in a shared national credit loan for a large residential real estate development to be built in Colorado Springs was unwilling or unable to contribute the necessary funds to complete the project, which served as collateral for the loan. Awerkamp also knew that the collateral had lost substantial value.
After Q3, but weeks prior to the filing of the bank's quarterly report, Awerkamp and McGrath also learned that the borrower missed a loan payment and declared bankruptcy. U.S. accounting rules required that, because of these events and others, Mercantile must recognize a $5.28 million loan loss in its third quarter financial statements. But the bank did not.
Failure to report the loan loss meant that Mercantile's statement that its main subsidiary bank had met certain capital ratio thresholds required by the Federal Deposit Insurance Corp. (FDIC) was not true. Mercantile also understated its net loss for the quarter and the nine months ending Sept. 30. The bank reported those figures as $7.5 million and $11 million, when instead they were actually at least $12.78 million and $16.28 million. The bank also falsely stated that its main subsidiary bank had a net income of $1.8 million for the first nine months of 2010, instead of the net loss it actually had of at least $3.48 million during that time.
Awerkamp and McGrath have agreed to settle the SEC's charges by paying penalties of $100,000 each and being barred from acting as an officer or director of a publicly traded company.
Former President of Investment Firm Charged With Fraud
Larry Polhill, former president of American Pacific Financial Corp. (APFC), a purported private equity real estate firm based in San Bernardino, Calif., was charged by the SEC with defrauding nearly 500 investors who purchased promissory notes under the false premise that they were secured by specific properties or other collateral.
According to the SEC, Polhill used his company to buy and sell real estate and distressed assets. He wooed investors through unregistered notes that he claimed would bring them interest payments of 5% to 17% per year. What he didn't tell them was that the supposedly safe collateral underlying their investments was often nonexistent or otherwise impaired. Sometimes he even sold them without telling investors.
When APFC eventually filed for bankruptcy, it named the investors as unsecured creditors who were owed nearly $160 million. None of Polhill's investment offerings were registered with the SEC.
Not only promissory notes, but APFC-sponsored funds were also a way investors could "invest" in the company. These funds pooled investor money to make loans to APFC. The company made regularly scheduled interest payments to investors in the notes and the funds from the mid-1980s to 2007, which grew its investor base and encouraged the company to make ever-larger investments in distressed assets by buying companies out of bankruptcy.
While a few of APFC's investments were successful, the vast majority failed, and investors never knew. The assets that supposedly secured the investors' notes and loans dropped in value, again without investors' knowledge. Finally, in early 2008, APFC ceased making scheduled payments to most investors; however, to keep up the pretense, it continued to issue newsletters, pay preferred investors, and engage in other activities that would keep investors in the dark about its true financial situation.
Polhill has agreed to settle the SEC's charges and be barred from acting as the officer or director of any public company. The settlement is subject to the approval of the U.S. District Court for the Central District of California, which will decide monetary sanctions at a later date.
Left Behind Games CEO, Consultant Charged With Inflating Revenue
Troy Lyndon, founder, CEO and CFO of religious-themed video game manufacturer Left Behind Games, and his friend Ronald Zaucha, both living in Hawaii, have been charged with scheming to falsely inflate the company's revenue by nearly 1,300% in a one-year period through sham circular transactions. In addition, sale of the company's stock has been suspended.
The SEC said that Lyndon caused the company to issue almost two billion shares of stock to Zaucha as purported compensation for consulting services to the California-based company. The true purpose of the arrangement, however, was to enable Zaucha to sell millions of unregistered shares of Left Behind Games stock into the market and then kick back a portion of his stock proceeds to the company to prop up its revenue when it was in dire need of additional funds.
Left Behind Games was founded in 2001 and touted itself as "the only publicly traded exclusive publisher of Christian modern media" and "the world leader in the publication of Christian video games and a Christian social network provider." That didn't save the company from financial troubles, and at the end of 2011, it terminated all of its employees and closed its office.
The scheme started in 2009 when the two sought to save the severely undercapitalized and unprofitable company. Left Behind Games issued stock to Zaucha for his so-called consulting services, and at Lyndon's direction he promptly sold nearly all the stock for approximately $4.6 million. He then kicked back approximately $3.3 million of that to the company in three deceiving ways. In the first instance, Zaucha paid the company $871,000 from September 2009 to June 2010 for what his consulting agreement called "early-sell fees" for his excessive sale of stock.
In the second, in December 2010, Zaucha formed a company called Lighthouse Distributors and used the proceeds of his stock sales to finance the purchase of approximately $1.38 million in old and obsolete inventory from Left Behind Games. Lighthouse simply gave most of these products away to churches and religious organizations, yet Left Behind Games improperly recognized the revenue from these sham transactions and falsely claimed that its revenue had increased nearly 1,300% from the prior fiscal year.
In the third, Lyndon directed Zaucha to kick back another $1 million to Left Behind Games.
Lyndon did, however, allow Zaucha to retain $1.28 million of his stock sale proceeds for personal uses, which included the purchase of condominiums in Maui and Orange County, Calif.
Zaucha performed few, if any, consulting services, and each consulting agreement was vague about the services he was expected to provide. In addition, Zaucha did not have the experience to perform some of the functions.
The SEC seeks permanent injunctions, financial penalties and penny stock bars against Lyndon and Zaucha, and an officer-and-director bar against Lyndon. Its investigation is continuing.
Check out Top 10 Wall Street Crooks: Insider Trading on ThinkAdvisor.


text:
Super 8 Bridgeview Hotel: 708 Hotel Reviews
- Mackinaw City Hotels
- Super 8 Bridgeview Hotel: Hotel Reviews
- Traveler Review #15293
Super 8 Bridgeview Hotel
Traveler reviews
64 rooms on property
Hotel Website
Super 8 Bridgeview HotelAAA rating
Traveler reviews
601 N Huron AveToll-Free: 888-497-0101
Mackinaw City, MI 49701
Mackinaw City, MI 49701
64 rooms on property
Hotel Website
FREE Wi-Fi
FREE Breakfast
FREE Indoor Waterpark
Make a Reservation Write a ReviewMackinaw City's newest lodge with bridge and lakefront rooms with private balconies! Opposite 1000 foot beach, State Park, Fort Michilimackinac, & Lighthouse! Unlimited access to indoor waterpark. Close to restaurants, downtown shopping district, Mackinaw Island ferries, Mackinaw Crossings, free light show & free concerts. Family stays at no charge with one paying adult. Jacuzzi & Honeymoon suites with private balcony & refrigerator. Free Super Start Breakfast. Indoor Pool, Whirlpool, & Sauna. 2 Room / 2 Bath Family Suites. Color remote TV, HBO, ESPN, CNN
- #5
- of Mackinaw City Hotels from Traveler Reviews
The Super 8 Bridgeview is the only log cabin hotel in Mackinaw City. The Super 8 Bridgeview is conveniently located directly across from 1000 feet of Lake Huron Beach at the base of the Mackinac Bridge. Colonial Fort Michilimackinac and the Mackinac Lighthouse are within 500 feet of the hotel. Walk to the downtown area, enjoy a drink at the historical Dixie Saloon, and enjoy the free nightly laser light show. Shopping and Mackinac Island ferries are within walking distance. Enjoy access to indoor heated pool, the dry sauna, the whirlpool and the extensive game room and work out rooms. A Super Start breakfast greets you in the morning.
Super 8 Bridgeview Hotel is rated 4.5 out of 5 based on 708 user reviews.
Traveler Review
Room Was Very CleanTraveler Rating: 5 out of 5 stars
Super 8 Bridgeview HotelSuper 8 Bridgeview #15293 stayed September 2018. Jeffrey from SwantonRoom was very clean. Great location. Staff was very friendly and helpful. They went out of their way to make arrangements for tickets and a shuttle for the ferry .
Reason for staying: visting the area


text:
Welcome To Mopar1973Man.Com
We can see that your guest and been lurking about. When you register on the Mopar1973Man.Com site you'll be able to interact with all the other members. This is the most friendliest Cummins forum you'll ever join. Take the time right now and REGISTER on the Mopar1973Man.Com this will open up many more options and functions on the website. Everyone is very friendly and helpful just ask questions and everyone will help you out the best they can.


text:
Call Shoreham-by-Sea 01273 258222
MAX WAX Car Valeting provide the complete mobile car valet service for all your valeting requirements in Shoreham-by-Sea West Sussex and across the South of England.
Our mobile team carry out car valeting at homes, offices and leisure venues in Shoreham-by-Sea West Sussex and throughout Sussex, Surrey and Hampshire. We have over 24 years experience in the business and our valeters can valet everything from everyday cars and prestige makes, to classic cars and rare collectibles, boats and helicopters. Our customers trust us to look after their pride and joy, and we will wash, clean and valet your car with care, pride and an attention to detail that is second to none. If you have a prestige model, or a car that is in need of some work to bring it back to its former glory our team operate from fully insured, self-contained vans to provide you with a high quality, convenient car valeting service.
Autogylm Lifeshine in Shoreham-by-Sea West Sussex
Autoglym Lifeshine protects your car paintwork, upholstery, carpets and glass from everyday wear, tear and dirt. It also enhances your car's appearance, helping it look better for longer. If you live in Shoreham-by-Sea West Sussex we'll come to you and spend an entire day working on your car inside and out. Autoglym Lifeshine from MAX WAX will make your car sparkle and protect it's condition and value for years to come.
Read more about Autoglym Lifeshine
Mobile Car Repairs in Shoreham-by-Sea West Sussex
We don't just make your car look fantastic – if you live in Shoreham-by-Sea West Sussex we can repair it at a great value price too. We are fully mobile and can come to you for car dent, bumper scuff and paint repairs, alloy wheel repairs, windscreen repairs, air-conditioning repairs, vehicle servicing, fabric, upholstery and hood repairs.
Read more about car repairs and servicing


text:
Dine in with Fazila Qazi, unique cooking show currently running on ARY ZAUQ TV. Two unusual things about this show, first hosted by a very famous face of Fazila Qazi from 80s & 90s, second, this show not only is informative and entertaining on food and cooking but also meet celebrities and learn all about Fashion, Gossip, Gardening, Books, Celebrity Interviews, Beauty, and Health. A gossip and delicious ride not to be missed!
Thousands of trusted, authentic and KP community tested recipes and cooking videos containing Coconut (Grated, Powder) as main ingredients are handpicked and contributed by home, professional and celebrity cooks across the world - you're sure to find a favorite recipe from our collection. Our recipe section is expanding every week, so visit us often. We welcome your contribution, please upload via myKP or email us with your favorite recipes, and we will post them up to share with others.
Food Glossary |
Contact US |
Shipping & Returns |
Copyright |
Terms Of Use |
Privacy Policy
Grocery Shop USA |
Spices |
Wholesale Grocery |
myHenna USA |
VedicPro USA |
mySnacks USA |
Saloni.PK |
Copyright © 2020 Direct Advert Media LLC an website design firm | All Rights Reserved


text:
Hancock NH Emergency Plumber
Boiler Repair, Pipe Installation, Plumbing, Sewer Contractors, Backflow Prevention Devices & Services, Plumbers, Garbage Disposals, Leaks, Water Heater Repair
(877) 967-1585
Professional Plumbing Services in Hancock, NH 03449
Leaking pipe? No heating or hot water? When you need a plumber in a hurry, you want someone you know you can trust. As certified plumber in the Hancock 03449 are, our plumbers have a reputation for giving a quality service to every customer.
Whether you need an emergency water heater repair, or a fix for a broken pipe, we can help.
We respond quickly with accurate diagnosis to ensure your problem is fixed first time. Whether you have a residential or commercial plumbing problem, our experienced contractors will give you an accurate estimate, FREE of charge! There's no job too big or small!
03449 Plumbing plumbers will be there when you need them. There is no need to fret and wait. They will come day or night, weekends or holidays prepared to help you in your emergency situation. You may have one of several plumbing problems in your home in or around Hancock, NH. When they happen suddenly, it is hard to know what to do. 03449 Plumbing plumbers are friendly, fast, dependable and reliable no matter what your plumbing emergency entails. You may have a sewer backup, broken water heater, flooded basement, broken boiler or clogged kitchen sink. No emergency job in your home around the area of Hancock is too big or too small for 03449 Plumbing plumbers. Contact them for your emergency plumbing problems and they'll be on their way. They are also available for non-emergency plumbing as well.
We Offer:
Emergency plumbers
Around the clock plumbers
24-hour plumbers
Overflow Repair
Broken sump pump
Broken water heater
Clogged up sink repair
Broken faucet repair
Water Blockage
Pipe Clog Cleaning
Basement Sealing
Leak Repair
Shower repair
Non-flushing toilet
No hot water repair
Sewer back ups
Boiler repair
And More
Call us at (877) 967-1585 so we can assist you!
People also ask
Peterborough-NH-03458-Sump Pump Repair-Water Heater Repair
Dublin-NH-03444-Emergency Plumber-Drain Clogs
Bennington-NH-03442-Sump Pump Repair-Pipe Replacement
Stoddard-NH-03464-Emergency Plumber-Leak Repair
Greenfield-NH-03047-Emergency Plumber-Sewage repair
Harrisville-NH-03450-Boiler Repair and Servicing-Sewage repair
Antrim-NH-03440-Sump Pump Repair-Drain Clogs
Francestown-NH-03043-Bathroom Remodeling-Pipe Replacement
Jaffrey-NH-03452-Sump Pump Repair-Water Heater Repair


text:
Listings in Motorcycle Registration, Local Council, Live Music and To See in GOULBURN
Local Clickit GOULBURN
in Wi-Fi, Taxi, Takeaway Deals, Snack Van, Order Online, Movies, Lunch Specials, Local Sites Tours, Landmark, Fishing, Concierge, Club, Cafe', Business Meetings, Australian Restaurant, Australian Restaurant, All Day Breakfast, Abseiling, 1.Monday Special, .Hotel
We connect Local's with Local's. From local business to local community groups and organisations. No matter what you are looking for you will find a clickit for that. Become a Local Clickit sponsor TODAY.
PO Box 358
GOULBURN, New South Wales 2580
Review this
Astor Hotel Motel
in Sports Bar, Lunch Specials, Live Music, Functions, Dining, Beer Garden, Bar Food Restaurant, Australian Restaurant, .Motel, #Lunch Specials
Live entertainment is a feature of The Astor, with big name bands to local artist booked every week. We also feature regular live music every Friday, Saturday and Sunday nights in the front bar. The Astor Hotel offers a big city experience in a famil
93 Auburn Street
GOULBURN, New South Wales 2580
Review this
Goulburn Mulwarre Council
in Library, Local Council, Local Government, Council Service, Council Office, Council Service
184-194 Bourke St
GOULBURN, New South Wales 2580
Review this


text:
Life can be demanding at times. All of us have a certain amount of stress every day and usually cope with it well. At some point in our lives the stress may become overwhelming and the solutions we typically use to cope are not effective. Whether you are an individual feeling isolated and confused, a couple in conflict, parents and children arguing or employees distressed over the loss of a coworker, it is okay to ask for help.
I help people just like you focus on improving their relationships and build healthy interpersonal and family interactions. Together, we can highlight your existing strengths and resources and learn to develop new ones. As a client, you can gain self-awareness to enable you to cope with some of the challenges or obstacles that life presents.
Success in life, school, work, and relationships is based on solid foundations of education, training and emotional support. I can assist you with building a solid foundation for success in all aspects of your life.


text:
Brand new , just took delivery of it today.
Link below.
EVGA NVIDIA GeForce GTX 1070 SC 8GB ACX 3.0 Black Edition
Unopened & unregistered
Will post pics shortly.
£390 ( a 9.5% saving off the online price)
Price and currency: £390
Delivery: Delivery cost is included within my country
Payment method: BT
Location: Bournemouth
Advertised elsewhere?: Not advertised elsewhere
Prefer goods collected?: I have no preference
This message is automatically inserted in all classifieds forum threads.
By replying to this thread you agree to abide by the trading rules detailed here.
Please be advised, all buyers and sellers should satisfy themselves that the other party is genuine by providing the following via private conversation to each other after negotiations are complete and prior to dispatching goods and making payment:
- Landline telephone number. Make a call to check out the area code and number are correct, too
- Name and address including postcode
- Valid e-mail address
DO NOT proceed with a deal until you are completely satisfied with all details being correct. It's in your best interest to check out these details yourself.


text:
Friday, January 27, 2012
Subscribe to: Posts (Atom)
The power of an organization is the capacity generated by relationships. It's real energy that can only come into existence through relationships. Power is energy. It needs to flow through the organization. Those who are open to others and who see others in their fullness create positive energy. Creating WE (Judith E. Glaser) is a positive, uplifting about growth and transformation. The we, the balance of the dynamic tensions is the healthy culture so BensonWong With Who? WWW.BENSONWONG.COM