IronShay

Ironing code, geek t-shirts and even presentations!

NAVIGATION - SEARCH

Wrapping up my trip to Japan – TechEd and RubyKaigi

A few days ago I got back from Japan, where I gave 2 talks – one at TechEd Japan and one at RubyKaigi. Honestly, it was a breathtaking experience for me.

First of all, Japan… it’s so different! someone even called it “an alternate universe”. Japanese people are so kind and so well-behaved. And everything is clean. Sooooo freaking clean!!!! I must recommend you to visit Japan if you haven’t don’t it already. It is an experience you wouldn’t want to miss.

Secondly, I had a unique opportunity to speak both at a Microsoft and a Ruby conferences at the same week and see the different audience. They’re all developers and yet they are so different! Microsofties are the responsible grown ups and Rubyists are the rebellious teenagers. It was amazing to see the differences. Anyway, I had a blast in both conferences and met some outstanding people!

Before I move to the content of my talks, I’d like to personally thank Shozo Arai for having me at TechEd and helping me with my RubyKaigi talk and to thank Ayumu Aizawa for having me at RubyKaigi. You people rock!

And to the content of my talks (I’ll add them to the presentations page soon too)… The first one was TechEd:

TechEd Japan 2010

The conference took place at the Yokohama Conference Center and I gotta say – Yokohama is a beautiful place. For instance, this was the view from my hotel room:

Yokohoma from my hotel room

During the conference I also played Microsoft Kinect for the first time, which was AWESOME. I want one. If you wanna buy me one, please do.
In addition, I participated in a special MVPs launch (Japan has 200 MVPs!) where I was introduced to everyone. It was very cool and I got to meet some exciting people there.

Anyway… I also had a session there named “Let’s Dynamic – IronRuby and the .NET Framework” (that’s my translation to the Japanese name :-) ). It was the first time for me to have a translator. I had to stop every 1-2 sentences and let him translate. It was quite an experience! but I had fun and the audience seemed interested too :-)

These are the slides:

If you’re interested in one of the demos, please let me know and I’ll upload them. I’m just too lazy to do that now :-) I know the session was recorded on video too. I guess you’ll be able to view it on the conference site - http://www.microsoft.com/japan/teched/2010/.

From TechEd I moved to RubyKaigi, which took place at Tsukuba (2 hour train drive away from Yokohama):

RubyKaigi 2010 It was the first Ruby conference for me so I had to understand what was going on first. They had these cool whiteboards where you could write various things. For example, your favorite method and favorite programming language (C# made it to the list!). Click on the picture to view in a bigger size:

RubyKaigi Favorites WhiteboardThey also had a huge map of the world and everyone wrote where they came from. I was the only one from Israel:

RubyKaigi map of the world During the party of the first night I also got to meet some famous people (famous at least for Ruby developers!) like Matz (the creator of the Ruby language) and Chad Fowler (author of “The Passionate Programmer” and one of the organizers of RubyConf) as well as other awesome people.

Anyway, I had a session here too! Its name was “IronRuby – What’s in it for Rubyists?” and its goal was to show Rubyists how they can take advantage of IronRuby and different .NET frameworks like WPF, Silverlight and others.

These are the slides:

Again, If you’re interested in one of the demos, please let me know and I’ll upload them.
The session was recorded as well and can be found at http://rubykaigi.tdiary.net.

In conclusion, I had a blast!!! Japan is an incredible country and the conferences were outstanding! Hopefully I’ll get to visit there again in the future.

Arigato!
Shay.



My MSDN Magazine article is out – IronRuby on Windows Phone 7

The new MSDN Magazine issue, the one of September 2010, features my article about taking advantage of IronRuby on Windows Phone 7:
”IronRuby expert Shay Friedman goes mobile and shows you how to build a Windows Phone 7 app with Microsoft’s implementation of the popular Ruby dynamic language.”.

You can read it on the printed version or online - http://msdn.microsoft.com/en-us/magazine/ff960707.aspx.

Enjoy!
Shay.



The Winds of Change

Well, I left Sela (Thursday was my last day), my company for the last 7.5 months and I’m moving on to co-found CodeValue.

Even though my time at Sela wasn’t that long, I learned so much and met so many incredibly smart people. It’s been a wonderful experience and I’d like to thank the people who made it such: Caro Segal, Dudu Bassa, Ishai Ram, Roy Nachmani, Elad Hanania, Avi Balaish, Gil Fink, Dovi Perla, Alex Golesh, Ido Flatow and many others! thank you all, it was great working with you!

So what now?

Well, now I’m moving on to be a part of CodeValue.
The amount of talent in the company is unbelievable and it would be a shame to keep these skills to ourselves. Therefore, our main goal at the new company is to create products for you, the developers. Products that will help you solve common problems efficiently, write better code and enable you to focus on the important things.

I can’t tell you exactly what the products are at the moment but I can tell you this – the first product will be related to cloud computing and I assure you that once you know what it is, it will blow your mind away.

If you want to stay tuned to announcements regarding CodeValue, you can subscribe to our company blog, follow us on twitter or friend us on Facebook. Everything is in pretty early stages, so expect more content soon.

By the way, I also continue to consult, train and speak at conferences. I like doing that so I’m not going to stop anytime soon :)

