Showing posts with label work. Show all posts
Showing posts with label work. Show all posts

Aug 24, 2013

Looking for a new Job: the experience

Hi.

On this post I've said that I was joining a great team and that I was really excited about it; I did meant that but unfortunately this journey came to an end on Feb/1/2013 when my contract was not renewed after the latest corporate acquisitions round.

In this post I'll describe the process I took to find a new job, but first lets make things as clear as possible:
  1. I am not an HR expert (far from it, I'd rather say I am a complete newbie on the subject), so take every world with a whole mountain of salt ;)
  2. yes, I did follow most, if not all, of the presented advice.
Perhaps the most important advice (and probably the hardest to follow) is: don't panic! I know that it is easier to say than to do (I've been there, remember ?), but try to keep calm and review your options carefully.

The first thing you need is to realize that 
Looking for a new job is a full time job!

It may look like restating the obvious but I haven't realized how much time it may take! So, be prepared to dedicate a lot of time to this phase (fortunately, job wise I hadn't much else to do :).

My first step was to create a list of requirements/constraints for the new job, sorted by importance; you should take into account aspects such as compensation package, relocation, type of work, etc. Depending on your constraints it'll take longer to find your new dream job.

In my case the list looked something like:
  1. It had to be fun and challenge.
  2. The company  I'd work for should at least recognize and be committed to implement/use good development practices (TDD, continuous building, pair programming, etc).
  3. Compensation should be closer to or higher than what I was earning before.
  4. Work from home if possible.
  5. Avoid relocation.
Soon after I come up with this list I started to suffer from the ROOR (Running out of resources ;) syndrome - for reasons that are not important to explain here I had almost no savings... :(.

At this point you really need to think about what you want, review your requirements list and refrain from accepting the first (or second, third, whatever) job offer you may get only because you are running out of money. 

Of course there is a hard deadline and you can't wait indefinitely  in my case I strove to get at least 4 ~ 5 job offers before taking a decision. More importantly than the number, was the quality of the offers; there was one in particular that I was really interested in so I discussed with my wife and we decided we'd squeeze as much as possible from our small savings and would try to allow me 1 ~ 2 more months before taking the decision (while I was waiting for the interviews to come I took the time to experiment with something new, but related to my field of interest). 

After some time the interviews started to come and suddenly I had participated in 3 ~ 4 of them, some in the traditional sense of the word and some virtual interviews (through skype / phone).

Some notes from these interviews (process wise):
  • Never forget that interviews are a two lane road: you are not the only that is being interviewed! You should also be evaluating the company in question.
  • Don't be afraid of challenges! Instead, use them as a motivation to you to learn and improve.
  • Be humble but not shy. Do not put yourself in the position of someone that is reluctant to disagree because you are afraid of not getting an offer: be yourself.

  • Be prepared to face ridiculous, unrealistic job skill set requirements / compensation packs. Just keep the professionalism.

  • Show enthusiasm; would you hire a candidate that looks (and behaves) apathetic in an interview?

  • Even if, in the middle of the interview, you've already made your mind and you don't plan to accept a (possible) job offer, keep the professionalism.
Fun fact: there was 2 situations that I found very strange: in one of the interviews I was asked absolutely no technical questions (at least none that I think would be able to assess my ability to do the job) and in another one the interviewer sold the company in question as the best company in the world but said that they could not get good developers to join them, hum... (guess what? I discarded both of them). 

When you finally get a job don't forget to get back to any pending job offer and let them know you are not available anymore.
Hope this was helpful.

Aug 8, 2013

I love my job ;)

I am so proud of being part of the team behind Unity (even if my contributions so far are really a tinny part of it - almost nothing ;)


I've joined Unity team 5 months ago and everyday I get impressed by how much they have achieved already.

Sure, as any other job, it has its "this task sucks" moments but most of the time I'm having fun and learning new stuff (and the developers / team mates are really supportive).

Thanks all for the opportunity. I am really happy working with such great people.

Happy codding.

May 9, 2012

