Categories
Career Growth Community

Knowledge for the sake of Knowledge. (or not)

A co-worker shared this article/link below today about what Ph.D is about; prompted by a discussion on productivity, personal ambitions, continuing education.

The Illustrated Guide to a Ph.D by Matt Might

But I might have had a different take away. This to me a good reminder on why you seek out knowledge: (assuming you do)

* knowledge for the sake of knowledge?

* knowledge to buy the luxuries of life?

* knowledge to buy you way into fitting in?

* knowledge to do something different, better for someone other than yourself?

whatever your reason is, you are entitled to it (there is no right nor wrong answer) but as the article says “Keep pushing,”

yet don’t forget to ask yourself why

or maybe the better question we should ask is, “what do I use my knowledge for?”

Categories
Tools and Utilities

switched home pc from vista to ubuntu

i have a > 5-yr old thinkpad t400 with windows vista business and noticed that time was taking it’s toll on it so started rescue and recovery (thinkvantage blue button)

rescue and recovery has started for a minute when I remember that it might be a good idea to disconnect some of my license keys etc (itunes disconnect accounts, and other software i have) and luckily there is a cancel button in the progress bar.

or not… lucky enough
i clicked on cancel then it restarted
then windows is broken (cannot load winload.exe etc etc)
cannot even get to thinkvantage again (apparently it uses windows boot to get there)

so i needed to recover my windows vista:
* i did not have rescue and recovery disk (yes, i know i should have)
* but my DVD/CD reader/writer is no longer reliable (did i say time has taken it’s toll)
* i have no vista CD (even if i had my CD drive is not working)

so seems i have these options:
1- get a new CD/DVD drive then find a recovery CD (any variant of windows i guess should work)
2- have bootable USB with Windows 7 (implies that i have to have windows 7)
3- take a leap of faith and install ubuntu

I was able to borrow a windows CD then figured I should give my CD drive a chance. Slowly creeped it’s way into the recovery mode but never got there. So ok, maybe I should go for USB bootable Windows 7 tomorrow (need another PC for this).

Or…. try Linux from USB if it will work fine on my machine. And so I did and it worked (fast….) and shutdown fast too. I was left with no choice but to switch (well not really, I left my Lenovo recovery partitions in case I could fix Vista later on)

So this is now being written on Ubuntu 12.04 LTS Desktop. And so far so good.

Except:
1- no native support to stream Netflix instant videos (since they run Silverlight) but was able to find Netflix Desktop (seems to be WINE + Silverlight + Firefox)

2- no GotoWebinar support (no easy work-around so instead of spending time I just used my iPhone for now).

the new journey with Ubuntu continues…

Categories
Community General

DMV behind-the-wheel driving test in Fremont, CA

Passed my behind-the-wheel driving test today in Fremont, CA DMV (Department of Motor Vehicles) [4287 Central Avenue, Fremont, CA 94536]

Sharing a thing or two about the experience and what could be useful to others.

Written Test and Permit (pre-requisite to the actual driving test)
Before you can take the behind-the-wheel driving test you have to pass the written test and be given a temporary permit (good for 90 days of writing).
Rather than discuss here, I would suggest you go to DMV website and read about Drivers License application

After reading the requirements and ready to take the written test, make an appointment (I haven’t tried walking-in but from the looks of the line I would highly recommend making an appointment).

