Webinar Recording: dotMemory 4.0 – What’s Inside

The recording of our February 25th webinar with Maarten Balliauw, dotMemory 4: What’s Inside, is now available on JetBrains YouTube Channel and slides on slideshare.

In this webinar we explore the new dotMemory 4 memory profiler. We share our view on why one may want to use a memory profiler and show how easy it is to use dotMemory to find and solve memory issues.

Even if your program is just a few lines of code, .NET’s runtime will create a number of objects in memory. Are all objects being destroyed by the garbage collector? Or is there a potential memory leak? And why is the application seemingly slow when having lots of objects in memory? Find out in this webinar.

Below are select questions and answers from our webinar:

Has dotMemory 4 been released already?
No, not yet. We currently have an EAP version available for everyone to try. Do give us feedback if you’re using it! The final release will be there around the end of April.

Can dotMemory profile .NET 4.0 applications?
Yes it can! dotMemory allows memory profiling of applications written in .NET (all versions up to 4.5.1) and Silverlight, as well as Windows Store applications.

For more information on dotMemory, please see our blog post dotMemory 4.0 EAP: .NET Memory Profiler Resuscitation.

Maarten BalliauwMaarten Balliauw is a Technical Evangelist at JetBrains. His interests are all web: ASP.NET MVC, PHP and Windows Azure. He’s a Microsoft Most Valuable Professional (MVP) for Windows Azure and an ASPInsider. He has published many articles in both PHP and .NET literature such as MSDN magazine and PHP architect. Maarten is a frequent speaker at various national and international events such as MIX (Las Vegas), TechDays, DPC and others.

Keep up with dotMemory on JetBrains .NET Tools Blog and on Twitter @dotTrace.

Posted in Screencast, Webinar | Tagged , , , | 1 Comment

Live Webinar: Deployment with PhpStorm, March 12th

Join us Wednesday, March 12th, 15:00 – 16:00 GMT (11:00 AM – 12:00 PM EDT) for a free webinar, Deployment with PhpStorm with Maarten Balliauw.

Please note that in some locations such as the East Coast of the United States time will move forward one hour on March 9, 2014.

How easy is it to connect to remote hosts from PhpStorm and copy over files from our project to the server? Can I do that when committing code to VCS?

In this webinar, we’ll explore PhpStorm’s deployment options and answer these questions, and more. We’ll see how to do the basics as well as how we can map different folders in our project to different folders on the server, synchronize application code and more.

Is it a good idea to deploy to production right from within PhpStorm? Are there other options that are better suited?

We’ll explore the deployment cycle of our applications. We’ll make sure we can develop smoothly on a development server or a Vagrant box. We’ll see how to use PhpStorm’s built-in deployment tools, Phing, and perhaps a sprinkle of continuous integration.

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

Maarten BalliauwMaarten Balliauw is a Technical Evangelist at JetBrains. His interests are all web: ASP.NET MVC, PHP and Windows Azure. He’s a Microsoft Most Valuable Professional (MVP) for Windows Azure and an ASPInsider. He has published many articles in both PHP and .NET literature such as MSDN magazine and PHP architect. Maarten is a frequent speaker at various national and international events such as MIX (Las Vegas), TechDays, DPC and others.

Keep up with PhpStorm on their blog and on Twitter @PhpStorm.

Posted in Webinar | Tagged , , , , , | 1 Comment

Webinar Recording: Node.js Development Workflow in WebStorm

The recording of our February 20th webinar with Adron Hall, Node.js Development Workflow, is now available on JetBrains YouTube Channel.

In this webinar you will learn the basics of working with Node.js web projects in WebStorm. Adron shows how you can run / debug a Node.js app and test it with Mocha.

We would like to address here the most frequently asked questions and those we didn’t have a chance to answer during the webinar.

How to enable Node.js support in IntelliJ IDEA (PhpStorm, PyCharm and RubyMine)?
Make sure that Node.js plugin is installed (Settings | Plugins).

How to enable autocompletion for Express?
Express framework is implemented in a very dynamic way, making it difficult for WebStorm to provide accurate code completion for methods from Express module by just parsing the source code.

We recommend downloading the relevant TypeScript definition file: Settings | JavaScript | Libraries – Download – TypeScript Community Stubs – Express.

image00

How to enable autocompletion for Mocha?
The same applies for Mocha: go to Settings | JavaScript | Libraries – Download – TypeScript Community Stubs – Mocha.