“The future's in the air
I can feel it everywhere
Blowing with the wind of change”
- The Winds of Change by Scorpions

All the best,
Shay.



Keep your Chin Up Child and Wipe the Tears from your Eyes

Last week was hysterical. It started with a flight to Nashville and a 3-day conference, Devlink, with 2 IronRuby sessions on the last day I had to do. On the second day of the conference I had a nice talk with Michael Moores, who turned out to be working with Micahel Letterle who is the first IronRuby MVP. That was the closest I’ve ever got to another IronRuby MVP :)

Anyway, the thing is that in the end of the second day just before I started the last dry-runs for my talks, I saw Jimmy Schementi’s blog post, “Start spreading the news”: the future of Jimmy and IronRuby, where he was announcing the he was leaving Microsoft, mainly because his boss had asked him “what else would you want to work on other than Ruby”. That leaved IronRuby with one developer (Tomas) and one partial-time tester that helps in other stuff too (Jim). They are both very talented, but still – 1.5 (or even less) people who work on a product kind of gives you the idea of where this is going to. IronPython is not in a better position either by the way.

The news hit me, I gotta say, by total surprise. I didn’t see it coming (at least not so soon) and my first reaction, like most reactions on the Twitter-sphere, was an “oh no, the evil monster has done it again” reaction. It’s a very natural psychological reaction to disappointment:

“The psychological results of disappointment vary greatly among individuals; while some recover quickly, others mire in frustration or blame or become depressed.”
-- "Disappointment", Wikipedia

And indeed, I was frustrated (not depressed, though; technology isn’t worth to be depressed over it) by the fact that something I believed in, with all my heart, was starting to die. And I didn’t believe in it because I thought it was cool (even though it is cool), but because I thought it added value. And that’s what it’s all about right there.

Getting back to the timeline, on the next day I had 2 sessions about IronRuby and I decided not to let the news affect them. However, I did do a little small talk with the audience before every session about it. The reactions varied from “I couldn’t care less” reactions to “I don’t know” to frustration. And watching other people being frustrated by that was a huge push for me to keep doing what I do. Moreover, the news spread so fast that as I was walking that day in the halls of Lipscomb University, I could hear people talking about the subject. I think I overheard about 5 different conversations about IronRuby that day.

Add to that the tons of reactions on Twitter, the conversation on the IronRuby mailing list and the various emails I’ve received since then (of people saying they were planning to use IronRuby and what do they do now) and you get one meaning - people care.

And solely because of that, I believe that IronRuby has a future. With or without Microsoft. Honestly, I’d hate to see it being released from Microsoft since this was a wonderful way to get it inside medium-large corporations that still require the Microsoft “stamp”. However, I won’t place my bet on that to continue.

