Introduction
The "Jenkins Certification" program intends to provide a standard by which practitioners can demonstrate their level of Jenkins expertise and also an indication of expertise to employers interested in hiring Jenkins professionals.
As far as CloudBees is concerned, we think that it will bring a lot of positive dynamics to the Jenkins job market, by providing a professional reference for recruiters and engineers. By recruiters, we generally think of enterprises, recruitment agencies or job websites looking for skilled Jenkins practitioners. We (CloudBees) hope it will also bring more fluidity to the consulting and freelance market, for the same reasons as for recruiters. More generally, all software communities, whether proprietary or open source, which have created such a professional-grade certification program, have significantly benefited from it.
Beyond the above benefits, we believe certification programs have significantly improved the perception of those communities in the eyes of mainstream adopters. Getting such a recognition from mainstream companies opens up a whole new set of supporters. Although those supporters might not be as active contributors to the community as others can be, they bring a broader user-base and improve the long term stability of the overall community.
The fact that CloudBees has done the initial investment and is still supporting the operational costs moving forward should not prevent the community to be more actively involved in this program in the near future.
Advisory Board
When this program was program was originally conceived, CloudBees asked for a non-CloudBees affiliated member of the Jenkins community to participate in a "Certification Advisory Board." The purpose of which is to help identify gaps and inaccuracies in the exam questions on an on-going basis. The time commitment is estimated to be around 2-3 hours per month (max) as needed.
For various reasons we were unable to originally fill this slot, if you're interested in participating in the Certification Advisory Board, please contact<EMAIL_ADDRESS>Costs/Revenue
The certification program is not motivated by revenue objectives but instead motivated by a desire to raise the profile of talented Jenkins practitioners in the marketplace and help employers identify practitioners who are capable of successfully deploying, managing and growing Jenkins usage within those organizations.
Costs
The costs of the program are, to date, fully covered by CloudBees, Inc. For transparency's sake, this includes:
- Over a period of three months, up to forty CloudBees Jenkins engineers had to create and review exam questions (more than 370 in total). Only taking this one into account represents a significant cost.
- For the Beta certification exam in 12 cities around the world CloudBees has organized the registration process but also rented rooms, computers, connectivity use of Prometric online testing systems and assigned proctors and tech assistants in each location.
- CloudBees has hired certification consultants to ensure application of certification best practices in order to provide a professional-grade type of certification to all Jenkins users.
- CloudBees is working with Prometric, a certification exam provider who helps operate other certifications such as Cisco's certification examples. CloudBees supports 100% of Prometric costs. Their service includes online registration services, test question management system (creation, review), fully secured and proctored exam rooms in 400 cities around the world. This helps offer the best level of certification credibility and availability.
- Moving forward, CLoudBees will also need to review the exam results and maintain the exam up to date, according to Jenkins feature changes.
CloudBees is supporting 100% of the costs, whether investments costs incurred in the creation of the exam or costs related to the ongoing management of the program, including Prometric costs. CloudBees will also support 100% of the ongoing maintenance of the Certification exam over time.
Revenue
In the end, this initiative represents several hundred thousand dollars of investment and operational costs for CloudBees. We (CloudBees) don’t think we will be able to make any profit from this program. We simply expect the fees to cover some of our investments.
Preparation
The purpose of this Certification program is to offer a professional-grade type of certification. There is no plan at CloudBees to provide any specific training or documentation that will help prepare for the exam. That said, like any program of that nature, we have prepared Study Guides that indicate very clearly the type of topics that are covered in the exams,so that people can clearly see that such an exam requires both training and practice. CloudBees does offer training, which are helping people to better master Jenkins and therefore be better prepared for certification. This is simply not exclusive to CloudBees trainings. Any good Jenkins training can help prepare for certification.
CloudBees is however investing heavily in improving the general state of documentation for the Jenkins project but this does not have any direct tie-ins to the certification program.
Phases of Development
- Develop certification blueprint (e.g. who should the exams target, what level(s) of expertise)
- Develop certification exam questions
- Initial exam alpha testing
- Exam beta testing
- General availability of exam


menu
Navigation
menu
Title
keyboard_arrow_left
Title
notifications_active
search
keyboard_arrow_left
Title
notification_important
search
keyboard_arrow_left
Title
notifications_active
search
menu
Title
notifications
search
menu
Title
notifications_active
person_pin
arrow_back
Title