Learn more in this screencast, WebStorm 7 – Integration of Mocha Test Framework.

Can I exclude the node_modules directory from the project index? What is the difference between Excluded option and adding a custom library in Settings | JavaScript | Libraries?

You can do that, but it’s not recommended. Better create a Node.js Dependencies JavaScript library instead.

Here is an explanation:

You can exclude any directory from the project by right-clicking it and selecting Exclude. In this case WebStorm will NOT index this folder, but as a result it won’t resolve methods from these libraries and won’t provide code completion. That’s why we don’t recommend doing it for node_modules folder.

Instead, create a Node.js Dependencies JavaScript library. Note that WebStorm will suggest doing that on the project start.

node_modules folder will be added to the list of JavaScript libraries used by WebStorm for code completion, syntax highlighting, navigation and documentation lookup. Code inspections will be disabled for these files, but they will still be in the project index.

image01

Note that if you try to exclude node_modules folder that is already marked as library home (or any other folder that is already added to JavaScript libraries), this folder will still be indexed.

Is it possible to debug a Node.js application that runs remotely? Is it possible to debug when your node and the rest of the dependencies (database, etc.) are running in a VM environment like Vagrant?

You should use a Node.js Remote Debug configuration to connect to the remote debug session. Please have a look at our recent tutorial on running and debugging Node.js applications. Note that you need to run your app in debug mode and configure external access to the debugger on your server (or VM).

Does the debugger support cluster mode?
Yes, just make sure you use Node.js v.0.11 or later.

How can I run only a single test (not the entire test directory)?
Unfortunately, right now WebStorm doesn’t support that. You can vote for this feature request in this YouTrack issue.

What if I have a large project with multiple test directories?
Right now you cannot select multiple test directories in Mocha configuration in WebStorm. You have to create a separate configuration for each test directory.

If you have more questions about Node.js and Mocha, please feel free to ask in comments.

Adron HallAdron Hall goes by the title, “Coder, Messenger, Recon.” He is passionate about coding and loves seeing technologies built and technologies come together. Having vast experience with many different languages, Adron now focuses on building JavaScript apps. He uses every chance to share the knowledge he has gained over the years in workshops, one-on-one mentoring, pair programming or directed training. Visit Compositecode.com to learn more.

Keep up with WebStorm on their blog and on Twitter @WebStormIDE

Posted in Screencast, Webinar | Tagged , , , , , , , | 7 Comments

Chatting with Nathan Adams and Erik Broes of Minecraft

Minecraft Story Header

It is our privilege to present to you this informal conversation between Nathan Adams and Erik Broes of Minecraft and John Lindquist of JetBrains. The interview covers a wide range of topics ranging from the informative to the entertaining. Enjoy.

Follow Nathan (@Dinnerbone), Erik (@_grum) and John (@johnlindquist) on Twitter.

How were you introduced to programming?

Nathan: I started when I was 10. I saw people making bots on MSN messenger at the time and thought, “Hey that’s awesome, I want to try that!” It was lots of fun, but perhaps Perl wasn’t a great introductory language!

Erik: Wha! That is a long time ago; you made me feel old! When I was around 10 I doodled a bit in BASIC (lots of typing what magazines said without understanding much of it). My first “real” language was Perl when I was 14 to admin/control QuakeWorld servers.

Have you always considered yourself a game developer?

Nathan: I didn’t really consider myself a game developer until I started to work on Minecraft. I’ve always been working on either modding games or reverse engineering games, but to now be developing them is a scary place! Much more rewarding though, and fun!

Erik: Same as Nathan basically, and still I’m not qualifying myself as a game-dev. I love ‘fixing broken things’ far too much. I’ve dabbled in the occasional hacking around in games, figuring out their data format etc.; but until the first Mojam (coding jam) at Mojang I’d never made a fully working game before.

What have been your favorite programming languages and tools you’ve used throughout your career?

Nathan: That’s a tough one, different tools (languages) for different jobs. I think these days I prefer to use Python for scripting or web work, Java for games, tools or client-side programs. As far as tools go, that’s even harder. I’m a simple man, so I’ll probably vote for IntelliJ IDEA, Sublime Text (for anything non-java) and Twitter (it’s a tool, I promise! Best place for feedback!).