Free (open source) RAM disk for Windows (x86 / x64)

Hi


Have you ever had the need to perform some I/O intensive operation on a relative small set of files? I do, usually when I need to compile some application.

In order to speed up this operation I've recurred to the so called "RAM Disks", applications that takes part of your computer's main memory and pretends that it is an actual disk. As you can imagine read/write/etc (I/O) operations against this virtual disk are much faster than operations against your actual hard disks (be it a traditional magnetic HD or a shine new SSD).

In the past 3 years I've used at least 3 different solutions and was happy with none. My main complain is that most of them were not capable (or it was really clumsy/hard to accomplish) of creating RAM disks dynamically, i.e, one is required to create it at OS start up time. Since my needs are dynamic (I may need more disk space at some points in time during the day) it is really hard to come up with a disk size that work for me: choose a to big disk and I am wasting precious RAM space; create a disk that's to small and I may find myself facing "out of disk space" errors (then cleaning up some junk and restarting my build tasks).

Fortunately some time ago I stumbled upon a RAM disk implementation that allows me to mount and unmount disks dynamically! Since then my work flow has been much more smooth ;) The not so good side is that it is not very easy for the "not computer savvy" user.

Bottom line is: if you need a stable and flexible (but maybe not so easy to start with) RAM disk solution you can't go wrong with this one.







Jun 20, 2009

Going to ICOODB

Hi.

Next week I'll attend the second international conference on object databases in Zürich. Woow!

I am sure it will be really amazing moments; I'll have the chance to meet db4o fellows face to face again, to attend to interesting talks, to talk to db4o community members and db4o enthusiasts! Since most db4o team members will meet at Zurich we're taking the chance to discuss db4o directions also. 

Of course, visiting another country (even though being a work trip) and getting in touch with a different culture will be really a great experience. 

My friends knows how much I like chocolates, so I am sure I am going to get some extra weight :)


The not so nice part is that I'll have a 14 hours flight from Brazil to Switzerland and I must admit that I am a bit anxious with the latest flight news (the interesting thing is that I am almost sure I'll have some nice live pair programing session with my good friend Rodrigo while we wait for our flight).


The worst part is to be far from my wife / daughter (I'll miss my daughter's school presentation).


For those that I'll meet at Zurich, see you soon. For everyone else, see you in this blog :)


Best

Adriano

Jun 6, 2009

Another day in a developer's life....

Yesterday was a frustrating day.
By the morning I started to work (pairing with a really smart friend) on an apparently simple task: to automate the process of starting an internet explorer (ie) instance, navigate to a specific page stored on the local machine, wait for some processing to finish (notified by the page) and grab the results. Having some years of experience with Microsoft technologies, mainly developing COM components, and aimed with (lack of) humbleness I started to write a jscript script to drive IE through automation, after all how hard could that that be? Indeed, the first part was really easy:
var browser = new ActiveXObject("InternetExplorer.Application");
browser.Visible = true;
browser.Navigate("http://programing-fun.blogspot.com");
I run the just finished prototype and the browser opened, navigating to the desired page. I was really happy (and thinking how I am smart). So far, so good. But things started to get weird really fast. Even having a good grasp on IE's object model (I don't know it by heart) I failed miserably to retrieve a reference to a page element:
var browser = new ActiveXObject("InternetExplorer.Application");
browser.Visible = true;
browser.Navigate("http://programing-fun.blogspot.com");
while (browser.Busy) {
WScript.Sleep(10);
}
var element = browser.Document.getElementById("some-id");
After some time we decided to give up on using jscript and switched to C#, so I created a Windows Form application to host WebBrower control (hum... someone said IE?) but we kept seeing strange behavior. For instance, the page we were trying to load hosts a Silverlight application but IE insisted that we should install Silverlight; WTF? I do have Silverlight installed !!!

Well, at that time I was not felling so smart anymore; and since it was almost lunch time we decided to continue latter.
When I got back to work I was determined to get it working so I did what any reasonable developer does in such situations: I decided to do something else :) and I ended up watching a screencast about how to improve the experience for users that don't have Silverlight installed; hum.. interesting. 

