Webinar Recording: Making YouTrack Follow Your Process

The recording of our June 4th webinar with Dmitri Nesteruk, Making YouTrack Follow Your Process, is now available on JetBrains YouTube Channel.

YouTrack Logo

In this webinar, we shall see the ways YouTrack allows the issue tracking process to be customized so as to follow a defined process. We shall discuss the ways in process automation is supported out of the box as well as the ways in which users can define their own custom process scenarios.

Thanks everyone who attended, hope you enjoyed the show an learned something new.

We did our best to cover all the questions during the webinar and would like to share our of Questions & Answers session, providing more details and useful materials.

Continue reading

Posted in Screencast, Webinar | Tagged , , , | Leave a comment

Live Webinar: Merging Refactored Code – ReSharper Meets SemanticMerge, June 17th

Join us Tuesday, June 17th, 16:00 – 17:00 CEST (9:00 – 10:00 AM EDT) for our free webinar, Merging Refactored Code: ReSharper Meets SemanticMerge.

logo_resharper

In this webinar, Matt Ellis (JetBrains) will be hosting Pablo Santos (SemanticMerge) who will run through a number of refactoring examples, from the seemingly trivial (yet essential) to complex structure modification scenarios, and demonstrate how to do the refactor with ReSharper and later get it merged with Semantic.

Pablo will talk about the challenges of merging complex refactorings and demonstrate how SemanticMerge simplifies it, parsing the code into a syntax tree then reasoning about it as code rather than text (or text with heuristics), and merges accordingly.

If you’ve ever wanted to know more about ReSharper’s many refactoring capabilities and new tools designed to make merging complex refactorings a breeze, don’t miss this webinar.

Space is limited, please register now. There will be an opportunity to ask questions during the webinar.

About the Presenter:

Pablo SantosPablo Santos is the founder at Codice Software, the company behind Plastic SCM and SemanticMerge. Codice started in 2005 and since then Pablo played different roles ranging from core engineering to marketing, business development, advertising and sales operations. Nowadays he plays a dual role as lead of software engineering and product manager for both Semantic and Plastic.

Keep up with ReSharper news on our .NET Tools Blog and on Twitter @ReSharper.

Posted in Events, Webinar | Tagged , , , | Leave a comment

Live Webinar: PHP Annotations – They exist! Join us June 11th.

Join us Wednesday, June 11th, 4:00 – 5:00 PM CEST (10:00 – 11:00 AM EDT) for our free webinar with Rafael Dohms, PHP Annotations: They exist!

Register now for our free webinar.

Annotations are more than PHPDoc comments, they’re a fully-featured way of including additional information alongside your code. We might have rejected an RFC to add support into the PHP core, but the community has embraced this tool anyway!

This session shows you who is doing what with annotations, and will give you some ideas on how to use the existing tools in your own projects to keep life simple. Developers, architects and anyone responsible for the technical direction of an application should attend this session.

This webinar is geared towards developers of different proficiency and there will be an opportunity to ask questions. Space is limited; please register now.

Rafael DohmsRafael Dohms is an experienced PHP Developer, Evangelist, Speaker, and Contributor. During his years of experience, he has become an active member of the community and founded three user groups. He moved to the Netherlands in search of new challenges and to share his passion for code quality and innovation. In his spare time, he also helps manage the AmsterdamPHP User Group, amongst other projects.

Keep up with the latest PhpStorm news on PhpStorm Blog and on Twitter @PhpStorm.

Posted in Webinar | Tagged , , , | 2 Comments

Webinar Recording and Q&A: High-Performance Computing with C++

The recording of our May 29th webinar with Dmitri Nesteruk, High-Performance Computing with C++, is now available on JetBrains YouTube Channel.

Languages such as JavaScript may receive a lot of hype nowadays, but for high-performance, close-to-the-metal computing, C++ is still king. This webinar takes you on a tour of the HPC universe, with a focus on parallelism; be it instruction-level (SIMD), data-level, task-based (multithreading, OpenMP), or cluster-based (MPI).