Erik: I’ve been taught/learned to use Vim from very early on. Doing lots of work on servers or through ssh tunnels limits you some (also, ~18yrs ago, we didn’t have this fancy-pancy stuff). I still use Vim plugins right now (IdeaVim!). I used to claim Perl would be the right language for every situation I’d end up in, but since then I’ve converted to loving the sanity a strong-typed-non-evaluated language like Java gives you. I still use Perl for (too m)any one-offs hacky things but prefer Java+IntelliJ+IdeaVim for anything else.

Which platforms do you most enjoy working with? Hate working with? :)

Nathan: Hmm, interesting question. With Java and Python I usually don’t have to worry about platform, but if I need to start doing UI work I’ll go cry in a corner!

Erik: As development host OS I absolutely *hate* Windows with a passion. No proper shell, no sane ssh support, just makes me cry to be so ‘powerless.’ As I also do not want to spend a lot of time investing why on earth my kernel module seems to be turning itself inside out again, I ended up on the middle ground between Linux and Windows, OS X. I always say if you know something well enough you know what to hate it for, so far I seem to hate OS X the least.

What sort of tools do you use for testing? Do you follow any specific testing practices?

Nathan: Hehe, I’ll leave this to Erik. He’s the testing guru here. We tend to write new components test driven, but the majority of the actual gameplay is still untested sadly.

Erik: Ha, calling someone with <4yrs of Java experience a guru. First off, I don’t consider myself a guru. We’re not using many ‘tools’ beyond what IntelliJ IDEA provides, we just need to be able to run JUnit4. I don’t quite fancy frameworks that use reflection to get the codebase into a state so it is mockable (overwriting finals, testing privates etc.), so we’re just using Mockito. Eventually, I plan to somehow get this codebase up to 90%+ coverage (line based unit tested) and it might very well be the only game that does that if we get there :D .

What advice do you have for other developers working with massively popular code bases?

Nathan: Don’t be afraid to tear things apart, as long as you’re willing to spend three times as long putting it all back together again. If you have a community always wanting new things, they have to understand (and you do too) that sometimes you need to take a few weeks to just shave yaks and refactor code – it may not sound fun but in the end it lets you be more productive and work on cool things faster!

Erik: As Nathan said, we break all the things all the time. It would be significantly easier if our code was properly unit tested and we’re slowly getting there. Also, if you have a chance to open source your product, please do so, listen to the feedback people give to your code and learn from the constructive criticism.

Do you have a favorite programming book?

Nathan: I’m afraid that I don’t, I haven’t read any! *ducks from fire*

Erik: *fires at Nathan’s feet*; I’m sad that I actually don’t have it on my desk, but Effective Java by Joshua Bloch, I can advise to anyone coding Java. Also, do not skip out on Clean Code by “Uncle Bob.”

When are you most productive, day or night?

Nathan: Hehe, programming hours. I’m most productive when it comes to me, whenever that may be! Usually at night though, perhaps because I have fewer distractions then.

Erik: My best ideas are always at horrible times, like just jumping into the shower or right before you fall asleep. Best productivity is achieved while I’m not sleeping I guess :) .

Music or no music while you code? Favorite coding music?

Nathan: Ooh, that’s an easy one. Explosions in the Sky. It makes you feel like you’re in a cheesy hacker movie, one more line of code away from saving the world.

Erik: Even though I don’t listen to music a lot, I love the artist Nathan pointed out. If I listen to music I cannot listen to anything with lyrics, it just messes coding up for me badly. So when I decide to listen to music to tune out other sounds it would be some form of Trance or even Classical.

What’s the most difficult bug you’ve had to fix?

Nathan: I’d say lighting bugs… Sometimes when playing Minecraft you’ll come across random patches of darkness, where the world hasn’t been lit. We haven’t fixed them yet. Well, that’s not true, I’ve fixed them multiple times in multiple different ways but it’s always killed performance in some way or another so we’ve just had to keep treating the symptoms instead of the bug. I’ve probably wasted solid months on this by now.

Erik: ^^^ THAT! I hate this lighting bug. The problem is that we ‘know’ how to fix it but the result ends up being too slow. We’ll eventually get around it again once we abstract it out of the current tangle it is in.

Do you use a lot of “in-house” built tools?

Nathan: Not so much these days, but a few. The one I’m most proud of is Hopper, a crash report collector. Whenever anybody crashes in Minecraft (provided they have this turned on), it’ll automatically post it to http://hopper.minecraft.net, which will group it with similar crashes by uniqueness on the “unknown” part of the stacktrace, whilst the game filled in a bunch of relevant data at each part of the crash. We can also mark certain bugs (like not having a graphics card… it happens more than you think) as known so we can immediately give user feedback as soon as they experience the crash. The best part about the system? It deobfuscates reports for us!