To tell you the truth, I’ll understand Microsoft if they decide to stop funding the project. Think about it, Microsoft’s first and foremost goal is to make money. Just like your or my company. And they’re currently making money from various things:

  • Licenses for Windows, Office, Visual Studio, SQL Server and other products.
  • Professional support.
  • Hardware.
  • Training.
  • Certification exams.
  • Other stuff I don’t know about.

The biggest part of Microsoft’s revenues comes from selling licenses. As .NET developers, we are a part of Microsoft’s revenues system – we use Windows, we code in Visual Studio, we use Windows servers because that’s what we know and when we need a DB we directly go with SQL Server because it integrates perfectly with Visual Studio and other Microsoft products we have. By that I answer reactions I’ve seen like “if this is how Microsoft treats its open-source projects, we can’t trust it to continue with ASP.NET MVC too” – ASP.NET MVC will not die. Ever. Just because it follows all the preconditions. However, IronRuby does not – you do not use Visual Studio, you don’t have to use Windows, SQL Server is not so widely used with Ruby frameworks. And it gets even worst – you might be tempted to open the door and leave; to join your Ruby friends on the other side, the ones who write code in Mac and deploy their apps to, God helps us all, *nix machines.

In other words, CRAZY. The guy who approved that must have been drunk or something.

BUT, there was some rationality in the decision of writing a Ruby implementation on top of the .NET framework too – to give options, to make the framework better. In other words, to add value. And you know what, it might have had the power to even, God forbid, make these lunatic Ruby guys to show some interest in the .NET framework.

And you know what happens when money and making the product better are on the same scale? they burn the scale and the “making the product better” side up and run away with the money. That’s not Microsoft, that’s life.

So what does the future hold for us, IronRubyists? Well, I’ve got no idea. The current situation is kinda hazy – not here and not there. On the one hand, Microsoft is still controlling the code contributions, web site, github account and other related resources. On the other hand, they cut in human resources for the project.
My prediction is that Microsoft will give up IronRuby (and IronPython) in the next few months. As I said, if I was a director in Microsoft – I wouldn’t be able to justify its existence (but I would have so much more money too so I can’t really tell what I would have done :) ). And ones this happens, it will create a huge opportunity for the IronRuby community.

Since IronRuby is open source, the community will be able to take control and continue developing IronRuby. This will allow us to advance faster (hopefully) and more importantly, work on the features we want instead of the features we’re told we want. From the stuff I’ve been hearing and reading, the community of IronRuby is bigger than I though and people are willing to help. Along with the help of well-known icons like Rob Conery, Jimmy Schementi and others we can get to large audience and get even more people on board.

However, in order for this to happen I think that a few things should happen:

  • Microsoft must declare that the IronRuby project is not funded anymore and by that, it ceases to exist internally inside Microsoft.
  • Microsoft must pass the control over the entire code base, web site, github account, codeplex page, copyrights and all other related things to the community.
  • A single guy (or gal!) or a tiny team should become responsible for IronRuby. More people can be responsible for parts of the project but one or a very small amount of people should be responsible for all of it.
  • A roadmap should be written to allow people to start working.
  • Finding a contact point inside Microsoft is important too, IMHO. Someone who can help with DLR issues (the DLR is still being developed inside Microsoft) or other issues we might run into.

In conclusion, if you’re asking me, IronRuby is here to stay. It’s become stronger than Microsoft and the next months/years will be our time to prove it. Personally, I know I won’t stop working with it, talking about it and helping you guys with your questions about it. I’ll do it because I believe in it and papa always told me to do what I believe in.

“we are not alone, we feel an unseen love
we are sons and heirs of grace
we are children of a light that never dims
a love that never dies, keep your chin up child
and wipe the tears from your eyes”
-- from Music Box by Thrice

Shay.



IronRuby and IronPython on the next Israeli .NET User Group Meeting

August is going to be a very busy month for me, speaking at DevLink, TechEd Japan and RubyKaigi. In addition, with the help of Dror Helper, we’re bringing dynamic languages to the local .NET crowd in Israel!