Preparing for Behind-The-Wheel test (aka actual driving test)

  1. Have a car to use for your test.
    • DMV will not provide you a vehicle so if you don’t own a car, you can borrow from a relative or rent a car.
    • But the vehicle must have:
      1. valid car registration (as the driving test date)
      2. car insurance (or named non-owners insurance – particular on liability)
    • I rented a car from Enterprise to use for my test. If you do this too, make sure you tell the rental company that you will use this for DMV behind-the-wheel test so they can give you a letter stating you are allowed to use the car for the test. Also my examiner looked for the rental receipt/document and when he saw that I did not accept supplemental liability protection I had to show him my StateFarm named non-owners insurance. I got one since although I don’t own a car I sometimes drive friend’s, relative or the company car and want I have my own liability insurance (by the way, renters insurance usually does not include damages caused by motor vehicles)
    • Depending on the availability of the car you will use, you can now then schedule an appointment
  2. Schedule an appointment (through their website)
    • Behind-the-wheel is by appointment only
    • I could not do it online then (getting an error) for some reason but when I called DMV (1-800-777-0133)
    • If you’ve driven before (e.g. foreign license) then I would suggest you make appointment right away. The closest DMV office to your area might not have an available behind-the-wheel appointment. Since I live in Mountain View, the closest one were Santa Clara, San Jose, Los Gatos, Fremont.
      • I took my written test in Los Gatos (everyone was nice, not too crowded and went smooth up until the correction of the paper – where I had to wait for almost an hour to get the paper corrected)
      • Why Fremont for behind-the-wheel:
        • Co-workers suggested that it’s relatively easy here compared to others (whatever that means)
        • The earliest that had available schedule
        • Not Los Gatos since there are more uphills and sometimes the roads are narrow then becomes wide etc
  3. Know the area (possible routes)
    • Test examiner will give you instructions along the way but it helps to be familiar with the area (especially if you don’t live in the area)
    • I got my most helpful information from this blog post – Akbar’s Home on the Web
    • Know that no one can predict the routes (but getting familiar with the common ones will help). Since my appointment was a Monday, I went to familiarize with the area the day before that. There were others there too, practicing and scouting the area. I will the route I ended up below.
  4. Day of the appointment
    1. Get you documents ready (your permit, car registration, insurance) and a pen could be handy
    2. Come on time (at least 20 mins before) – parking in that DMV could be hard to find
      • make sure you feel well, ate well, well hydrated (or anything that could cause discomfort)
      • also helps if someone can go with you (if you haven’t had a foreign/another state license then this is a must) since you can’t drive to DMV with just your permit (and without being accompanied by another license holder)
    3. Go and line up at the behind-the-wheel appointment line (as of today was at Window 11). There will be a marker above the window that should give you a hint.
    4. Once you get approved for the actual driving test, you will be asked to get your car to the back (line up on the left side) then wait for your turn
      1. Before you go to the back (and as a best practice, make sure your seat adjustment is comfortable, mirrors are set properly. When I took my foreign drivers license this was actually part of the driving test but in here in CA it doesn’t seem like it (nevertheless do it for your own safety before it’s too late/too risky to make adjustments)
      2. I waited for may 30+ mins for this one (this is when a company could be helpful – the wait could get boring – but during the actual driving it should only be you and the examiner)
    5. Once it’s your turn then test time. Greet your examiner with a smile (not scored in the test but that should be nice). Then there are two parts:
      1. Pre-Drive Checklist
        • basics functions in your car (know where and how to control)
          • windows
          • mirrors
          • turn signals
          • brake lights
          • flashers
          • headlights
          • wiper
          • horn
          • parking brakes
          • defrosters
        • also know how to turn your car key without starting the engine (accessories only > on)
        • arm signals
        • seat belt (since you drove up to the test area, you should already be using it)
        • when the examiner comes in make sure he/she uses the seat belt, if not ask politely
        • examiner will also hand you a piece of yellow cardboard/paper (laminated as of my time) about what will take place (e.g. instructions will be given a long the way)
      2. Actual Driving
        • Examiner will now ask you to start driving (in my case move to the right to exit the DMV to the right)
        • He/she will not trick you (that’s written in the yellow paper mentioned in item#1) so be alert but take it easy, relax
        • This is the first test, leaving that area will require you chase to the next “lane” so make sure you check your mirrors and look over your shoulder (you should know this by now)
        • When exiting DMV make sure you signal of course and stop to check and make sure you exit safely.
        • If examiner asks you to turn right, then exit in a way that you end up in the rightmost lane (that is, do not cross two lanes and end up in the middle lane). If examiner asks you to exit left then turn right, then make sure you end up in the right lane closest to the middle first then slowly move to the right (looking over the shoulder again as best practice) then make your right. Then just follow along, constant/reasonable speed and below the limits indicated, you’ll be alright.
        • At some point (in the residential area) he will ask you to park at the curb (side of the street). Just a regular parallel park (not in between two other vehicles – there wasn’t a lot during my test). He/she will not trick you but make sure to:
          • look at your mirrors, then over your shoulder to make sure you can safely park
          • straighten you parking and try to be within 18 inches away from the curb (more or less – no need to be very accurate but at least not too far, not too close)
          • examiner then asked me to do a straight reverse (make sure you do not hit the curb). Follow best  practices when backing.
          • then examiner asked me to get back on the road, as usual, look over the shoulder and get back on the road safely
        • Proceed and follow along the instructions and you will be fine. At the end you will be back at the DMV to do a diagonal park, then you will know if you passed or failed.
        • When you pass the test you will be asked to go back to Window 11
        • Make sure you check your name and address properly
          • this turned out bad for me – I have two first that ended up with no spaces so ended up with just one firstname lumped together – make sure the staff will get it right before you give a go signal to finalize it

My route

remember there are too many possibilities for routes (depending on examiner, his/her mood, traffic conditions etc). so familiarize but you should only take the test when you’re comfortable driving even if you’re directed to an area you’re not too familiar (or at least you can pay attention and react accordingly to traffic rules/signs)

dmv.behindthewheel.fremont

 

 

 

 

 

 

 

 

 

  1. come out of DMV on Dusterberry Way turning left (get to the center lane first, then move towards the rightmost lane)
  2. turn right towards Central Ave
  3. turn left on Glenmoor Dr (there were speed bumps here – examiner told me one could go over the bumps at most 20 mph)
  4. turn left on Mattos Dr
  5. slight left on Palmer Dr
  6. turn right on Argyle Rd
  7. turn right on Central Ave
  8. turn left on Fremont Blvd
  9. turn left on Peralta Blvd
  10. turn right on Dusterberry Way
  11. turn right on Thornton Ave (no right on red on certain times – watch out and read the timings if red light is on – unfortunately I couldn’t read it earlier – seems to be 7AM-9AM then 1PM-3PM not sure but wasn’t red when I got to it)
  12. turn right on Fremont Blvd
  13. turn right on Central Ave
  14. turn right on DMV (before Dusterberry Way) then park

Checklist/Tips/Reminders – there are too many in the handbook but having a few here relevant to the area

  • turns, merging
    • always
      • signal
      • look over mirrors
      • look over your shoulder
    • when turning, if you start at the inner lane, end at the inner and if you start at the outer lane, end at the outer lane (i.e. do not cross lanes while turning)
  • yield
    • green circle is not a protected turn (let oncoming traffic pass)
    • there were places where left turn should only be if the left green arrow is lit
    • always yield to pedestrians
    • yield signs
  • stop
    • stop at red light
    • full stop at intersections with stop sign – FULL stop – not partial stop
    • stop before the limit line

Good luck!

Safe driving practices and following rules are not only for test purposes, follow them even after you get your license. It would make the road a safer place to be and as they say “the life you save could be yours”.

Though car-free life style is still in my opinion better in most cases (healthier, cheaper) I would still say – happy driving!

[RG]

Categories
Career Growth General

sushi, software and success

Just finished watching Jiro Dreams of Sushi  – a film about Jiro Ono, a 85 year-old sushi master and owner of Michelin 3-Star restaurant Sukiyabashi Jiro, on his continuing quest to perfect the art of sushi.

“Once you decide on your occupation,” says Jiro, “you must immerse yourself in your work. You have to fall in love with your work. Never complain about your job. You must dedicate your life to mastering your skill. That’s the secret of success and is the key to being regarded honorably.”

Reminds me of a lot of things I try not to forget:

1- make a choice, then move full speed ahead

2- you must love what you do (otherwise find another one)

3- excellence and quality

4- art

Just around the time when I am in the process of reading Seth Godin’s book Linchpin. Probably safe to call the master sushi chef the linchpin that ties together vendors (shrimp, fish experts) and the rest of sushi hungry and foodies of the world.

I would recommend this movie to everyone. Most especially to my fellow technologists.

We don’t have to learn how to make sushi but we definitely could learn a thing or two on how to make software/products that can make everyone say “Ahhh……”

Jiro_Dreams_Of_Sushi_2011_DVD_Cover

Categories
General

Happy New Year, New Blog for 2013

happy new year
happy new year

The past year (2012) has been a year full of new things for me.

Now ready for new ones up ahead for 2013 and hopefully I would be able to share more about the small things and learning that comes my way.

Happy New Year everyone and may your 2013 be full of great things!

Categories
Career Growth

Job Opportunity – UX Developer for Next Generation Marketing Analytics Cloud Application

We are looking for ambitious User Experience engineers that wants a new highly graphical, easy to use, multi-device cloud data management and processing for business intelligence and predictive analytics application.

Role: To be key engineer implementing a new highly interactive, data intensive cloud service for or business intelligence and predictive analytics application. This service will be use by a variety of users, many of them marketers which will put high demands on graphics, interaction and design. It will need to be built to that we can support multiple devices. The person in this role will have a strong influence on technology strategy and implementation, and work closely with skilled graphical designers.

Required skills:
* Strong HTML, CSS, Javascript skills.
* JSON experience
* Experience with interactive (AJAX) user interface implementation.
* Experience integrating with RESTful web services from javascript
* Architectural and design experience is building software that is maintainable and reusable.

Desired skills, skills that would be an additional benefit:
* Experience with HTML5.
* Experience with iOS and Andriod development.
* Experience with highly graphical user interfaces.
* Experience with data visualization.
* Experience with user interface code performance measurement and optimization.

Experience:
* We are looking for people with different levels of experience, anything from freshly out of college to experienced developers may be a fit.

Categories
Career Growth

Job Opportunity – .Net UX Developer for Marketing Analytics Cloud Application

High impact project for ambitous .Net UI developer

Profile :

Self-motivated with a passion for Web development and UX implementation

Role : Update the agilone user interface.The design has already been completed;

Required skills:
* Ability to interpret and fulfill the Designer’s vision for sophisticated UI and high performing applications.
*  Creative individual with a strong sense of style, detail oriented down to pixel-perfect implementation
* Self-motivated and able to work effectively with minimal instruction and supervision,
* Strong HTML, CSS skills
* Strong client side scripting skills (Javascript, Ajax)
* Experience with developing UI on ASP.Net (C#)
* Experience with cross-browser UI development.

Desired skills, skills that would be an additional benefit:
* 3-5 years of hands on experience with UI development.
* XML, WebServices
* Experience using version control systems (SubVersion)

Other:
* We are looking for a contractor, or an employee. If it is an employee the person also need to fit the following profile: UX Developer

Categories
Agile Career Growth Tools and Utilities

remove/delete svn folders

Since I’ve been using SVN and stumbled upon this technique I’ve also been using since then

This is one of the many (but easiest way) to remove SVN folders (.svn) recursively from a given folder. Effectively “unbinding a folder from SVN

Follow these easy steps: [more]

1) download this registry file : DeleteSVNFolders.reg (313.00 bytes) – see below notes for more information (security issues/verification and code source). I urge you to review them but if you don’t want to worry about the details and trust me enough then please go ahead and download.

2) double click on the file you downloaded

    you will be prompted to confirm that you really want to perform the action (differs depending on your OS). just continue and should all go well you will have a successful message/dialog

3) then to see it work go to the folder you want to remove the .svn folders from, then right click it

