creative enablers

Here at ForgeRock we are passionate about delivering high quality, high performance, open source identity and access management solutions. Our challenge in this is not only following the shifting landscape as security needs evolve, but predicting the future needs and being one step ahead so we have products in place, ready to deliver.

Identity and access management are simply no longer about static internal enterprise solutions where the identity is a person and access is to some coarse grain resource. With the Internet of Things the range and number of identities are increasing exponentially. Access is fine-grained and location is irrelevant. It is no longer about managing simple identities but relationships that are dynamic and need to deliver and perform at Internet scale.

As engineers we are constantly on the look out for tools that help us design, develop and deliver the best within a timely fashion. With our flexible working culture, control and choice is given to each engineer to shape their working environment to stimulate creativity and productivity, and this includes their choice of tools.

The IDE is essential to every engineer’s suite of tools being the platform for which we channel our creativity. It is important that each engineer finds an IDE which liberates their creativity rather than hinders and stifles it. This is why many of our engineers at ForgeRock have chosen IntelliJ IDEA.

Here are some of the reasons we choose to use IntelliJ:

Performant

It will not hold you back. For many of us who have used IDEs for years, IntelliJ is a clear leader in performance, being resource friendly and due to its sheer stability. It is fast to start up, fast to load large projects, fast to run tools like “find usages” and “call hierarchy”, and fast to perform searches. It does all of this without exhausting computer resources and without crashing – all things vital to not interrupting that creative flow.

Usability

It supports you. A good IDE should be one that allows you to get lost in your creativity and not constantly distract you. Whether that is through assistive tools like code completion, templates and sophisticated refactoring, or natural and useful keyboard shortcuts, and look and feel themes that make the code more readable – all of these are at the heart of IntelliJ.

Debugging

Will satisfy all your debugging needs. Sometimes you need to delve into the runtime code to understand exactly what is occurring and IntelliJ’s debug tools do this with ease and competence, allowing you to get closer to the area of interest.

Mobile Ready

It is mobile ready. Android development is quick to get started and does not feel like an extra feature but an integral part of the IDE. Integration with the Android debugging sequences makes for very quick deployment on emulators and real devices.

Customisable

The plugin framework just works. Unlike some of the other IDEs where plugins can often feel unfinished, unstable and not well integrated, IntelliJ goes the extra mile to create high quality, full featured plugins that work seamlessly with the IDE, and most of all, do not crash. They add value rather than frustration.

Some of these plugins our engineers use include integration with DocBook, assisting with DocBook syntax and error checking prior to builds; RESTful web service testing, avoiding the need to jump to an additional tool to fire off requests; FindBugs helping to improve code quality, and others like Python integration and regex assistance.

Summary

When it comes to delivering high quality, high performance, open source solutions, it is fair to say that for the majority of engineers here at ForgeRock, IntelliJ is an important part of that path to delivery. One engineer summarised it this way: “I don’t always use an IDE, but when I do, I use IntelliJ”.

the hello blog

I guess with every new blog site you should at least say “Hello”…

HELLO

I’ve always aspired to have a blog site but like with many, fear that I’ll post an entry once a year. Anyhow, here I am giving it a go so we’ll see what happens. As for the nature of the content, I’m not entirely sure yet, so we’ll see how that evolves.

If you’re reading around my blog, I hope I’ve given you something interesting to look at and that this isn’t the only entry.

How to use the mailing lists

In this article I will explain how to effectively ask for help on ForgeRock mailing lists. Following these simple guidelines will help you to solve your problem much more quickly and will benefit others in the community.

Look up the documentation first

In case you have a question about a certain behavior, then the product documentation should be the first place to check. If the documentation is sparse or ambiguous on a given subject, please do file a documentation bug about it in our public JIRA.

Check if your question has been asked already

The mailing list has an official archive (and a non-official mirror), both of which should be searchable using your favorite search engine. When using Google you can use advanced search filters like “site:lists.forgerock.org” which can increase the number of useful hits.

Check debug logs for clues

OpenAM has very verbose debug logging, so be sure that you’ve checked it for additional clues. Please note that in case of OpenAM, the debug logs are under the debug folder and the log folder actually only contains audit logs. For more details on debug logs please see this wiki article, for other useful troubleshooting tips see my blog post.

Provide version details

When encountering a bug/issue it is very useful to have version details, as it makes quite a difference whether you are using a 3,5 year old version of the product or the latest nightly. With older versions it is more likely that you’ve ran into an issue that is already fixed, while with a more recent version of the product we can rule all those out and suspect a possible regression/new bug.

Provide error messages

You’ve ran into some odd behavior and see some error message in your browser? Provide the exact error message you’ve seen. If it is a generic error message (like Authentication failed), then assume that it won’t be useful and think about including additional details of the use-case.

Be clear in your e-mails

Think about the mailing list members as people who spend time on trying to help you, so the least you can do is try to be as clear as possible, so make sure

  • the problem statement is understandable and has the necessary level of detail
  • it is absolutely clear what isn’t working under what scenario.

When the problem is resolved, provide solution

So you just spent a good day looking at some odd problem? Be sure you share your freshly gained knowledge and provide the solution for the other members.

Help others if you can

The mailing list is a community effort, so don’t just ask for help, but help others if you can. It is a really good feeling to resolve someone’s problem, believe me. Plus you never know how many free beer offers you can get out of these. :)