The presenter suggested to disable the Silverlight add-on (instead of uninstalling it).
Great! Maybe the add-on was just disabled (due to some stricter security configuration when launching IE through automation).

Why I haven't thought about this before?
I started my application (C#) as fast as I could and a new browser appeared (in the same way as before), then I went to the add-on configuration dialog and voilà! There was no Silverlight add-on listed (how could I enable/disable it?).

So the problem was that, for some reason, IE was not even considering Silverlight add-on to be installed (but that was what IE was trying to say me all the time no?).


Then I launched IE manually (clicking on its icon on desktop) and opened the same add-on configuration dialog. This time I could see that Silverlight (and a lot of other add-ons) were installed and enabled.


Well, now I was starting to fell better :). But I still had to understand why I was getting different behaviors depending on how I launched IE. After some head screeching followed by some thinking and some extra searches I do figured out the issue, but that's the subject of a future post :)


Have fun! 


Adriano

Mar 21, 2009

Benefits of working from home - Epilogue

After 9 posts in this subject (BTW, I have written this post long ago) I am going to finish it... and the big question is:

Did it worth?

Well, to answer this question I pondered on various aspects: It allowed me to move to a smaller city, closer to my wife's parents, a less violent, less expansive
city, etc; it gave me the chance to spend more time with my family and a lot more benefits!

So, IMO it really worth the move! Even missing some "usual work style", I am pretty happy working with very smart people, in a really cool product, applying really nice development methodologies and last, but not least, being able to organize my own time :).


I don't know how long I'll be working with these stunning guys, but I do hope I could be there for a long time ;). There's just so many things to learn yet!

That's it ;)

See you all.

Adriano

Nov 21, 2008

Benefits of working from home - Part IX- Infrastructure

In this post I described how using my computer in my home office was the first time that I'm getting a direct return on my investment.

In this post I'll take a look in the other side of the coin: the investment in infrastructure.

When my home computer used to be only that, i.e, my home computer, I had no hard requirements to keep it up to date. I could simply update it each 5 years or more if I wanted to; also, my internet connection need not to be very fast; the same applies for my desk; it could be very ordinary as I didn't spent a lot of time in my computer.

Of course, being a computer/programmer addicted as I am, shortened my computer's update cycle for something between 2 ~ 3 years, and 


internet connection, you know: you never get enough bandwidth ;)

By the other hand, using my computer to work pushes it to its limits... and of course, each minute I spend looking at the hour glass represents a minute less with my family (or my Wii :) so I want to wait the lesser amount of time possible in front of it.

Just to put some numbers, the first time I run db4o build on my machine it took more or less 1 hour to run to completion (mostly running tests). I just couldn't believe that. My machine was not a top one but it was not so old/slow either. After a lot of tweaking I managed to get the build running in 15 minutes but that required some $$$ (nowadays, even with a new machine tests take 20 ~ 25 minutes to run due to lots of new tests).

Also, I never considered (or had the requirement to) run 2 VMs, 2 Visual Studio (one in one VM and another in the host OS), Eclipse and some other apps at the same time. So now, 2Gb of memory doesn't look that much anymore.

Another important aspect that will have great impact on your productivity/health is the
overall quality of your office furniture: remember when you used to complain about your boss not willing to spend a few extra dollars on a good chair for you? I certainly remember myself complaining with mine :( Of course you don't need to go out and get the best chair in the world, but make sure you'll not get a "not so good" one only to save a few extra bucks either (If you are going to spend more than 4 hours seated I do recommend you to get a very good one - for instance, this one).

Well, that's not the end yet; telecommuting meant also that I became my own IT department ;). Not that I have any problem fixing my computer, installing software or whatsoever; the really big point is that all these maintenance work takes time (and time is money) and also that the burden to keep everything working is on me (to be fair, I'd rather be the one in charge for this task than to let someone else doing it
anyway).