you should see the “Delete SVN folders” menu item

4) Click the said menu item and the .svn folders will be removed (there will be a command window that will show up displaying progress too – though if the folder structure is not that deep enough it might disappear very quickly).

 

And you’re done

** Notes

1) altering your registry not for the faint-hearted and you’d have to trust the author/publisher. In this case I do and I have been using it for years

    and if you could also look into it (edit e.g. notepad or text editor) and understand what it does if you want to make sure you’re not letting it do something you don’t want

    i have taken this from : Jon Galloway’s Shell Command – Remove SVN Folder and simply created the reg file to be downloadable (for those who are not so confident on how to deal with reg files)

Categories
Data

more sql performance tips

As most of you know the general rule in performance tuning is …..

“measure, measure, measure” and “measure again”

But it doesn’t hurt to give out some warning signs from time to time. And here goes two: [more]

1) be careful in doing anything fancy on JOIN predicates (that is the condition in the “ON” section)

   most of the time anything more complex than comparing one columns from each of the tables being joined will have some performance impact.

   again measure, but in experience I find that even creating a common table expression, or a subquery to come up with the derived column and use it to join is faster than doing it in the JOIN predicate.

   also, the less columns involved in a JOIN the better.

2) always prefer set operations than row-by-row operations

    for the same reason that cursors should be avoided

    what many don’t know however is that if you have a UDF (user-defined function) used in a SELECT query result set then that function will be called for every row and thus there will be an overheed. Again measure but for performance sensitive cases it will be significant.

     so if you have to squeeze out any performance gain you can have then get rid of the function if you and although redundant have the logic on the query itself.

     maintainability wise this is not advisable. so you have to feel the trade-off here

     For example:

     SELECT fullname = dbo.GetFullName(FirstName, LastName) FROM Employee (NOLOCK)

     regardless of the complexity of the GetFullName function’s implementation would be slower than having it handled in the query directly. say

     SELECT fullname = FirstName + ‘ ‘ + LastName FROM Employee (NOLOCK)

