[Live Webinar] TeamCity: Getting Started with Wes McClure

Join us Monday, April 7th for our free webinar, Getting Started with TeamCity. The live event begins at 13:00 EDT (18:00 GMT) and will be led by Wesley McClure, a TeamCity expert out of Seattle, Washington.

Do you have a blossoming cross-functional team but find yourself bogged down with manual, undocumented procedures to integrate and deliver value to users? Come find out how you can leverage TeamCity to continuously build, validate, package, and deliver value.

In this session, we would like to offer assistance to those of you who are currently evaluating TeamCity or are just getting started. During registration we will collect your feedback on initial struggles you may be facing and how we can make things better. We would like to hear what you hope to get out of the session so we can gear the demonstration and conversations in that direction.

Space is limited, please register now.

About the Presenter:
Wes McClureWes McClure is passionate about helping others achieve remarkable results with technology. Wes launched Full City Tech Co to leverage his expertise to help companies rapidly deliver high quality software to delight customers. Quality is achieved through collaborative practices like Continuous Integration. Wes has a strong background in using Continuous Integration with TeamCity to bring quality to the table. You can reach him by email.

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

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

[Webinar Recording] Deployment with PhpStorm

The recording of our March 12th webinar featuring Maarten Balliauw and Mikhail Vink, Deployment with PhpStorm, is now available on JetBrains YouTube Channel.

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

In this webinar, we explore PhpStorm’s deployment options and answer these questions, and more. We 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 explore the deployment cycle of our applications, and make sure we can develop smoothly on a development server or a Vagrant box. We also see how to use PhpStorm’s built-in deployment tools, Phing, and a sprinkle of continuous integration.

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 the latest PhpStorm news on PhpStorm Blog and on Twitter @PhpStorm.

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

JetBrains Sponsors Global Windows Azure Bootcamp

bootcampThe Global Windows Azure Bootcamp 2014, GWAB for short, is a free one-day training event organized by and for members of the community. The event takes place March 29th in more than 130 venues worldwide.

JetBrains is proud to sponsor this independent event with a free license to be raffled at every location!

We had a chat with the five people driving this massive effort: Magnus Mårtensson, Alan Smith, Michael Wood, Mike Martin and our evangelist Maarten Balliauw.

Can you tell us a bit more about the event?

Maarten BalliauwMaarten: The event is organized by local Windows Azure community enthusiasts and experts. It consists of a full day of sessions and hands-on exercises to get people up to speed with Windows Azure, whether that’s in .NET, Java, node or PHP.

Magnus: This is a new kind of event the likes of which I have never seen. And we fell into doing it almost by accident. We never thought we would get over ten locations for this event. Now we have 137 locations! Mind-blowing is the word.

What will people learn at the event? Is there a fixed agenda for every location?

Alan SmithAlan: There is a suggested agenda for the day based on the Windows Azure Training Kit, but event organizers have a lot of freedom over how they run the day. They can deliver sessions, or just let the attendees work hands-on.

Magnus: Hopefully, they will learn about community power and that it is really FUN to do stuff together. And of course they will learn to love the raw power that is the use of a Cloud Platform for development. In this case of course the Windows Azure Platform.

Mike M.: That’s the beauty of it: it’s global but the local touch makes it unique :-) Every organizer can have his/her own say. The only thing we “require” is that they try to add up to the global charity lab.

How are sponsors like JetBrains helping the event?

Michael WoodMike W.: The local and global sponsors have been really generous this year. Some locations simply wouldn’t have a location to meet at without the help of sponsors. The global sponsors have all been very flexible as more and more events signed up, providing additional licences and services to give away.

Alan: We could not do this event without the sponsors. So many companies are providing locations, food, and logistics, and to have so many companies supplying licences for development and Windows Azure related products, means attendees can get to work on real-world Windows Azure projects the Monday after the event.

You’ve reached the halfway point of our article. Why not take a break and watch the “official” trailer for #GWAB 2014?

Where did the idea for this event come from?

Mike MartinMike M.: Last year I got involved pretty late, just by offering a hand with the flood of emails -) This year the original guys asked me if I wanted to help out again, hence having 5 global admins managing a lot of international communications and overall organization. How a crazy late night idea can have such consequences!

Alan: It started over a beer in a pub in Stockholm. Magnus and I pretty much had the same ideas of doing some kind of code camp in a few different cities. By the end of the evening we had this crazy idea of getting communities from around the world to join in and make the event truly global. Once we got others involved the concept really built up momentum, there is so much energy and passion in the development community, and its fantastic to see what can happen when we all focus it in one direction.

Mike W.: I had been helping give Windows Azure Bootcamp events in the U.S. when they were started by Brian Prince from Microsoft several years ago. Those events were one or two-day events scattered around the calendar and country. Then I got an email from Magnus, Alan and Maarten saying, “Hey, do you think some places in the U.S. would be interested in having a Bootcamp on the same day as a few other events here in Europe?”

How did diabetes research become part of the bootcamp?

Maarten: Last year, we had the idea to have a little competition between all locations. Everyone could join in a lab where they had to render as many 3D images as possible on their cloud environment. Turned out that we wasted close to 9,000 servers (4,000 concurrent) and 8 years worth of compute time on this fun yet useless cause. This year we wanted to put this to good use! We have been looking for some charities to provide us with numbers to crunch and we have been in touch with an open-source space program that had a big number of calculations to do. In the end we decided the GlyQ-IQ lab for diabetes research would be a good fit.