Last, but not least, consider having "hardware" backup; I mean, what are you going to do if next morning when you turn your computer on it don't actually turns on? Of course you do have backups of your important data (don't you?), but what about your hardware? How long it will take to be fixed? Are you willing to spend time on fixing it? Or do you have another computer that can be used so you can continue to work while someone else fixes it for you.

In the end of the day, you'll need to put some money on your office / infrastructure, so don't forget to take this into account.

That's it.

Bear with me ! We are approaching the end :)

See you

Adriano

Nov 2, 2008

Benefits of working from home - Part VII - Alone in the office

With this post I'll stop talking about the advantages of working from home and start to discuss some of the drawbacks related to this way of work.

(sorry for the subject, I just couldn't resist :)

Note that some points that I first took as an advantage may appear again, but this time, with a focus on possible disadvantages; this doesn't mean I've changed my mind (what I would say is perfectly normal); its just
the other side of the same coin.

I'll start with the most problematic one (at least in my case), working from home meant to loose almost all contact with my friends and coworkers. I remember it perfectly when I was being interviewed (through skype) and I was asked how I felt about working alone, 8 hours per day; honestly, at that moment I did think it would not be an issue, but sometimes it is a little bit lonely.

Since I was not bound to an office anymore, after 4 months we (I and my wife) decided that the time to move to a quieter, safer, less violent place had come, so we moved from São Paulo to Londrina; you see, most of my friends still live in São Paulo and even having some (good) old friends (and my wife's parent) here in Londrina I somewhat miss personal contact.

Another important aspect of working from home is that all discussions (at least in my case) are done through some IM software (be it skype/msn/etc) and this is considerably harder to do than when you are engaged in a face-to-face talking.

It's enough for the first "not so good" series... let me play a little bit of "Star Wars" on my Wii ;)

See you.

Adriano

Oct 30, 2008

Benefits of working from home - VI - Mange my time

Hi,

Have you ever needed to ask (embarrassed) your boss to let you leave early so you could go to the doctor or to address some personal issue?

Well, not have to do this is another benefit of working from home :) as (usually) you are in charge of managing your own time!

Of course this is not an "all or nothing situation". Even when I had a "traditional" job my bosses were kind (or intelligent) enough (I bet they were both :) to let me deal with my personal issues during my working time if that were necessary.

My point is that nowadays all I have to do is to get organized so I don't miss any meeting, pair session and/or a dead line and everything is fine :). It's even better as I can choose the best time (a time in which I'll get less traffic, that is not to hot, etc.) to do my personal stuff.

Thats it! Even though being far from a comprehensive list of the advantages of working from home, I finally reached the last (but not least) advantage I wanted to blog about. In the next posts I'll talk about some drawbacks.

Do you have any other advantages in mind? Please, share with us!


Best,

Adriano

Oct 17, 2008

Benefits of working from home - Part V - Show me the money

Wow.

I've always the feeling that my investment in computer hardware/software was somewhat a waste of money; you see, usually I get a pretty descent machine and stick with it for at least 3 years; so every 3 years I spend a lot of money to get a new one and I didn't get a direct return from my investment (not to mention that most of the day it keeps turned off), and to be fair, I should take internet connection fees into account.

Since I started working from home I may say that this is the first time I am getting a direct¹ (and measurable) return from this investment. It's even better, now it's easier to justify new hardware, software and other gadgets to the financial department, i.e, my wife :).

In other words, now my computer generates income and I feel compelled to invest more money to keep it up to date.

Adriano

¹ I mean, direct, because I always studied a lot in my home computers so, at least indirectly, they always gave me a financial return (even tough it is hard to measure how much return I got).

Oct 15, 2008

Running Sharpen tests faster...

As you probably already know :), Sharpen is a tool (developed by db4o) that aims at easing development efforts by translating java source code into C#. This tools make it easier to provide native solutions in either Java/.Net platforms.

While talking about how to run Sharpen test suite in this post I told that I'd show how to improve these tests startup time.

