MaintainJ Blog

April 19, 2012

Unable to continue, this version of AspectJ supports classes built with weaver version 6.0 but the class XXX is version 7.0

Filed under: Uncategorized — maintainj @ 10:19 am

You might see this kind of exception when you start your application with MaintainJ. The reason for this exception is nicely described by the AspectJ lead Andy in his blog.

This exception might occur if you are already using AspectJ in your application, which may conflict with the version of AspectJ that MaintainJ is using. Below are the steps to resolve this:

1. Search if you have aspectjrt.jar or aspectjweaver.jar in your application classpath. Remove them if so.

2. MaintainJ already places aspectjweaver.jar at a higher level in the classpath. So, you don’t need it in your application. aspectjweaver.jar has all the classes in aspectjrt.jar and so you can safely remove it from your classpath.

Do those steps and restart your application. If you still have any problems, contact me.

–Choudary Kothapalli.

April 7, 2012

MaintainJ for Android apps

Filed under: Uncategorized — maintainj @ 8:05 pm

MaintainJ support for Android applications is added.

–Choudary Kothapalli.

March 26, 2012

MaintainJ won the Best Modeling Product award at Eclipse Community Awards 2012

Filed under: Uncategorized — maintainj @ 9:02 pm

Great news! MaintainJ won the Best Modeling Product award at Eclipse Community Awards 2012!

Here are the nomination details.

Below is my picture taking the award from Ian Skerrett of Eclipse foundation!

–Choudary Kothapalli.

March 20, 2012

What a relief!

Filed under: Uncategorized — maintainj @ 11:40 pm

This is the first time I am linking another blog on my blog. I just feel so relieved after reading this particular blog. Read about Imposter Syndrome.

Choudary Kothapalli.

Erica Douglass bootstrapped her company and sold it for a million dollars while her friends were switching majors for the third time or dicking around at some entry-level job. She’s successful by any measure.

But after a few short months of super-charging our marketing efforts at WP Engine for her to start turning herself inside out about her lack of “success,” and by implication, lack of ability and self-worth:

WP Engine is killing it right now. They’re growing faster than my hosting company did. “Damn,” I thought, “I must have really sucked at growing my business.” And the downward spiral arrived, ready for me to step on.

All driven people do this to themselves, and it has to stop.

This is not about Erica; she’s the example only because she has the stones to admit it online. This is about you and me who beat ourselves up with similar words.

It’s tempting to attack her definition of “success” which is apparently things like “growth rate” and “gross profit margin” as opposed to things like “happiness” or “fulfillment” or “loving life.” I could make this case — that her definition is wrong — and I’d be right, but it wouldn’t help you, me, or Erica, because this is not an argument that type-A obsessive people respond to. It’s like claiming that meditating fifteen minutes a day will make you less stressed and more thoughtful — it’s undeniably true, but you can’t say it with credibility to people like us.

Better would be to point out her conveniently gerrymandered criteria, choosing to value “growth rate” while not valuing “monthly cash loss,” or valuing “gross profit margin” while not valuing “percent ownership.” In fact, you could credibly argue that she’s intentionally selecting only those elements which will cause her to feel inadequate, ignoring those to the contrary. Which makes me believe her “explanation” is a rationalization rather than a cause. The job now is to find the true source.

Well there is a source, well-known and backed by studies, called Impostor Syndrome. That link is an article from two years ago where I expose myself and others for having exactly this irrational failing. If the examples from the article aren’t enough to prove that everyone feels this way, just read the comments.

But maybe you’re still not satisfied, because this is still a bunch of touchy-feely bullshit, and after all there’s nothing wrong with defining success by quantities of money and power and the speed at which we accumulate them.

Except even if you use that definition of success, her (our!) perspective is still wrong, and not for the reason she gave in her article (which was about how hard other people work compared to her, which isn’t true anyway because she works all the time too, as my inbox proves.)

To see why, let’s wind the clock back to 2002 when Erica started her hosting company , Simpli. And let’s suppose I started WP Engine at the same time. (WordPress didn’t yet exist in the form and glory it is today, so let’s give my company a extra boost in this thought experiment and say that WordPress is around v2.5, circa 2008.)

According to Erica’s criteria, let’s see who wins.

WordPress has impressive traction for an open-source tool, but it’s orders of magnitude less prevalent than it is today, so I can’t find customers in droves like we now do. And there isn’t a well-organized panoply of world-wide WordCamps so it’s hard to reach out to those potential customers. And I’m not a hardware geek like Erica, and “cloud hosting” hasn’t been invented yet, so I have to build, configure, and maintain hardware, which means false-starts and legacy configurations and other expense and waste that Erica would never incur. And I’m in Austin, not San Jose, where there’s 100x fewer customers I could land at meetups with maid service al. And there’s no Twitter or Facebook (or even a strong culture of blogging) to enable my few zealous fans to spread the word. And I didn’t have several startup successes under my belt and monied contacts earned from blogging and speaking, so I can’t raise money like we did. And high-tech-America was in post-bubble recession with barely anyone at all who would actually pay a premium for WordPress-specific hosting.