I began taking 300mg of Wellbutrin in January 2006 as prescribed by my doctor for the treatment of depression. I was also smoking at the time and my doctor thought it'd be a good idea for me to quit.
1st week on Wellbutrin: After the first week, I noticed that my cigarettes tasted awful--like breathing in exhaust and so I stopped smoking and began to love Wellbutrin.
3rd week on Wellbutrin: I developed the 'shakes' which is a side effect of Wellbutrin. I felt like my head was constantly shaking but when I would ask my friends if my head was shaking, they all said that it wasn't. It was a very annoying feeling and made me very self-conscious in my lecture classes. Not long after my head would start, it felt like my arms and legs were shaking but when I'd look at them, they seemed completely still.
4th week on Wellbutrin: I went to see Saul Williams perform at a poetry event. I sat in the second row center. I've seen a lot of interesting performances and reacted just fine but something was definitely wrong this time. The opening poet was speaking about a girl giving herself an abortion and it was incredibly graphic. Normally, I would have been a bit grossed out but not much else but this time I just couldn't take it!
Everything he said would not leave my head!  My mouth dried up and I felt really shaky and nauseous and I was worried that if I kept seated I would vomit but what's worse is that I felt that if I tried to get up and leave, I might either faint or have a seizure.  At one point, I think I even asked my friend to call an ambulance but then thought better of it.
7th week: I learned to ignore the shakes and tried my best to deal with the panic/anxiety side effect brought on by the Wellbutrin. I visited my parents who gasped when they saw me because apparently the Wellbutrin had made me lose quite a bit of weight, though I hadn't noticed until my family said something. Sure enough, I'd gone from about 165 to 140 in less than 2 months.
Despite the crazy side effects, the Wellbutrin got rid of my depression and I like that. I'm still on it (it's been about a year) and my only complaint is the fact that I get panic attacks that make me feel like I'm going to have a seizure. The fact that seizures are in fact a possible side effect of Wellbutrin doesn't do much to calm my fears. I almost feel like the benefits of the medicine are worth the trouble. I like not being depressed even if it means that I occasionally freak out about having a possible seizure, though I've never had one...yet.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


A _master_ in OpenDNP3 is a component that communicates with a single outstation via a communication channel. You may see this term used in other places to refer to a collection of such components communicating with multiple outstations. When more than one master is bound to a single communication channel, it is called a _multidrop_ configuration. This refers to the way in which an RS-485 serial network is chained from device to device. OpenDNP3 will let you add multiple masters / outstations to any communication channel, regardless of he underlying transport. You could even bind a master to a TCP server and reverse the normal connection direction. OpenDNP3 doesn’t care.
To add a master to a communication channel you call the _AddMaster_ method on the channel interface:
// C++
MasterStackConfig stackConfig; // initialized with defaults
IMaster* pMaster = pChannel->AddMaster(
"master", // stack name
LEV_INFO, // log filter level
PrintingDataObserver::Inst(), // see below
stackConfig // stack configuration
);
Just the same as when we created a channel, we provide a string ID for the logger and a log level. The _MasterStackConfig_ class provides the master with all of its configuration. It tells the master how to behave, what scans to do, and what features to enable or disable on the outstation. A description of what each parameter does is provided in the code documentation for the class. The method returns an interface that represents the master. It contains sub-interfaces for doing things like issuing controls.
By now you’ve probably noticed that I haven’t described what the _PrintingDataObserver::Inst()_ call is all about. This parameter is the call back interface that the application must provide to receive measurements as they are received from the outstation. The singleton above simply prints all measurements received to the console. The instance provided by your application will do something more interesting by implementing the _IDataObserver_ interface.
// Java
public interface DataObserver {
void start();
void update(BinaryInput meas, long index);
void update(AnalogInput meas, long index);
void update(Counter meas, long index);
void update(BinaryOutputStatus meas, long index);
void update(AnalogOutputStatus meas, long index);
void end();
}
The master will call start() prior to any calls to update(X) and will call end() last. The master does this for each application layer _fragment_ containing measurement data received from the outstation, allowing you to individually handle them. If the master does an _integrity poll_ and receives a 4 fragment response, the data observer will be called 4 times with a complete start()/update(X)/end() cycle.
It is important to remember that while the master is calling you back with measurement updates, it can’t do any other work like react to control requests. It’s OK to do a little work like translating the data types, etc during the callbacks, but it’s best to offload any blocking I/O like writing to a database to another thread.


remote objects
See the github project for more information:
https://github.com/josdejong/remoteobjects