After a long wait, here it is. So let's go.


If you tried to run Sharpen tests you probably noticed that whenever you launch them a new Eclipse instance starts also (with it's full GUI) and this is one of the culprits for these tests to take longer than necessary to run. The good news is that it's (relatively) easy to configure Eclipse to not display any GUI at all (since all feedback will be given through the main Eclipse window).



To do this, once you checkout all required projects from db4o SVN, just Right Click sharpen.ui.tests project and select Run As / Run Configurations menu.
Now, in "Run Configuration" dialog,  right click on "JUnit Plug-in Test" and select New.


If you followed the previous steps, "Run all tests ...." should contain the right value (sharpen.ui.tests). Just make sure that you have the latest JUnit selected on "Test Runner" dropdown.




We are almost there... :)


The next step is to click on "Main" tab (1), then select "Run as Application" checkbox and select "[No Application] - Headless mode" in the dropdown (2) and finally, click "Run" button (3).


That's it :)


Notice that now sharpen test suite starts faster.

Many thanks to a great friend (Rodrigo) for sharing this information with me.


See you.

Oct 13, 2008

Benefits of working from home - Part IV - DIY

Hi!

How many times a developer approached you to ask something he/she could have
easily find by himself have he/she bothered to spend 10 minutes to do a google search?

And let's be fair, how many times you feel compelled to do the same? I have to confess that even being a firm believer of
"search before asking" principle, sometimes I do find myself doing the opposite: asking before looking for information.

And this lead us to this post subject: Working from home gave me more incentive to do "the right thing" :), i.e, to look for solutions prior to asking the guy next to me - after all there's no such thing as the "guy next to me" :)

At db4o we do exchange lots of information/knowledge but since we are not at the same room (and in most cases we are at different timezones also) it's more practical to do a quick search and try to fix/solve issues by myself. Only after spending some time in my own research I think about asking the gurus.
 

This attitude (searching before asking) leads to a better understanding of the subject and other developers will not be interrupted to explain. Of course (IMHO) there are times (and subjects) that requires someone with more knowledge to guide other developers.

Anyway, I do believe that the process of explaining some subject may help you to get more insight about it and I do appreciate helping other teammates to improve their knowledge (Nowadays I'm learning more than helping :).

What do you think?


Adriano

Oct 11, 2008

Benefits of working from home - Part VIII - Working Time

One really great advantage (IMHO) of "traditional work style" is that usually you have very clear separation between work time/free time. Basically your working day finishes as soon as you get out of the office (ok, I known, in development, many times the solutions come to our heads at home :).

Working from home is a very different experience and you can find yourself working a lot more than you'd expect/are willing to :(. The problem (again, IMHO) is that it's hard to separate the matters; you see, the work is there, you are there, and the rest you can guess.

Of course other factors like your productivity, how your manager and you decide on what to do and how long it is expected to last, etc. also plays an important role and can turn your working experience more pleasant or more like a nightmare.

In my specific case, I participate in deciding which tasks I'll be working on every week so I am the only one to be blamed when my working days extends a little bit.

And theres an aggravating factor: I am kinda addicted to computers/programming and sometimes I get so excited to see the outcome of my code that I can't just stop :)

So if you are going to work from home, pay attention to these pretty common pitfalls to avoid getting trapped into them.

See you.

Adriano

Oct 7, 2008

Benefits of working from home - Part III - Time efficiency

In my last post I was talking about not being required to commute to work and I pointed some related benefits.

Today, I'm going to talk about some more benefits (directly related to the previous one), so let's go.

As I explained in the previous post I used to spend 2 hours in traffic; well, since I started working from my home this was not an issue any more and not wasting my time on traffic jams made it possible to do other things (like sleep more, post more frequently, etc. :) and spend less money with gas, but (IMHO), more important than all, it made it possible to spend more time with my family.

Prior to joining db4o, I used to wake up at 7:00, take a short breakfast and drive to my work so I rarely joined my wife/daughter at breakfast. At lunch time I was not with them again (since it would take me 1 hour to go to home and another one to get back).

Now, even though I usually wake up at the same time, instead of having a (lonely) fast breakfast and going to my work I just go down to my office and start working (usually I put may email/web reading up to date) then 1 hour latter my daughter wakes up and we (I, my wife and my daughter) can have breakfast together. Them, at lunch time, we can have lunch together again :)