When?

August 18th, 17:30-20:30.

Where?

The Israeli .NET User Group (IDNUG) August meeting,
Microsoft offices, Dekel room
HaPnina 2, floor 0
Raanana, ISRAEL

What?

17:30 - 18:00   Assembly
18:00 - 19:15   “Introduction to IronRuby”
                           Shay Friedman
19:15 - 19:30   Break
19:30 – 20:30  “Introduction to IronPython”
                           Dror Helper

Abstract #1: Introduction to IronRuby
Ruby has been a home for some great innovative frameworks like Ruby on Rails, Cucumber and Rake. IronRuby has recently been released, unleashing the power of Ruby to the .NET world. In this session you will get familiar with the Ruby language and its amazing ecosystem and you will learn to take advantage of it in your everyday development tasks. Come and see how this great new addition to the .NET family makes your development process faster, clearer and happier.

Abstract #2: Introduction to IronPython
Do you want to learn about dynamic languages and their uses? IronPython is a good place to start. This dynamic .NET language can be used to develop just about anything – windows application, web services and Silverlight to name a few. This session will explain what Python is all about and how to write .NET applications using IronPython. The session is intended for .NET developers without any previous knowledge of Python that want to learn about the power of Dynamic Languages.

How?

Register now at https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032456794&culture=he-IL

See you all there!
Shay.



Using the IronRuby Interactive Console

Hi all,

Eric Nelson, an Evangelist in Microsoft UK, has published a guest post of mine in his successful blog. The post explains how to take advantage of the IronRuby interactive console to explore .NET assemblies.

You can find the post here: http://geekswithblogs.net/iupdateable/archive/2010/07/26/guest-post-using-an-interactive-console-to-explore-the-.net.aspx.

Enjoy!
Shay.



IronRuby is going to Japan!

If you don’t already know, Japan is where the Ruby language was created, back in 1995. This is the origin of this great language, this is where it all started!

So I’m very excited to announce that on this August, IronRuby is coming to Japan!

IronRuby in Japan

I’m going to visit Japan in August and talk about IronRuby! I will participate in two very different conferences – TechEd Japan and RubyKaigi.

TechEd Japan, the main Japanese .NET conference, will take place between August 25th to August 27th. I’m going to speak on day 2 of the conference (the 26th) about IronRuby for .NET developers.

TechEd Japan 2010 

RubyKaigi 2010 will take place between August 27th to August 29th. It is a world-class Ruby conference that hosts Ruby great minds from all over the world like Yukihiro Matsumoto (the creator of Ruby), Yehuda Katz, Jeremy Kemper and others. I’m going to give there a talk on the 29th, named “IronRuby – What’s in it for Rubyists?”.

RubyKaigi 2010

I’m so excited to visit Japan and present in front of both .NET and Ruby developers. Maybe this will be the bridge between the large Japanese Ruby community and the large Japanese .NET community!

Shay Friedman – bridging between developers since 1983!

See you there!
Shay.



How Do I Convince My Boss?

I’ve been evangelizing IronRuby for quite a while now and during this time I have been asked this question numerous times. I’m sure anyone in the .NET community who’s trying to evangelize something that is a bit outside the standard toolset have run into this question as well. And I have no doubt it happens in other development environments too. It’s a worldwide problem we’re facing here!

This is actually a good question. The guy/gal who asks it probably understands the benefits of the new technology/tool/whatever but they know that it will be hard to break through their workplace “defenses”.

Indeed, looking through the boss’ glasses, it sounds crazy to change they way people work…. learning curve, complications, an unfamiliar world… or in other words – it is outside the comfort zone. This is actually the heart of the problem – this popular comfort zone. It is, actually, comfortable there. However, it is also still… very small evolvement takes place inside the comfort zone. And you know what Darwin said would happen when something doesn’t evolve, right?

