Frozen Heart Plains : Blog

Happy New Year 2012 posted on 31 Dec 2011 20:19

OK, so without any ado, Happy New Year, mates!

This year's been really intense and packed with both interesting and … not so interesting stuff. Huge projects done, crazy conferences visited, MSR internship finished, new languages learned, some awards won and many-many more things happened to me. I didn't have a lot of time to reflect on everything and … I like it. Makes you feel alive and kicking =)

I want the 2012 to be even more interesting and intense. And I wish the same to you, mates.

Happy New Year 2012! Kanpai!

Tags: blog news

Comments: 1 : Rating: 0

Finally, I'm back! posted on 19 Sep 2011 15:39

Hey there, I've finally found some time to write a small blog post with the latest news… As you'd have already noticed, I've been really busy in the last couple of month with my internship and everything… And I skipped a couple of posts I should've written… *whistles* But anyways…

It was really hard and intense, but … rewarding and interesting at the same time. Doing the stuff I did. MSR is a great place to be, and I really mean it. I never considered Microsoft as a possible employer, but after these 12 weeks I totally changed my mind about it. Everything — the environment, the people, the projects — is fantastic. You can fully focus on what you want to do, and everybody is more than willing to help you. I'd lie if I said I don't want to return there. Right now. I WANNA GO BACK!!! Ahem, sorry…

And the US are so much different from Russia that I don't even know where to start. To give you an idea:

  • USA: paying for excess luggage in SeaTac airport. Less than 60 seconds, done by VISA. Nice and easy.
  • Russia: paying the customs fee in Pulkovo 2. About an hour of some slow-mo bureaucratic stuff, cash only. ATMs don't work or don't have enough money in them. What I'm supposed to do in this situation, I honestly do not know.

And that scales and applies to almost everything. I'm no "Russia hater", but I can see the harsh reality when it's in my face. And I perfectly understand that the US have their own problems, it's just that … The difference in average amount of "problems per day" here and there is overwhelming…

Oh well, I'm used to this. No problem. And they do say that "the grass is always greener on the other side". But in some cases, this is true…

Not to end this post on a bad note, I'm alive and kicking! Excited and inspired! I even wanna do something on my Ph.D research (which is very unusual for me)! To sum it all up, if anyone of you is thinking about possible internship options, do apply for MSR program. It is totally worth it. Every single moment of it. Every one of those 7,257,600 seconds =)

PS Expect some photos from me in the nearest future… If I'm not lazy enough… =)

Tags: blog msr news philosophy

Comments: 1 : Rating: 0

Redmond, WA - 3:9 posted on 10 Jul 2011 05:50

Just some small random updates =)

  • What I really like around here is that almost every bureaucratic thingy we have uses computers to the fullest. Every application form is printed out with your data in it, and you only have to sign it. Considering my horrible hand-writing, that is a huge win for me =)
  • Just went for a so-called PuzzleHunt today. Was really fun, but most of the puzzles were heavily English-oriented. And I, as a non-native speaker, couldn't do a thing about it. We managed to solve some stuff, but didn't get the final one. Oh well, hope I'll be here next year for a rematch =)
  • Starbucks rulez. Period =)

Tags: blog msr redmond

Comments: 0 : Rating: 0

Redmond, WA - 2:10 posted on 07 Jul 2011 05:53

Status update, yay!

  • The Independence Day was CRAZY! Somehow I remembered the Airborne's Day — a lot of crazy people shouting crazy stuff and doing crazy shit =) The craziest folks were the officials — several billion dollars went BOOM in the fireworks. But it was totally worth it. When I make myself post the photos, you'll see what I mean by that.
  • Will Evans is coming to MSR. For those of you who's not into CS (I guess that's about everybody who's reading this), he's one of the world's leading researchers in clone detection. Really exited about this opportunity. Oh yeah, baby…
  • I know it's a little bit strange thing to hear from someone who went to MSR on his own accord… But I already hate MSVS and TFS. This whole thing is too damn complex and rigid. Git to the rescue — had to adopt double repo strategy to make development less painful =)
  • I've got over 200 TV channels here. And there's nothing to watch =)

And a question to those who actually read this =)

  • MacBook or Thinkpad? And please elaborate why =)

Till next time!

Tags: blog msr redmond

Comments: 3 : Rating: 0

Random thoughts... posted on 27 Jun 2011 05:48

Here goes:

  • They've got a machine that takes coins and updates your credit card account. I want one!!!
  • The high-and-mighty AT&T can't even stream internet radio stable enough… Yuck…
  • Donuts at 50 cents per item are… AAAAAARGH…
  • Why is it they love surveys so much? Already had 3 surveys sent to my home about the quality of service in different places I've been to. Nasty…

Tags: blog msr redmond

Comments: 0 : Rating: 0

Redmond, WA - 1:11 posted on 26 Jun 2011 07:14

So, a week done — eleven weeks to go. A status update, so to say =)

First of all — GET A CAR! I made a huge mistake when decided not to get a driver license a couple of years ago. 'Cause in the US you either have a car and don't have any problems… Or you don't have a car and have all the problems in the world =) The whole country seems to be tailored around having a car. The shops, the infrastructure, the cities themselves… You get the picture =)

Second — all Americans are addicted to discounts. I already have 4 discount cards, several personal accounts and an inch thick stack of coupon offers in my trash bin =) This is simply crazy! Don't see the point in all of this. But — on a side note — some things here are sooo cheap compared to prices back in Russia =)