So it’s clear how this would have gone down. Either complete fail or, more likely, painfully slow growth, crawling towards a stretched definition of “Ramen-profitable,” and a blog post by me about how inadequate I feel next to hosting companies like Erica’s who bootstrap to success with such apparent ease.

This is what physicists call a “time-asymmetry.”

A fix body group san diego conducted experiment in one location will yield identical results if we move it to another location (provided we move all other influences and pieces along with it). Technically we say that “the laws of physics are symmetrical with respect to translation.”

This is more important than it first sounds. Another symmetry is “constant linear motion” — an experiment in a train moving in a straight line at constant speed is indistinguishable from one done on a train station platform. It is just this fact, combined with the experimentally-determined mind-bending fact that light always appears to travel at the same speed regardless of the motion of the observer, that gives rise to Einstein’s special relativity and explains all electrodynamic theory. This particular symmetry is responsible for half of modern physics!

It’s not always obvious where physics is and isn’t symmetrical. For example, it is symmetrical if you rotate the experiment around a fixed angle, but it is not symmetrical if the experiment is being continuously rotated (because now there’s a centrifugal force).

Well it’s obvious where two businesses are symmetrical: Nowhere! The example above demonstrates how very asymmetrical businesses are in time. In fact they’re asymmetrical in everything — location, the market they serve, the features they have, the founding team, the investors, the amount of money raised, the number of RSS subscribers or anything else. If there were symmetries — or anything even close — we could use that to predict success and failure just a little. Which even professional investors can only do a fraction of the time — so infrequently in fact it’s hard to conclude they “predicted” anything at all.

But humans expect, seek, and even invent symmetry. We crave and seek similarities and patterns and connections. We describe companies that way, e.g. “We’re Netflix for art” — implying a symmetry in target market (i.e. changing the market from videos to art but keeping the website structure, the pricing structure, the delivery structure, etc., ought to result in similar success).

This might be a pithy way to summarize a business, and in that capacity it’s fine. (Or not.) But in detail and execution and route to market and profit margins and opportunity and competition and technology and … well, everything … each company is a new challenge, new variables, and unpredictable.

It’s healthy to use (apparent) symmetry to spark an idea, e.g. “That’s a creative marketing campaign, maybe we could try something similar.”

It’s unhealthy to see symmetry where it doesn’t exist, then build a straw man to fuel self-loathing. Like Erica. And me. And almost every “successful” person I know.

Erica isn’t special because she has misplaced feelings, she’s special because she’s willing to stand up and admit it in public, in order to help everyone suffering under the same delusion.

I would say “stop comparing yourself to others and just be as good as you can,” but high-achievers like you and me could never accept that advice, even if it is wise, because we’re physiologically incapable of not measuring ourselves by impossible yardsticks we invented and, because of Impostor Syndrome, by definition we always come up short.

Instead, how about this:

Stop comparing yourself to something that is objectively incomparable.

That’s just irrational.

March 6, 2012

NotSerializableException: org.aspectj.runtime.reflect.JoinPointImpl$StaticPartImpl

Filed under: Uncategorized — maintainj @ 1:40 pm

One of the MaintainJ users reported the above exception while tracing a legacy application. The exception stack trace is as below:

Caused by: java.io.NotSerializableException: org.aspectj.runtime.reflect.JoinPointImpl$StaticPartImpl
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at xxx.yyyyy.ZZZClass.writeExternal_aroundBody4(ZZZClass.java:70)

MaintainJ uses AspectJ load time weaving (LTW) mechanism to capture the call trace. The LTW adds new fields like below to the woven classes and they are not marked ‘transient’.

private static final org.aspectj.lang.JoinPoint.StaticPart ajc$tjp_0; /* synthetic field */

The JoinPoint.StaticPart does not implement Serializable. So, when a woven class is serialized, NotSerializableException is thrown. The AspectJ team responded very quickly to mark these fields transient and avoid this exception. If you are interested to know more details of this issue, check this thread in the AspectJ dev mailing list.

The aspectjweaver.jar with the fix will be included in the next release of AspectJ. In the meanwhile if you encounter this exception, please contact me.

–Choudary Kothapalli.

March 1, 2012

MaintainJ is selected as a finalist for the Best Modeling Product

Filed under: Uncategorized — maintainj @ 7:04 pm

Today it is announced that MaintainJ is selected as one of the two finalists for the Best Modeling Product award for the Eclipse Community Awards 2012.

Here are the nomination details. The winner will be announced on March 26th at the EclipseCon 2012.

— Choudary Kothapalli.

« Newer PostsOlder Posts »

Powered by WordPress