Erik: We try to stay with open source tools as much as we can but we need to fetch/prepare data from/to other sources for our release process. Think of ‘sets’ of assets for Amazon, downloading translations from Crowdin and prepping them for upload. So our custom tool chain is relatively small right now. We do have plans to dabble in UI authoring and perhaps some model-exporters for our upcoming changes in those areas. Also, I totally wrote that deobfuscator for the stacktraces in Python (first time I touched that)!

Any advice for aspiring game developers?

Nathan: Make games for yourself, not for others! That’s the most common mistake I see people making. If it’s not fun for you, you’re not going to make something fun for others. Don’t be afraid that you’ll mess up or it won’t work; it *will* mess up and it may not work but that’s a learning experience by itself. Besides, half of the games out there are built on unintended features!

Erik: Two things, code, code until your brains fall out, and make all the mistakes you need to make. Only by making mistakes will you learn/improve/discover new things. Try once in a while to figure out if you are getting the most from your IDE or if you can perhaps use it better (This is how I found IntelliJ). And as I’ve said before, get other people in on your project and learn from them.

Any feature requests for IntelliJ IDEA or other JetBrains tools?

Nathan: Oh man, my mind went blank. We’ve always said to ourselves “IntelliJ needs this…” but now I can’t remember any. I guess hotkeys for certain run configurations would be nice! Or better multi-cursor support, Sublime has really spoilt me there and sometimes I need to switch back to it to more quickly edit things up, but I can only imagine how much of a headache that’d be to make.

Erik: Yeah while running tests having a button that not-depending-on-context runs all the tests in that file, would be useful. For structural replacements, being able to have a variable to match operators would be *SO* useful. For example:

$SomethingThatExtendsFacing$.getId() $EqualsOrNotEqualsTo$ 3
with
$SomethingThatExtendsFacing$ $EqualsOrNotEqualsTo$ Facing.SOUTH

or turning: “new Pos(x + 1, y – 1, z + 1)” into “new Pos(x, y, z).offset(1, -1, 1)”, right now you have to make all the variants of positive/negative and manually ‘map them’. And if we’re going this way; being able to handle: “x + 1 – 1” ‘natively’ instead of having to manually rewrite it to: “x + (1 – 1)” to see it as an addition, would be wonderful too.

Thank you Nathan and Erik for your time and joining us for this interview. In regards to their improvement ideas for IntelliJ IDEA stay tuned for more information.


This is the tweet that set into motion the whole conversation. If you have ideas for future interviews and articles, please share your thoughts in our comments section.

Minecraft and the Minecraft logo are registered trademarks of Mojang / Notch © 2009-2014.

Posted in Interviews | Tagged , , , , | 4 Comments

Attention, Startups: Get JetBrains Tools at 50% OFF!

Starting a software business? Looking for professional tools to keep it going? We have a special offer for you. Sign up for JetBrains Startup Discount Plan and get a 50% discount on all of our products.

JetBrains Startup Discount Plan

Today JetBrains is a company with 400+ people working in 8 offices worldwide. We remember our beginnings back in 2000 as a small startup with a great idea and filled with passion (not that we’ve lost it since!). We still remember what it’s like to be young and ambitious, which is why we have decided to support like-minded startups that are ready to take on the world.

If you are a small team with fewer than 10 people, working on a software product and your company hasn’t yet celebrated its 3rd birthday, you can apply for the JetBrains Startup Discount. The 50% discount is valid for any JetBrains product, including the ever-popular IntelliJ IDEA and ReSharper.

For example; if you’re a five-developer team engaged in Ruby & Rails development, you can get:

  • 5 IDE (RubyMine) licenses for all your developers at $199 * 5 / 2 = $497.50;
  • TeamCity Professional Edition continuous integration and build management system for free;
  • YouTrack issue tracking and agile project management system for 10 users for free as well.

Sound interesting?

Get off on the right foot with JetBrains Startup Discount Plan today.

Posted in News, Partners | Tagged , | 9 Comments

[Webinar Recording and Q&A] ReSharper Secrets

The recording of our February 13th webinar with Igal Tabachnik, ReSharper Secrets, is now available on JetBrains YouTube Channel.