Pretty nice!

At the end of the day when my daughter returns from school I'm finishing my working day and we can spend a little more time together.

Well, as an interesting tv ad says:

Have a good breakfast: U$ 20,00; getting out to have a good meal: U$ 50,00; to be with your beloved ones at these moments: has no price! :)
See you!


Adriano

Oct 3, 2008

Benefits of working from home - Part II : No need to commute

In the previous post I just said I'd think aloud about advantages/drawbacks of working from home.

Let's take the half-full approach and present the advantages first starting with not needing to commute.

Well, before joining db4o I used to live in São Paulo - Brazil, so this point is pretty easy one ;)

Anyone that knows just a little bit about São Paulo knows that it has a very bad traffic! Usually, in the days that the traffic was not that bad, it used to took me no less than 1 hour from my house to my work place (and I was fortunate enough to not live that far from my job). So 2 hours of my life was spent in a car every
day.

Also, not being required to commute (and so avoiding traffic jams) made my expenses with car maintenance
drop a little bit and getting involved in a car crash less likely.

As a bonus of not commuting I don't have to find a place to park in a, usually, crowed place :)

So, IMHO this is a huge advantage.

The next post will be closely related to this one but I'll talk about my working time.

PS: Do you work from home? What are your opinion about the subject?

See you!

Adriano

Oct 1, 2008

Benefits of working from home - Part I - The dream job

As I posted here, some time ago (to be more precise, exactly one year ago) I joined db4o and started to work from my home; that was not an easy decision/move but (thanks God and some really good friends also) I took it.

Since one year has passed, I think it is a good time to review this journey and rethink whenever its paying off or not.

In the next posts I'll discuss (shortly) some advantages and some shortcomings (from my point of view, of course :) regarding working from home. The order in which these topics are presented has no particular meaning.

Keep in mind that my opinion is largely influenced by the place I live in, the environment I am inserted into and the kind of work I am involved with, so, what I see as an disadvantage you may well see as an advantage :). Don't worry, we are not supposed to agree on everything.

Another important point is that some teleworkers (as people that work from home are called) usually do work "part time" in a real office; that's not my case; I am working 100% of the time from my home and the nearest fellow is at least 100 Km (and the others are 1000 Km) away.

To start with, here are a couple of interesting articles to read.


Hope you find this information useful/fun :)

See you.

Adriano


[edit: added link to following posts]

  1. This post
  2. No need to commute
  3. Time Efficiency
  4. DIY
  5. Show me the money
  6. Manage your own time
  7. Alone in the office
  8. Working Time
  9. Infrastructure
  10. Epilogue

Jun 21, 2008

You are not paid to introduce bugs :)

Hi, Today's post is in the series "what is wrong with this code" but before presenting the actual problematic code I want to give some background, so bear with me. At Db4o we run migration tests (regularly) in order to guarantee that we are able to load (and query) databases created by older versions of Db4o engine. The way it's accomplished is very simple:
  • for each configured version, create an database using it and perform a series of tests with the trunk version.
