Monday, December 31, 2012

Pregnant, Working and Beyond

Sometime last October we found out that we are expecting a second bundle of joy.  It was not an accident.  We are very very pleased to expand our family.  =)

Unfortunately, this pregnancy is a lot harder than I remember the last one being.  Maybe it's because I know what to expect, that makes the road ahead seem that much longer and harder.  Maybe its because having a toddler to take care of makes everything just a little bit harder.  What I do know is that it has been tough going through my first trimester and adjusting to my new job.

Everyday I find myself desperately needing a nap.  Fortunately my company actually has a "quiet" room where I can go be quiet in a fairly comfortable chair and just zone out for 15-30 minutes.   Unfortunately this brief zone out is not long enough.  I find myself more in need of a 1 or 2 hour nap to REALLY help me recharge.  I wonder how I survived this the first time around?

I'm due in late June, and this time around I have learned my lessons on my rights as a full time worker in California.  Last time I did not take advantage of the paid family leave act, so most of my maternity leave was unpaid.  That was a big financial burden.  My friend wrote up a wonderful blog breaking down the details of maternity leave in california.  She included charts and everything!  The summary is:  We get 24 weeks, with 6 of it unpaid.  But all of it is job protected.  =) 

Check out her blog to see how it is broken down

Last time I tried to work until the very last minute, thinking that it would give me more time with the baby.  Now I see that it doesn't really matter, the amount of baby bonding time does not increase if you take your leave later.  So this time around I'm going to take off at 36 weeks, and use my left over energy to prepare the home and my toddler for the arrival of the new baby!


Sunday, June 3, 2012

How to Boost Company Moral - HIRE MORE PEOPLE!

Since I left my old company, a total of 4 other engineers have also turned in their two weeks notice.  This makes a total of 5 out of 12 engineers.  That is a lot of employees.  Everyone who leaves says that the people were great, but they had to go because morale is just too low.  So how can you boost company morale?

One way is to HIRE MORE PEOPLE!  First thing you have to do is to let the employees know that the COMPANY is invested in them and wants to help them succeed.  This doesn't mean providing cake every month, or paying for training.  Those are obviously nice things to have, but more immediately, it means hiring the right people to join the team.  If the company started hiring more people, then they might feel like there is a chance of a turn-around.  They would feel that the company is investing in them and is willing to take a hit in the short term to produce profits in the long term.

My old company has been running a skeleton crew for the last 2 years.  Over 1 year ago, an engineer left... and he has not been replaced yet.  I left over 2 months ago, and my position has not been replaced yet.  None of the positions vacated by the other engineers has been filled either.  This is very demoralizing for the people who are left.  Can you imagine walking into an office that was once bustling with people, but is now only left with mostly empty cubicles?  Can you imagine the desolate situation of having to pick up the projects and workload of 3 other people?  Everyone who leaves feels like they see no long term future in the company.

Second thing a company can do to boost morale is to let the employees know the WINS.  For example, let the employee know if that project they were working on has landed in a big sale.  Let all the employees know if we land a big contract.  My old company never did this.  The engineers were always kept in the dark, and never knew whether or not our work made a difference.

Sunday, May 27, 2012

Graphics for Mobile Apps or Mobile Websites

Recently I started playing with Inkscape.  It's a great FREE software that is similar to CorelDraw or Illustrator.  I've used to create a few simple cliparts.  I've also discovered that inkscape provides a gallery of FREE copyright/royalty free cliparts that people can contribute to or download from.

I'm pretty happy with it, so if anyone wants to explore their graphic artists side, check out their site.

I wanted to share my creations via a mobile app or maybe a mobile website.  And that got my wondering about what size and resolution these cliparts and pictures should be saved at for optimal display and download speed onto a mobile device?  Do I need to save different sizes of each picture to display correctly on my motorola cliq and my samsung galaxy tab?  

So here's some notes (mainly for my own future reference.

  1. I found this article about designing for mobile web to be educational in covering the basics.  It's written in 2008, so maybe there's new stuff to know about html5 and what not.   But I'm sure the basics of mobile web design has not changed.  Summary, keep your SIMPLE and LINEAR.  Not everyone has a 4G or even a 3G connection =P.  http://www.sitepoint.com/designing-for-mobile-web/ 
  2. Both android and ios prefers *.png over *.jpg. However, jpegs are much smaller than png. So for web images, stick with jpegs.  further information found HERE.
  3. For android development worry more about screen densities than screen size when it comes to your bitmaps.  There are 4 screen densities: low, medium, high and extra-high density.  
    • To generate these images, you should start with your raw resource in vector format and generate the images for each density using the following size scale:

Saturday, May 12, 2012

Android ShapeDrawable Tutorial - RoundRectShape()

I want to draw rectangles in my android application and discovered that ShapeDrawable is the tool I need to do it.  If you look through the provided Android demo's that come with your Android SDK you will find a ShapeDrawable demonstration.   .../ApiDemos/src/com/example/android/apis/graphics/ShapeDrawable1.java


I looked at it and played around with it to better understand the ShapeDrawable library.


Below is the code snippet pulled from ShapeDrawable1.java

float[] outerR = new float[] { 35, 35, 35, 35, 0, 0, 0, 0 };
RectF   inset = new RectF(6, 6, 6, 6);
float[] innerR = new float[] { 12, 12, 0, 0, 12, 12, 0, 0 };