Anyway, we’re here because we do want to evolve, we do want to improve and we do want to use the right technology for the job. So first, let’s get familiar with who we’re dealing with:

  • Small startups – startups are the most open-to-changes workplaces out there. This is because in startups, managers don’t really care how something is created as long as you do it fast, you do it good and it doesn’t cost a lot of money. This is where you’ll have most chances of succeeding in convincing your boss.
  • Small-medium companies – small-medium size companies tend to be more conservative. You will run into different tools/languages here and there but mostly there will be a single declared method of how a project gets done. It won’t be a piece of cake to sneak a new technology/tool in here but if you succeed to persuade a few people in your close circle, you might have a chance.
  • Large-huge corporations – you’re screwed. Politics is what’s running the place, not technology. Therefore, managers will be unwilling to make changes, sometimes even just because they are not technological people and do not understand the benefits. I believe that you can make a change even in these corporations. However, be ready for a long and exhausting fight.

Moving forward, before deciding to go ahead and use your technology/tool in your workplace, be aware of the next bullets:

  • Know the technology/tool. People will try to talk you out of it and ask you all the questions they can think of. You need to have answers.
  • The technology/tool must have real and clear benefits. The more these benefits can be translated into saving money to the company the better. The benefits must also be something you can present – it takes less time, the code is clearer, it is easier to maintain, etc.
  • Do a great job. If you finish the project two weeks late, no one will want to hear about your new technology/tool even if it’s really the greatest thing ever created.
  • The WOW effect will greatly help you. If you succeed to wow the people that don’t want to see new technologies in the office, you’re half way in. Try to have that wow effect somehow.
  • Be ready to fail. You might not get through the first time. But don’t stop fighting, try again. And again. In the meanwhile you’re using the technology you like so it’s not that bad at all. However, a lot of people really really like their comfort zone and will not agree to move one inch away from it even if they have no good excuse for doing so. If these people are the decision-makers, your chance of getting through is very very small. In such a case, if you’re into new technologies, maybe your current workplace is just not for you.

OK. What do you do now? Well, you have multiple options. I recommend you to try the first one first, if it doesn’t work try the second one and so on.

Get a Permission

Approach your boss and ask for his/her permission to use your technology/tool for a specific task. Do not come and say “let’s use X” because you will get the generic answer “cool, we will” and never hear about it again. Be specific.

In addition, come prepared. Tell your boss why you want to use X for that task and what will you/the team/the company/the world benefit from it. You can also suggest you’ll do a presentation for the team about it and decide together if it’s worth trying.

Work in Parallel

Your persuading campaign didn’t go though and you haven’t received the permission you hoped for. This is not the end, but you will need to work a bit harder.

Given a task, work on it and finish it with the current technologies/tools that everyone is using. In addition to that, work on the same task individually in the technology/tool you want to convince your boss to adopt. Then, when the day comes to show your boss your work, show him/her also your side project and explain them the benefits. Once they see both implementations, can compare them and really “feel” the benefits, they might be convinced more easily.

Don’t tell your boss

I actually don’t like this solution at all… I think it is the fast way to get fired. But it is an option and you need to be aware of it.
This should really be the last resort if your hands are burning and you must use this new shiny technology in your workplace and you know that until Earth is destroyed, there is no way someone will approve you to use it. Anyway, please ask for permission first. Maybe you’ll get lucky.

The idea here is very simple – your boss tells you to do something and you do that with your beloved new technology/tool without letting anyone know. Then you come back to your boss, in record time, and says “I’m done”. From here there are three main scenarios:

  • You are fired immediately.
  • You loose your credibility and after a while your boss fires you.
  • You become the new hero. The technology is adopted by your team and then the entire company. The boss likes people who swim against the current so after a while you are promoted and eventually you become the CEO of the company.

Epilogue

I believe that any person who wants to improve himself/herself in what they’re doing, should widen their horizon and look around. It’s a win-win situation - if you like what you see, learn from it and try to import it into your development environment. If you don’t like what you see, you will be more grateful for what you already have.

And if you think that you’re only one person and there’s no way you can convince your boss and affect the company you’re working for, remember that it only takes one person to start a revolution.

Viva la Revolution!
Shay.