Some time ago, I was asked to fix an annoying bug in these migration tests. In order minimize the time required to run these tests, we do not run then against every existing Db4o version. To allow this selective running we introduced a way to specify the minimum version to be tested so, if one want to test versions 6.0 and above it is a simple matter of setting a constant in a C# source:
private const double MinimumVersionToTest = 6.0;
At some point in the code we called the following function (wrong version):
double VersionFromVersionName(string versionName)
{
Version version = new Version(versionName);
return version.Major + version.Minor / 10;
}
This function is supposed to return the double representation of an assembly version (string) but it fails miserably (this code works correctly only for versions with a decimal value 0 (zero); for instance, 6.0, 7.0, etc). Now the question is, what's is wrong with this function? To be fair I have to admit that it's not a hard to spot bug, but when you are in a hurry and have no test for your test code... The problem is that version.Minor is an integer field and so,
version.Minor / 10
will result in a integer number and the decimal part will be happily discarded. The developer who wrote this code (me) is aware of language type conversions but he didn't notice the error
(shame on me) ; so whenever we passed a version number not finished in 0 (zero) we got the wrong double representation for it!
Actual VersionFunction Return
6.06
6.16
77
7.27
The fix? Pretty easy: Just add a ".0" to the divisor :) (I could also add an F: 10F)
double VersionFromVersionName(string versionName)
{
 Version version = new Version(versionName);
 return version.Major + version.Minor / 10.0;
}
The bottom line? T
his episode just highlights (and reminds me about) the importance of double checking our test code! after all, as a friend of mine likes to ask:
who test that the tests test what they should test?
Have fun. Adriano

Jun 3, 2008

Running Sharpen Tests

Hi.

If you start using sharpen, you'll probably find some limitation / bug and, maybe, want to take a look into the issue.


In this case the best approach (IMHO) would be to i) start a discussion in Sharpen Forum and, if
appropriated (in the case there's no issue filed already), ii) file a new Jira issue into our issue tracking system.

Next, if you have the time, iii) try
to replicate the behavior with a minimal test case. The last step iv) would be trying to fix the issue.

This post is all about iii, or to be more clear, on how to run / write unit tests for Sharpen.

Let's start by opening an empty eclipse workspace:



Next, open SVN perspective and add a new SVN repository pointing to

https://source.db4o.com/db4o/trunk/sharpen/


and checkout all projects.

No install the plugin (as explained here):
  • In package explorer (Java perspective), right click on sharpen.core and select "Export" from the context menu.

  • Expand the "Plug-in Development" folder and select "Deployable plug-ins and fragments".

  • Set "Destination" to the root folder of your eclipse installation and click "Finish";
Now you can run Sharpen Tests by right clicking on "sharpen.ui.tests" and selecting "Run as / JUnit Plug-in Test";


after some processing your screen should look something like:


When the tests finishes you should see 0 (zero) errors and failures (as of today, there's some issue with sharpen.builder and sometimes you will get 2 errors in its tests but these errors don't prevent sharpen to work properly and, as you can see, when I executed the tests the errors didn't showed up).

Now let's explore the general look 'n' feel of a Sharpen test. In package explorer expand the node sharpen.ui.tests then testscases.


For each sharpen functionality there will be at least one pair of files (collectively called Test Case Resource):
  • One .java.txt that stores the java source to be converted;
  • One .cs.txt storing the expected sharpened file;
In the above picture we are testing interface conversion. Take the time to poke around testcases folder checking some of the tests.

The next logical step is to add new tests. Basically to add a new tests we need to:
  1. Create the original java source (.java.txt)

  2. Create the expected cs file (.cs.txt)

  3. Plug these two files into the test engine. In the common scenarios, all we have to do is to call runResourceTestCase() function.

To see an example, just expand sharpen.ui.tests/src/sharpen.ui.tests folder and double click on NativeInterfacesTestCase.java.


In a future post (soon I hope) I want to take a look in a few other points such as:
  • Getting a little better performance when starting sharpen using the approach presented in this post.
  • How to debug sharpen.
  • A trick to see the expected / actual values (useful when creating new tests).
Thoughts?

Adriano




Jun 2, 2008

New programing language!

Hi! Today I got an "job opportunity" from one of jobs sites I'm registered (no, I'm not looking for a new job, I just didn't unregistered) with a really intriguing subject:
A skilled professional with 3 years of experience in C, Sharp and VB.NET.
I have to admit that I do know C and also a little of VB.NET, but I have never seen SHARP :) Ok, probably it was just a mistyping, but I bet the person who wrote this subject has no idea about programing languages whatsoever ;)