In this session you will learn about ReSharper hidden gems, powerful annotations and 3rd party plugins to help you become a true ReSharper ninja!

Watch as Igal takes you behind the scenes of ReSharper and shows you how to use this knowledge in your own code, to get even more out of ReSharper. The intended audience is intermediate-to-advanced ReSharper users.

We received a lot of questions during the webinar and we’d like to use this opportunity to include the most frequently questions, as well as those we didn’t have a chance to answer during the webinar.

Q&A on Igal’s Visual Studio setup and ReSharper plugins that he uses

Q: Where does that “number of references” annotation in Igal’s Visual Studio come from?
A: It is called CodeLens. This feature is a part of Visual Studio 2013 Ultimate but is not included in any of Visual Studio’s lower-end editions. Addressing a related question, no, we’re not planning to replicate the functionality of CodeLens in ReSharper.

Q: What ReSharper plugins does Igal use?
A: He uses a whopping 14 of them! Here’s the full list:

  1. Agent Mulder
  2. Enhanced Tooltip
  3. JetBox
  4. Nancy Plugin for ReSharper
  5. Preview Tab Behaviour
  6. Go to Word
  7. InternalsVisibleTo Helper for ReSharper
  8. NuGet support for ReSharper (bundled plugin)
  9. Postfix Templates
  10. ReSpeller Pro
  11. Live Template descriptions
  12. xUnit.net unit test provider
  13. Joar Øyen’s extensions for ReSharper
  14. Locate File or Folder in Solution Explorer

If you’re using ReSharper 8.0 or above, go to ReSharper | Extension Manager to install any of these plugins.

Q: What was the tool that changed .var into a variable assignment?
A: This cool plugin is called Postfix Templates. If you want to have it installed, go to ReSharper | Extension Manager | Online and search for postfix. If you’re ready to contribute, here’s the plugin’s github repo.

Q&A on code annotations

Q: Does using ReSharper’s code annotations have any performance impact?
A: No. They are just attributes, thus they do not affect your compiled assembly’s performance. As for ReSharper performance, the attributes are cached and the analysis is run even without attributes, so there is no performance difference there.

Q: What do I need to do exactly for importing the annotations?
A: There are two options. First, you can paste the source code of JetBrains annotations into your project. To do that, go to ReSharper | Options | Code Annotations | Copy default implementation to clipboard. Paste that into a new file, and you’re done. The second option is to reference a library called JetBrains.Annotations.dll that you can take from ReSharper’s installation folder.

Q: Can I have a single annotations file in the entire solution, or is Annotations.cs created for every assembly/project you create?
A: You are free to put Annotations.cs in a shared assembly, as long as it’s referenced.

Q: Do I need to ship the library containing annotations with my code?
A: If you add annotations by referencing JetBrains.Annotations.dll, then yes, you’ll need to ship the dll with your application. If you add them as a source file, they are compiled in your assembly, and there are no extra references to ship.

Q: What if a project uses ReSharper annotations, but another developer does not have ReSharper installed? Do these annotations work for them?
A: No, the warnings and analysis are provided by ReSharper. The annotations essentially provide hints for ReSharper’s analysis. If you don’t have ReSharper installed, they are just attributes that no one uses.

Q: Can I make ReSharper treat everything as [NotNull] by default so that and I can use [AllowNull] instead?
A: You can change ReSharper’s default assumption by going to ReSharper | Options | Code Inspection | Settings and change the value of Assume entity value can be null. The default value is optimistic (assumed to be not null) but you can change it to pessimistic (assumed to be null).

Q: Regards [Pure] can ReSharper not simply look at the method return type as not being void instead?
A: No, because e.g. string.ToUpper() is a pure method. It returns a new string without changing any of the fields of the current string instance. Calling it without assigning to a variable is pointless. If we add [Pure], ReSharper will warn you that the return value is unused.

For more information on using code annotations, see ReSharper online help and two prior blog posts: ReSharper NullReferenceException Analysis and Its Contracts and Contract Annotations in ReSharper 7.

Join us Tuesday, February 25th for our next webinar, dotMemory 4: What’s Inside with Maarten Balliauw.

Igal TabachnikIgal Tabachnik is a software developer from Israel, who values clean code, test-driven development and continuous refactoring to reduce complexity, reduce bugs and achieve better design. He frequently speaks at local ALT.NET and Software Craftsmanship user groups. Igal is also the author of the Agent Mulder plugin for ReSharper, a plugin that helps ReSharper understand DI containers, providing navigation to and finding usages of types registered or resolved by those containers.

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

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