We also discuss how specific hardware can significantly accelerate computation by looking at two such technologies: NVIDIA CUDA and Intel Xeon Phi. (Some scarier tech such as FPGAs is also mentioned). The slides used in the webinar are available here.

We received plenty of questions during the webinar and we’d like to use this opportunity to highlight some of them here as well as those we didn’t have a chance to answer during the webinar. Please find the questions below with answers by presenter, Dmitri Nesteruk.

Continue reading

Posted in Screencast, Webinar | Tagged , , , , , , , , , | Leave a comment

Webinar Recording: Spec BDD with PhpStorm and PhpSpec

The recording of our May 27th webinar, Spec BDD with PhpStorm and PhpSpec with Kacper Gunia, is available on JetBrains YouTube channel.

Useful links from the webinar:

Continue reading

Posted in Webinar | Tagged , , , , | Leave a comment

Nitra goes Open Source!

We’ve been rather quiet about Nitra since our introductory blog post, back in November of last year. But we haven’t been sitting still. We’ve been busy building the foundations to a project that we want to see as the basis for a lot of future work here at JetBrains. Now that we feel we’ve reached a minimum viable feature set, as well as a good architectural base for future development, we’re very happy to take the next steps on our roadmap, and release Nitra as an Open Source project.

The source is currently available on GitHub, released under the Simplified BSD license.

What is Nitra?

As a reminder, Nitra is a framework for the next generation of language tooling.

Traditionally, languages don’t ship with any kind of IDE support. It is up to tools vendors to provide syntax highlighting, outlining, code completion, navigation, find usages, refactorings and so on. Some of these features, such as syntax highlighting and outlining can be crudely implemented in a manner similar to regular expressions, but the more powerful features require a deeper understanding of the language.

Ideally, a language service should be able to parse a file into a form that it can reason about – an abstract syntax tree (AST). With such a deep knowledge of the underlying language, it knows what nodes in the tree are keywords for syntax highlighting, knows where blocks start and end for outlining, can pull out identifiers and their usages for code completion and navigation. Manipulating the tree can reformat or even rewrite the source code, enabling refactorings.

This is what JetBrains does right now, and, as a company, we’re very good at it – ReSharper ships with parsers and ASTs for approximately 20 file formats, and the IntelliJ ecosystem supports many more. As one product manager put it: “We’re JetBrains. We write parsers for breakfast”. But it’s busy work.

Nitra is designed to take away this busy work, allowing us to support more languages, quicker, and to focus on the higher levels in the stack of language tooling, such as analyses and quick fixes.

Nitra is a language for describing grammars, and the abstract syntax trees to represent them. It is also a build tool to compile the grammars into parsers, and generate the classes required to represent and navigate the AST. And it’s also a set of language services that use the grammar to provide automatic syntax highlighting, outlining and brace matching.

What’s more, Nitra’s grammars are designed to be extensible and reusable. A simple example would be the base building block grammars that ship with Nitra, such as Whitespaces and CStyleComments. Both clearly useful in many languages, and can be simply included and reused in a larger grammar.

A better example would be HTML, which allows for embedded “islands” of JavaScript and CSS. The HTML grammar could include the JavaScript and CSS grammars and allow full parsing of a typical HTML file. Take it further, and look at .net’s Razor web templating engine. This is a server-side HTML file that includes not only JavaScript and CSS, but also C#. Build a grammar that includes HTML, JS, CSS and C#, and you’ve got a parser and an AST that can handle Razor files.

Read Hadi’s Introduction to Nitra post to see an example grammar, and check out the wiki for documentation, especially for the syntax of the grammars.

Current Status

While we’re making Nitra Open Source today, this should not be considered an end-user preview. It’s a low-level language toolkit, and if you want to use it, expect to get your hands dirty. Here’s what it currently supports:

  1. Grammars to define lexer-less parsers and ASTs that can be extended at compile time or runtime, supporting composition of languages, or languages with extensible syntax, such as Nemerle
  2. A command line tool to compile grammars into an assembly containing the parser and the AST classes (grammars can also be compiled inside Visual Studio)
  3. A Windows application to load and test grammars
  4. A Visual Studio language service that uses Nitra to parse files and provide automatic syntax highlighting, outlining and brace matching. Current work is to increase the automatic support here to include go to declarations, find usages and rename refactorings