Hope to share more soon. But again, don’t forget, measure3x

Categories
.NET Business Intelligence

adding custom SSIS transformation to visual studio toolbox fails

Just very recently I encountered an issue in deploying a custom SSIS component assembly where I cannot add a custom SSIS transformation to the Visual Studio toolbox.

It turns out to be a relative “no-brainer” error if only the clues were more straightforward. Basically after deploying the assembly I could not find my component listed in the “SSIS Data Flow Items” tab list. [more]

There are a number of articles available online on creating custom SSIS objects (control flow tasks, source, destination, data transformation etc).

Here are a few :

Extending SSIS Part 1 – Creating a Custom Data Flow Transformation Component

Developing a Custom Data Flow Component

Developing a Custom Transformation Component with Synchronous Outputs and searching say using keyword “adding custom SSIS transformation” should return more.

 

At Agilone, we’ve been developing SSIS components to complement our products and one of the issues I’ve faced recently is when I was deploying the custom SSIS components (the assembly) and it’s time to add it to the toolbox (Choose Items > SSIS data flow items tab (since the component was a data flow item)) I was unable to see the component (or any component on the assembly I just added to GAC and the PipelineComponents folders).

I tried these (in different orders and to no avail but for completeness including in the list):

1) close BIDS (Visual Studio Shell) or reset toolbox and close BIDS