Mike M: Even just by having fun last year we realized we were spilling resources. Why not do something for the greater good, we thought? Reaching out to charity wasn’t easy, but in the end we managed to get a good charity that needed the attention/number crunching we could offer. And that leaves us with a warm and good feeling.

Mike W.: Alan’s lab last year was top notch and it was fun watching the videos get rendered and people on Twitter bragging about how their country location was doing. Once we saw just how much processing was completed in 26 hours, we knew there was a better way to use it than to produce 3D images. Working with PNNL and Microsoft Research has been really great in order to bring this great research to the event.

One event with so many locations at the same time… Is there a magic recipe for getting 130 locations on the map?

Magnus MartenssonMagnus: I think it’s about honest passion! We love what we do and we simply can’t help sharing it and talking about it. That kind of enthusiasm is contagious. People tend to want to be around folks who have fun, know no bounds and do outrageous things! That’s GWAB and Windows Azure: Outrageous FUN!

Mike W.: The recipe isn’t magic, it’s simply finding the people who are passionate about sharing Windows Azure with others. The true core of the event are the local organizers and the amount of work they put into the event.

Windows Azure Global Bootcamp Locations

If you are interested in joining this free one-day event on March 29th, check out the Global Windows Azure Bootcamp website and find a location near you. Who knows, you may win a JetBrains license there as well! Good luck gentlemen! If you want to keep track of what is happening, follow the #GWAB hashtag on Twitter.

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

Live Webinar: Use AppCode to Develop for the Pebble Smartwatch, March 31st

Join us Monday, March 31st, 14:00 – 15:00 GMT (10:00 AM – 11:00 AM EDT) for our free webinar, Use AppCode to Develop for the Pebble Smartwatch, with Heiko Behrens.

While many have heard of AppCode’s great feature set with respect to iOS, it’s often forgotten how versatile this IDE actually is. Not only does it provide great refactorings and navigation tooling for Objective-C and CocoaPods, but works equally well for plain C, comes with powerful features for JavaScript, and even supports your existing workflow (e.g. Git and shell scripts). During this webinar Heiko will demo all of the above.

AppCode Logo

The Pebble Smartwatch is one of the few available smart wearables with a broad user base. It provides an SDK and already integrates with products such as Runkeeper, Yelp, Foursquare, Pandora and the Mercedes Drive Kit. Heiko will show you how AppCode can help you to integrate your service with this exciting gadget.

  1. We will start with a simple iOS application in Objective-C that uses the Pebble Smartwatch as always-accessible I/O for your service right on your wrist.
  2. We will implement a stand-alone watch app based on the Pebble C-SDK and make it communicate with your iPhone via Bluetooth.
  3. We’ll take advantage of Pebble’s JavaScript Kit that augments our previous watch app with logic that conveniently runs on both iOS and Android to perform tasks one would not try on a small embedded device that offers no more than 24K of RAM to you.

Space is limited, please register now.

About the Presenter:

Heiko BehrensHeiko Behrens is a programmer, author, and public speaker with more than a decade of commercial software development, technical writing, and on-stage presentation experience. While mostly working on mobile projects nowadays, he has in-depth experience in a broad range of technologies, contributes to various open-source projects and sharpens his skills on related topics such as podcasting and hardware. Follow Heiko on Twitter @HBehrens.

For the latest AppCode news, please visit their blog and follow @AppCode on Twitter.

Posted in Events, Webinar | Tagged , , , , , , , , | 11 Comments

Live Webinar: Functional Programming with Java 8, March 26th

Join us Wednesday, March 26th, 11:00 AM – 12:00 PM GMT (7:00 AM – 8:00 AM EDT) for our webinar, Functional Programming with Java 8, featuring Dr. Venkat Subramaniam.

With the release of Java 8, the biggest change is going to be in the programmers mind. In addition to the new syntax for lambda expressions and method references, a significant paradigm shift awaits us.

In this presentation, we will discuss how Java 8 now facilitates a functional style of programming and why we should care about it. Using multiple examples, during this live coding session, we will explore the strengths and benefits of the new Java 8 language features.

Space is limited, please register now.

About the Presenter:

Dr. Venkat SubramaniamDr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., and an instructional professor at the University of Houston. He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly-invited speaker at several international conferences. Venkat helps his clients effectively apply and succeed with agile practices on their software projects.

Venkat is a (co)author of multiple books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer. His latest book is Functional Programming in Java: Harnessing the Power of Java 8 Lambda Expressions. You can reach him by email at venkats@agiledeveloper.com or on Twitter at @venkat_s.

For everything Java, visit IntelliJ IDEA Blog and follow @IntelliJIDEA on Twitter.

Posted in Events, Webinar | Tagged , , , , , | 8 Comments

Edument AB: A JetBrains Training and Consulting Partner

Edument AB is a JetBrains Training and Consulting Partner based in Malmö, Sweden. Their focus is on .NET, Java, Android, Perl and web development offering in-house services, high-profile specialist consulting, and mentoring and training of developers.

Through our partnership, Edument is able to help you through the entire process of acquiring and using JetBrains products, from consulting and sales through to implementation and training, at both beginner and advanced levels.


Edument Training coupled with JetBrains tools can make a difference in your organization. From a small group to a large team, the training will be adapted to your needs. Have a look at this course: Productive Development with ReSharper.

Edument Consulting ensures the successful implementation of JetBrains tools giving a better workflow from start to finish. They help you get started with our products, from managing the whole implementation on-site to providing guidance and technical competence.

For more information, please visit www.edument.se or write to info@edument.se.

Posted in News, Partners | Tagged , , , | Leave a comment

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.


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.


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
$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