Third — for apparent reasons I can't say much about what I'm currently doing at MSR, but I can tell you that it's really interesting. Surprisingly, the overall feeling is very similar to what I'm used to in my University, but a couple of things are simply done better. And we have free drinks of any kind =) Maybe we'll be able to use this experience =)

I'll try to think of what else to tell you… But for now — bye! =)

Tags: blog msr redmond

Comments: 0 : Rating: 0

Redmond, WA - First Impressions posted on 20 Jun 2011 06:03

OK, just wanted to drop a few lines while I still have a chance =)

I'm at Redmond right now, almost no jetlag present… Enjoying myself and prepping for the first day of my internship =) No photos, but many impressions. The most interesting one is that the people here are very friendly. Maybe it's my luck, maybe it's Redmond, but still — hearing «Good morning» from a complete stranger in the morning or getting invited to a house to drink some tea or being given a ride back home … I can't imagine anything like it happening in Saint-Petersburg, but here…

At any rate, I'm fine, I'm looking forward to my internship. And I'm gonna try to keep you guys posted about my status in Redmond. Tiil next time!

Tags: blog msr redmond

Comments: 0 : Rating: 0

Life Update - MSR posted on 15 Jun 2011 17:56

OK, a quick and happy update - in less than a week I'm starting my 12 week internship at MSR Redmond. Of course, this blog will be your main source of info about it. If you're interested, feel free to drop by from time to time and read the stuff I'm gonna write… If not, you're gonna miss a hell lot of fun =)

Till next time!

Tags: blog news

Comments: 0 : Rating: 0

JPA: Pros and Cons posted on 08 Apr 2011 20:25

OK, first of all, some preliminaries… I'm currently working on some crazy Java EE project that defiles and denies almost every rule of Software Engineering and Computer Science put together. But I'll write about it some other time =)

Today I'm gonna talk about JPA 2.0 — Java Persistence API 2.0 — based on personal real-world experience. If you don't know what JPA is — see Wikipedia about it. I just want to share some thoughts I have on the subject.

Do not use JPA when you already have an extensive domain model

That was our first big mistake when we decided to go with JPA. We were (and still are) bound by a Big-Domain-SQL-Model (BDSM) that tries to imitate NoSQL on a MySQL DB — and does it WRONG. We have to simulate some pretty crazy SQL logic using twisted rules of BDSM and JPA gets in the way:

  • No JOINs between entities without JPA mappings — our BDSM does not have any foreign keys, is too big to fully map it to JPA entities and has some «context-sensitive» mappings that simply cannot be expressed in JPA. Stuff we can say in SQL we cannot say in JPQL, and that sucks.
  • Composite primary keys are a pain. Face it, and learn to live with it.
  • Lazy fetching is evil. Nothing beats it when you detach an entity from your JPA layer hoping to get a fully initialized object and get some «super-efficient-lazy-meta-fantastic-proxy» instead.

Now I really wish that we'd use something closer to iBATIS that is «down there with SQL» — thus, closer to BDSM.

Do not count on different JPA implementations to be compatible

As a matter of fact, they almost certainly are NOT compatible. For example, the above-mentioned example about detaching an entity with lazy fields — EclipseLink initializes them on detachment while Hibernate does not (I have yet to find who's right from the JPA 2.0 spec PoV).

Or when you're using <delimited-identifiers/> option with EclipseLink — it does work. When you use it with Hibernate — it cannot find any tables because table names are quoted (e.g. «`Person`»). And that — I must repeat myself — sucks =)

I'm not saying that EclipseLink is better than Hibernate — my point is that even if you use only pure JPA 2.0 in your application — you cannot switch between implementations as easily as you'd like to. Just accept that and move on.

There is no error reporting in JPA

This is what … well, what pisses me off like hell. I know I'm not perfect and that I make mistakes when I code. I make mistakes in my JPQL queries. But I have yet to find an error message that actually says something even remotely related to what caused the error. When JPA says that «You're trying to register the same query twice», it almost certainly means that the problem is somewhere else. Pretty neat, huh?

The only workaround we found is — test ALL of your queries on deployment. Use a special deployment-time-only bean that triggers them and ensures that they (somehow) work. If queries fail — you'll have a very limited set of changes to review and analyze. And do not try to understand the error message =)

Entities are nice

OK, finally some pros =) Working with entity classes (when you forget about everything I said before) is nice. No nasty SQL — just some objects you can pass around and write back to database whenever you want it. I'm no SQL wizard — and entity classes remove a huge pain in the butt for me =)

Annotation-based configuration is very nice

I hate XML configuration. Spring and its XML hell can kiss my ass goodbye =) I don't see the point in separating code from configuration — configuration rarely changes after deployment, XML is very prone to mistypes and is painful for your eyes. That is why the fact that I can configure almost everything via annotations is great. Pa-ra-pam-pam-pam — I'm loving it =)

So — that's all I want to say today about JPA. I've got sooo many other stuff I wanna share with whoever is reading this, but — some other time, mate =)

PS This review is very biased and expresses my personal opinion on the subject. I may very well be wrong about some points =) I hold no responsibility for the mistakes in your application design and implementation that you make after reading this post =)

Tags: advices blog development java jpa software

Comments: 2 : Rating: 0

Vacation 2011 posted on 25 Feb 2011 22:09

OK, no more work and stuff… 2 weeks of sleeping, reading and doing nothing =) Yay! YAY! YAY!!!

C# specification — here I come!

Tags: blog

Comments: 0 : Rating: 0


Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License