2) uninstall the assembly in GAC and reinstall the assembly in GAC

3) make sure that assembly is on the correct folder (e.g. DTSPipelineComponent – here are more details on deployment and testing – Deploying and Testing Custom SSIS Components)

4) restart SSIS service

5) reopen the project and try to re-add the component in the toolbox again.

As mentioned it didn’t do the trick and took me sometime to figure it out.

It turns out that there was a problem with the assembly. I built the version referencing some SQL 2005 libraries (DLL), specific version = true and when I deployed it to that server (which only had SQL 2008 DLLs) it failed silently and simply didn’t appear on the “SSIS Data Flow Items” tab.

There are more complex ways to figure out why it doesn’t appear in the said tab but I would like to share the more straightforward one.

After the step where you clicked Choose Items (for toolbox) when the dialog window appears instead of changing to the “SSIS Data Flow Items” tab, stay on the .NET Components. And then click browse and browse for the assembly which contains your custom SSIS component

If the assembly chosen doesn’t contain an SSIS component then it will say so.

However if the assembly contains errors (e.g. missing referenced assemblies among others) then it will also show an error dialog saying so.

That’s it. I hope it helps and saves you some time (since I wasn’t able to find this information quickly – for a good “googler”)

And for the more “complex” method I believe you can you fuslogvw or similar assembly binding logger/monitoring tool to figure out any issues on assembly binding (missing references) such as the one I encountered. But I suggest doing he “browse” test first before exploring those debugging techniques.

And finally, of course as for any project check that you have the right assemblies referenced, whether you want specific version true/false and make sure that all dependencies are in place.