But this is still a work in progress. There are things that don’t yet work. The source reflects this in places, with incomplete grammars (for example, C++) and some references to internal test tools and file locations that aren’t included in the source code. This just reflects the status of the code as an active project, and will get cleaned up over time.

Building Nitra

Before you can use Nitra, you need to build it. Full instructions for building Nitra can be found here. Here’s an outline:

  1. Install Nemerle. Nitra is built by the Nemerle team, in Nemerle, so requires Nemerle in order to compile. You can download the latest version from the Nemerle site (there currently isn’t a VS2013 build that supports Nitra. One will be made available shortly. In the meantime, you need to use VS2012)
  2. Once installed, you need to open a command prompt in the Nitra folder, and run “BuildBoot.cmd”. This bootstraps the build process, building the boot versions of the assemblies required by the main product in order to build. you only need to do this once.
  3. Build the Nitra.sln solution in Visual Studio
  4. Set the environment “NitraPath” to point to the root of the source distribution. The Visual Studio integration uses this to locate the “NitraGlobalConfig.xml” file which tells it which grammars to load

Using Nitra

The solution contains several test applications you can use to give Nitra a go.

Firstly, there is Nitra.Visualizer, which is a Windows application that is pre-configured to load test files from the Nitra\Tests\Visualizer folder. It will use the grammars defined in the Nitra solution to load test files and compare the output with a known-good “gold” file. If the output is different, the test fails, and you can see the differences in the “Diff” tab. If the test succeeds, the file is displayed in the right hand pane, with syntax highlighting and outlining applied. You can also navigate the AST under the “Reflection” tab, and see how Nitra will output it in a pretty-printed version.

Nitra.Visualiser showing a C# file

There are several different tests and languages supported here, including C# and JSON, and a calculator DSL, too.

In fact, there’s also another sample app that uses the calculator DSL directly – Sample.Calc.App. This is a console application written in Nemerle that references the calculator grammar and parses input from the command line. It then pretty prints the expression you enter, outputs it with syntax highlighting, and evaluates it, using a Value() method that is defined as part of the grammar.

Calculator sample app

And of course, there’s the Visual Studio integration. Once this project builds, you’ll get a Nitra.VisualStudio.vsix file in the bin\Debug folder. Double clicking on this will install it into Visual Studio (you can also set up the debugging command line so you can just F5 the project). Don’t forget to set the “NitraPath” environment variable as mentioned above. The extension adds support for *.json files, and will parse *.csn files as C#, but most usefully, it will parse, syntax highlight and add outlining and brace matching for *.nitra grammar files.

vs_extension

There are other sample projects in the solution, and you can also run the test suite with the “run.cmd” batch file in the Nitra\Tests folder.

Why Open Source?

The plan has always been to release Nitra as Open Source. After all, it’s written in Nemerle, by the Nemerle team, and Nemerle is Open Source. However, we wanted to wait until we had a core platform that was ready to be opened up further. We feel that we have that now, so here we are.

And of course, we’re accepting contributions! If you’d like to get involved and help build the next generation of language tooling, take a look, raise issues, send pull requests.

Please let us know what you think!

Posted in New Products, News | Tagged , | 20 Comments

Live Webinar: Embracing AppCode 3.0, June 12th

Join us Thursday, June 12th, 11:00 AM – 12:00 PM CEST (9:00 AM – 10:00 AM GMT) for a free webinar, Embracing AppCode 3.0 with Rafał Legiędź.

AppCode Logo

AppCode is designed to ease the everyday routine for developers who are facing the challenges of Objective-C development as they build apps for Apple devices such as Macs, iPhones and iPads.

During this webinar we’ll be going through a simple app creation showing AppCode awesomeness by the way. Starting with all the “standard” magic like code assistance, code generation and refactoring features, through debugging and integrations and finally ending with test driven development and CocoaPods support. A demo will also highlight features that are available in new AppCode 3.0.