mDrawables[4] = new ShapeDrawable(new RoundRectShape(outerR, inset, innerR));


So let's focus on the parameters on RoundRectShape().

  1. inset defines the shape of the rectangle that will be inside our RoundRectShape.  It basically defines where the left side, right side, top and bottom of the rectangle will be.
  2. outerR defines the the radius of the outer corner of the RoundRectShape.  So in this case, we've defined the top left and top right corners of RoundRectShape to have a rounded corner of 35.  The larger the numbers, the curvier your corner will look.
  3. innerR defines the radius of the inner corner of the RoundRectShape.  Once more, the larger the numbers, the curvier your corner will look.
I recommend you try changing the numbers on your own to get a better feel for what the numbers of outerR and innerR do.  

I still haven't figured out how the PathShape works. When I do, I'll add it this blog.

Saturday, April 28, 2012

Android Graphics Manipulation

I've started try some more Android projects recently. I'm pretty confident in my abilities to create form based apps. They might not be very pretty, but they are functional. I wanted create something more FUN!

Any idiot programmer can understand the basics of creating forms, submitting forms, and manipulating data. But to REALLY be a useful apps programmer, I'm going to need to know how to manipulate graphics to create a good user interface. Once you know how to manipulate graphics, you're on your way to developing mobile app games!

 I wanted to divide the app screen up into 9 squares, and then have the squares change colors each time you tap on it. I thought it might be a fun little app to keep my daughter entertained. Little did I know that with my limited " android-canvas" experience, this was a very difficult task to achieve. So I went back to square one, and looked up some nice 2d graphics tutorials.

Here are the links to what I found.
This "Playing with Graphics in Android" tutorial is very easy to understand. What I like most about this tutorial is that I can see how each step in the tutorial can apply to future apps I might want to write. I'm on part 6 of the tutorial so far and I haven't found any bugs yet.
playing with graphics in android part1

This link goes to a website about how to write/design "game loops." I think the name itself is pretty self-explantory. Anyone who wants to write a good mobile-app game is going to want to know how to design a good game loop. This website is written by a game programmer who promises to enlighten you with his insight.
Dewitters Gameloop

Friday, April 13, 2012

Impression of my job after 3 weeks

After 3 weeks on the job, I think I have started to settle in.  A few perks at my job that I discovered which I think are WONDERFUL.
1.  A masseuse visits the office every Tuesday to offer 40 minute table-top massages for only $25!
2.  A restaurant comes every Thursday to offer $5 taco or enchilada plates.
3.  I can make reservations at the very exclusive Club33 at Disneyland
4.  During Baseball season, there are free ticket giveaways to the MLB games.
5.  Human Resources is on site, and they are getting me a new office chair!  YAY!
6.  A lot of the human resource and administrative forms are available on a intra-website and can be turned in electronically.

What's not so good?
1.  The code has almost no comments in it.
2.  There are no debugging tools being used to step through the code.
3.  It seems like my manager is the one who wrote everything and so he is the one who has transfer knowledge to me. Unfortunately he's very busy so when he brain dumps, it's fast and furious!  There were quite a few times where my brain started drifting off at the 90 minute mark.  I think I need to work on my ability to focus.
4.  There are no free boxes of kleenex to use.  My allergies are acting up, so I have had to blow my nose using the tissue paper in the bathroom.  I think that is kind of gross.  I have brought tissue paper from home to address this last nit-picky issue.

Over all I think this is a good company for me to be at for now.  

Monday, March 19, 2012

First Day of Work- What are good signs? What are bad signs?

The new company I work for is much larger than my previous.  I'm sure the company isn't perfect, but from my impressions on the first day... I'd say it's a good place to work.

Why?

  1. My manager walked me around the company showing me the layout, introducing me to everyone.  (This is in spite of the fact that he had walked me around the company during our interview 3 weeks ago.)
  2. The company has a checklist for the manager to go through for new employee orientation, to make sure that the new employee has all the basics covered.
  3. The entire company's process' and forms are available on an intra-website. 
  4. My manager spent at least 1 or 2 hours going over the product road map with me.  He says that he will probably spend an entire morning in the near future to teach me their design philosphy.
  5. The VP of software spent at least 30 minutes talking to me about the industry technology, their competitors, and showing me a tour of the company. (Yes, it was pretty much the same tour my manager took me on. But still, it shows that they want me to integrate and become comfortable as soon as possible.)
  6. A few coworkers even made conversation with me or dropped by my cube to say "hi" and told me that the company had a very low turn-over rate.
  7. IT seems to have a good inventory of all the software tools that engineering needs.

My last company was a nice place to work when I first started.  But in the last year or two, it had really gone down hill.  No one bothered to say "hi" to the new people because things were so unstable. For example: during the last round of restructuring, a process engineer (who had just been brought on 6 months ago) was let go.  And also, a lot of the installation CD's for the software tools were all missing which made building a new development system very difficult.

A few bad signs that I noticed, but am not too concerned about.

  1. My manager complained that upper management never lets him properly develop software. Even in the most recent product, they want to just dump existing 15 year old code base onto the new platform.  Obviously that is not a good thing to do in the long run.  This is what my old company did... and it was very difficult maintaining that spaghetti logic.  It seems like it is a common problem anywhere in a marketing driven company.  I hope my manager is able to win the fight and get the product developed correctly.

All in all, I'm quite optimistic about my new company.