Meet Systematic, a JetBrains Customer

Systematic is an IT Solutions provider with its global headquarters located in Denmark. Requiring a reliable tools chain to support their mission critical software, Systematic turns to JetBrains software development tools.

Learn how Systematic is using ReSharper, IntelliJ IDEA and TeamCity.

Want to tell the world your JetBrains story? Please leave us a comment below or send us an email and we will get in touch shortly.

Posted in Behind-the-scenes, News, Partners, Video | Tagged , , , , | Leave a comment

[Webinar Recording] Python for the C# Developer

PyCharm logoThe recording of our February 6th webinar, Python for the C# Developer, is now available on JetBrains YouTube Channel. Michael Kennedy’s presentation and the code used in the recording can be found here on GitHub.

Learn about some of the loved things from C# that can accomplished in Python and how it is done: Lambda expressions, foreach loops, rich class library, iterators and more.

If you use C# and .NET, you may be surprised to find out how many of the features that you love also exist in Python (often first). Python is a wonderful language. It is a clean, high-level language which values readability over many trade-offs.

You can build web applications serving billions of monthly page views. You can build cross-platform GUI applications such as DropBox. You can access amazingly powerful database servers such as MongoDB and SQL Server.

For more information about Michael, please visit http://blog.michaelckennedy.net  and follow him on Twitter @mkennedy.

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

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

[Live Webinar] dotMemory 4: What’s Inside, February 25th

dotMemory LogoJoin us Tuesday, February 25th, 15:00 – 16:00 GMT (9:00 – 10:00 AM EST) for our free webinar, dotMemory 4: What’s Inside with Maarten Balliauw.

Even if your program is just a few lines of code, .NET’s runtime will create a number of objects in memory. Are all objects being destroyed by the garbage collector? Or is there a potential memory leak? And why is the application seemingly slow when having lots of objects in memory?

In this webinar, we’ll explore the new dotMemory 4 memory profiler. We’ll see why we want to use a memory profiler and how easy it is to use dotMemory for that. There will be an opportunity to ask questions during this webinar.

Space is limited, please register now.

Maarten BalliauwMaarten Balliauw is a Technical Evangelist at JetBrains. His interests are all web: ASP.NET MVC, PHP and Windows Azure. He’s a Microsoft Most Valuable Professional (MVP) for Windows Azure and an ASPInsider. He has published many articles in both PHP and .NET literature such as MSDN magazine and PHP architect. Maarten is a frequent speaker at various national and international events such as MIX (Las Vegas), TechDays, DPC and others.
Posted in Webinar | Tagged , , | Leave a comment

Meet PhpStorm Team at PHP UK & ConFoo Conferences in February

The PhpStorm Team is gearing up for conferences in February visiting PHP UK (February 21-22, London, United Kingdom) and ConFoo (February 24-28, Montréal, Canada).

At our booth, the team will be happy to show you PhpStorm demos, answer any questions you have in mind, share information about future releases, and of course have fun!

Be sure to register for our free license raffle and grab one of our awesome yoyos and other gifts. Even if you don’t win a free license, we’ll send you a 20% discount for a new PhpStorm Personal License.

PHP UK Conference, February 21-22, London, United Kingdom

PHP London has announced the 9th Annual PHP UK conference; a 2-day event with 3 great tracks held at at The Brewery, in the heart of the City of London.

With over 700 delegates, speakers, and sponsors, PHP UK conference delivers fantastic up to date content about PHP and related web technologies in a comfortable and professional setting. There are many networking opportunities to engage with the speakers and delegates, which makes the event one you won’t want to miss.

JetBrains Team: Alexey Gopachenko (Project Lead), Elena Shaverdova (Developer).

ConFoo Conference, February 24-28, Montréal, Canada

ConFoo is one of the largest conferences for Web development and is organized by members of Montréal’s community.

From February 24th to February 28th, international experts in PHP, Java, .Net, Python and Ruby will present solutions for developers and project managers at the prestigious Hilton Bonaventure Hotel, located in downtown Montréal.

JetBrains Team: Mikhail Vink (Product Marketing Manager), John Lindquist (Technical Evangelist), Karolyn Donovan (US Sales).

See you soon!

Keep up with the latest PhpStorm news on their blog and Twitter @phpstorm.

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