Space is limited, please register now.

About the Presenter:

Rafał LegiędźRafał Legiędź works as a principal software developer for ABB Poland. He believes that being pragmatic in our field is very helpful and proves that by switching technologies he uses whenever there is a need or an opportunity to learn new concepts. Started with .NET back-end solutions, he quickly became a web guy using technologies of few sorts and now he develops enterprise iOS and javascript apps

Keep up with the latest AppCode news on AppCode Blog and on Twitter @AppCode.

Posted in Events, Webinar | Tagged , , , , | Leave a comment

Webinar Recording: Developing Web Applications with WildFly 8

The recording of our May 21st webinar, Developing Web Applications with WildFly 8, is now available on JetBrainsTV YouTube channel.

In this webinar, Arun Gupta gives an overview of the features available in WildFly, RedHat’s open-source application server, and shows you how to use them for building modern web applications through several live demos.

WildFly 8 (née JBoss Application Server) is Red Hat’s open source Java EE 7 compliant application server. It contains robust implementations of WebSocket, Batch, JSON, Concurrency, JMS2, JAX-RS 2, CDI 1.1, and all Java EE 7 technologies. Undertow is the new cutting-edge web server in WildFly 8 and is designed for maximum throughput and scalability, including environments with over a million connections.

Below are questions from our webinar answered by Arun and Andrey.

Continue reading

Posted in Screencast, Webinar | Tagged , , , | Leave a comment

Live Webinar: Making YouTrack Follow Your Process, June 4th

Join us Wednesday, June 4th, 14:00 – 15:00 GMT (10:00 – 11:00 EDT) for a free webinar, Making YouTrack Follow Your Process with Dmitri Nesteruk.

YouTrack Logo

Every company and every business has its own operational rules, and this affects everything including issue tracking. The way issues are assigned, analyzed and triage is unique, which is why the flexibility of an issue tracker is essential in bringing value to each part of the organization.

In this webinar, we shall see the ways YouTrack allows the issue tracking process to be customized so as to follow a defined process. We shall discuss the ways in process automation is supported out of the box as well as the ways in which users can define their own custom process scenarios.

Space is limited, please register now.

About the Presenter:

Dmitri NesterukDmitri Nesteruk is a developer, speaker, podcaster and a technical evangelist for JetBrains. His interests lie in software development and integration practices in the areas of computation, quantitative finance and algorithmic trading. His technological interests include C#, F# and C++ programming as well high-performance computing using technologies such as CUDA. Dmitiri has been a C# MVP since 2009.

Keep up with the latest YouTrack news on YouTrack blog and on Twitter @YouTrack.

Posted in Webinar | Tagged , , , | Leave a comment

SensioLabs Partners with PhpStorm for the Bright Future of Symfony Community Tooling

Today we are pleased to announce SensioLabs as a PhpStorm global training and technology partner. SensioLabs developers use PhpStorm in-house while their coaches use it during training courses. Through our partnership, SensioLabs’ trainees can now take advantage of special PhpStorm pricing on new personal licenses.

New SL_blanc-1SensioLabs, an Open Source software and SaaS editor, is known for constantly pushing PHP language limits worldwide, especially following the creation of Symfony, the PHP framework for companies, and Twig, a templating engine. Following the recent closing of 5 M€ round A financing (Dec 2013), SensioLabs intends to increase company growth with more and more professional solutions.

In addition to the numerous service, training and support offers available, the company conceives e-solution products destined for web developers and businesses, the constant goals being improved quality, productivity, direction and deployment of its applications.

Beyond our newly announced training partnership, JetBrains PhpStorm team and SensioLabs have been working closely together over the last year as technology partners making sure that the most advanced and smart development tools are brought to the Symfony community. This cooperation has already produced exciting results, and we will be providing more updates in the coming months.

We are confident that we will be able to significantly improve the PhpStorm development experience with the Symfony framework and related technologies, and SensioLabs products & services.

Posted in Partners | Tagged , , , , | 1 Comment