
Me and my wife will be at the Code Camp in Fullerton tommorow and we are excited. Code Camp is a great time to get together, learn new things about technology and network with people with the same mindset about technology and that is passion for learning and enriching knowledged. We are driving tonight to Fullerton so that we can be early tommorow.
There are already a few sessions that I am eyeing to go to. One of them is the session of John Bowen regarding WPF DataBinding and WPF controls. I met John Bowen 3 years ago in the .NET Rocks roadshow bus. I think this session is going to be awesome. I've been playing with alot of WPF lately and I'm interested in seeing and learning cool things about this technology.
Another session I'd love to see is the topic "Branching and Merging Guidance for VSTS 2008 and Team Foundation Server" presented by Mickey Williams. I haven't done anything with VSTS before but I know its going to be a great primer for me because merging and branching is one of the things that happens alot when you are in a team development environment.
Oh boy! This is going to be a great Code Camp. Time to go home and get ready for this event. See you there!
I just saw this because Jojo Paderes had his status in GTalk pointing to this link.
According to Mercer, the Philippines is still one of the cheapest IT outsourcing destination in the world. The figures states that as of 2007 IT Managers in Manila only earn $22,280/year on an averaged ranking third compared to Switzerland, the highest paying country which has their IT managers average a whooping $140,960/year[link].
|
Figure 1* |
| IT Manager: 10 top-paying countries (various currencies) |
| |
|
Local |
USD |
EUR |
GBP |
| 1 |
Switzerland |
176,920 |
140,960 |
110,990 |
74,150 |
| 2 |
Denmark |
722,310 |
123,080 |
96,890 |
64,750 |
| 3 |
Belgium |
95,380 |
121,170 |
95,380 |
63,760 |
| 4 |
UK |
62,180 |
118,190 |
93,090 |
62,180 |
| 5 |
Ireland |
85,200 |
108,230 |
85,200 |
56,950 |
| 6 |
US |
107,500 |
107,500 |
84,650 |
56,550 |
| 7 |
Germany |
84,020 |
106,730 |
84,020 |
56,160 |
| 8 |
Canada |
106,000 |
93,860 |
73,870 |
49,370 |
| 9 |
Hong Kong (China) |
702,720 |
90,340 |
71,120 |
47,530 |
| 10 |
Australia |
115,480 |
88,850 |
69,950 |
46,740 | |
| Figure 2* |
|
| IT Manager: 10 lowest-paying countries (various currencies) |
|
|
Local |
USD |
EUR |
GBP |
| 1 |
Vietnam |
15,470 |
15,470 |
12,180 |
8,140 |
| 2 |
Bulgaria |
34,25o |
22,240 |
17,510 |
11,700 |
| 3 |
Philippines |
1,106,700 |
22,280 |
17,540 |
11,720 |
| 4 |
India |
1,120,490 |
25,000 |
19,680 |
13,150 |
| 5 |
Indonesia |
289,155,000 |
31,720 |
24,970 |
16,690 |
| 6 |
China (Shanghai) |
265,810 |
33,770 |
26,580 |
17,770 |
| 7 |
Malaysia |
129,930 |
35,260 |
28,040 |
18,740 |
| 8 |
Czech Republic |
791,430 |
35,880 |
28,250 |
18,880 |
| 9 |
China (Beijing) |
285,130 |
36,220 |
28,520 |
19,060 |
| 10 |
Argentina |
133,040 |
43,180 |
33,990 |
22,720 | |
| Figure 3* |
Figure 4* |
| IT Manager: 5 highest paying positions in Asia |
| |
|
Local |
USD |
| 1 |
Hong Kong |
1 702,723.00 |
90,344.03 |
| 2 |
Australia |
2 115,483.00 |
88,846.75 |
| 3 |
Japan |
3 10,347,000.00 |
87,638.17 |
| 4 |
South Korea |
4 69,374,000.00 |
74,022.62 |
| 5 |
Singapore |
5 104,127.00 |
66,615.70 | |
| IT Manager: 5 lowest paying positions in Asia |
| |
|
Local |
USD |
| 1 |
Vietnam |
1 15,473.00 |
15,473.00 |
| 2 |
Philippines |
2 1,106,700.00 |
22,281.05 |
| 3 |
India |
3 1,120,486.00 |
24,996.90 |
| 4 |
Indonesia |
4 289,155,000.00 |
31,721.24 |
| 5 |
China - Shanghai |
5 265,814.00 |
33,768.74 | |
*Note:
-
Average total cash compensation includes base pay and annual bonus.
-
Foreign exchange conversions were made as of November 2006.
-
Source: Mercer: 2007 IT Pay around the World. |
You can treat the numbers above in different ways... either Manila is not getting the big piece of the pie because we are undervalued (considering that we are the largest english speaking nation in Asia) or... That we can attract more companies to outsource to Manila because we are talented and cheap enough to do projects for other countries which means a larger economic growth for our country.
I think the numbers above would fluctuate specially knowing that the US Dollar is currently in a slow decline and Euro starting to dominate the markets.
The Philippines has a great talent pool when it comes to IT and most of the them work hard to hone their skills even if they don't get paid that much. That's what I call responsibility and commitment to bringing ang building a world class application from a truely world class workforce.
Hayy, I hope Manila gets a bigger piece of the pie :( Till then, Mabuhay ka Filipino Developer!
I was explaining the benefits of outsourcing projects in Manila today to someone who has a huge project.. probably between 1 year to 2 years of development amounting to atleast $50K for the initial concept. He asked me to help him find a suitable outsourcing company preferrably in Asia. I then made a push to have him look at several company's in Manila which he agreed... what i did next was show him a website of a known development company. He read everything and browsed every page on their site to get more information about them. We were having a great conversation and I think he ha already decided that he is going to contact this one company but then he decided to look at their methodologies section... there he noticed something that he didn't like about the website...

"Some comment?" What? Nice coding standard there buddy.
I mean, come on! If you are posting a code snippet to an ad atleast make sure that the code looks good and follows your motto "Code of Discipline" because to tell you frankly it makes your company look bad when you don't QA what you push to visitors even if it's just an image.
In the end, he got turned off and asked me to show him a different outsourcing company.
Sad. Sad. Sad. A missed opportunity.
"Nobody should tell you what you want to be in life. Stick with your dream and don't let anybody tell you that you can't make that dream happen."
"...I told my family that I want to be a Software Developer that's why I keep on reading and studying about new programming technologies. But my family objects, especially my mom. They don't want me to study. They just want me to pick whatever job and stick to it. One day, they even kept my programming books in a locked shelf. Imagine, they don't want me to be a programmer..."
I had the same situation more than 3 years ago when i got here in the US. You see, I was a developer in Manila before my family decided to move to the US for a big outsourcing company doing VB6, VB.NET, C# and ASP. I was a Web Administrator for a real state firm before that(doing classic ASP and PHP) and a Analyst Programmer Trainee when I was in college. But almost everybody in my dads side of the family thinks that i should be a US Navy. They said that i can't find any developer job here in the US because "I graduated in the Philippines" and that i can't use my degree because the school that i can from has a curriculum that isn't recognized by the academe in America.
My heart was broken after hearing that from several people... it's hard to accept that what you have worked hard on for 4 long years wont amount to anything in another country. Alot of people told me to give up my dream and just "settle for what's on the table" which means that i just need to take what i can and not live up for my aspirations.
Hearing those kind of opinion specially coming from your family members is somewhat dishearthening.
At first, I was discouraged. I wasn't mad at them at all but i didn't believe what they told me. I knew that I can accomplish my dream if i work and pray hard for it. I worked doubly hard going to the library to read a book everytime I can. I would even borrow books and rigorously read them till i fall asleep. I didn't had the chance to bring my development tools at that time because i was advised not to bring my CDs so i ended up downloading everything all over again via a 56kbps line. I was lucky enough to find SharpDevelop and that's how i started honing my skills in C#(and VB.NET). Everyday I gain more and more confidence in myself knowing that every tear and pain is a step towards my goal to become a Software Developer in the US.
My first job interview was a disaster. I was sweating like a sheep and so nervous that i dabbled every word I spoke. I knew all the questions they asked me but i wasn't able to communicate well enough to merit me as a valid candidate for the position. I knew right there and then that I failed the job interview. I was sad but held my head up high knowing that I needed that stab so I can be better.
I became event more confident after that faithful event. Taking every piece of experience i learned from it as part of my comunication toolbox(and that is speak clearly, be yourself and don't sweat like you don't know what you are talking about).
I prayed harder too knowing that God has something prepared for me in my future and I was right!
After a month of applying and staying long hours sending my resume our home phone rang with someone on the other line bringing me a message... I was hired and they wanted me to start that week. After putting the phone down i started shouting like crazy. It was so sweet to let that out of my chest that finally, my dream is coming true.
It's been more than 3 years ago since that faithful day. I smile everytime I think of what I have accomplished even with almost everybody saying that I can't be who I want to be. I knew God has promise for me and that it would happen if i work hard and continue to believe Him.
And it did :)
I believe that nobody should tell you to stop dreaming. I believe that you can accomplish anything you want as long as you put your mind, body, heart and faith into it. Anything is possible as long as you work hard, believe and put your trust in God.
Through that battle I held a verse in my heart which I'd like to share to you:
"Have I not commanded you? Be strong and courageous. Do not be terrified; do not be discouraged, for the LORD your God will be with you wherever you go."
Joshua 1:9 - taken from the NIV Bible
So I say to you all "Dream on, don't loose hope and never let go!".
Somebody emailed this to me today and i must say that i needed this headbanger to brighten up my day...
A lecturer, when explaining stress management to an audience, raised a glass of water and asked, “How heavy is this glass of water?” Answers called out ranged from 20g to 500g.
The lecturer replied, “The absolute weight doesn’t matter. It depends on how long you try to hold it.
If I hold it for a minute, that’s not a problem. If I hold it for an hour, I’ll have an ache in my right arm. If I hold it for a day, you’ll have to call an ambulance.
In each case, it’s the same weight, but the longer I hold it, the heavier it becomes.”
He continued, “And that’s the way it is with stress management. If we carry our burdens all the time, sooner or later, as the burden becomes increasingly heavy, we won’t be able to carry on.”
“As with the glass of water, you have to put it down for a while and rest before holding it again. When we’re refreshed, we can carry on with the burden.”
“So, before you return home tonight, put the burden of work down. Don’t carry it home. You can pick it up tomorrow. Whatever burdens you’re carrying now, let them down for a moment if you can.”
So, my friend, Put down anything that may be a burden to you right now. Don’t pick it up again until after you’ve rested a while.
Here are some great ways of dealing with the burdens of life:
1. Accept that some days you’re the pigeon, and some days you’re the statue.
2. Always keep your words soft and sweet, just in case you have to eat them.
3. Always read stuff that’ll make you look good if you die in the middle of it.
4. Drive carefully. It’s not only cars that can be recalled by their maker.
5. If you can’t be kind, at least have the decency to be vague.
6. If you lend someone P100 and never see that person again, it was probably worth it.
7. It may be that your sole purpose in life is simply be kind to others.
8. Never put both feet in your mouth at the same time, because then you won’t have a leg to stand on.
9. Nobody cares if you can’t dance well. Just get up and dance.
10. Since it’s the early worm that gets eaten by the bird, sleep late.
11. The second mouse gets the cheese.
12. When everything’s coming your way, you’re in the wrong lane.
13. Birthdays are good for you. The more you have, the longer you live.
14. You may be only one person in the world, but you may also be the world to one person.
15. Some mistakes are too much fun to only make once.
16. We could learn a lot from crayons… Some are sharp, some are pretty and some are dull. Some have weird names, and all are different colors, but they all have to live in the same box.
17. A truly happy person is one who can enjoy the scenery on a detour.
I saw this picture on my machine today while trying to backup my machine. I can't help myself but post it pretty interesting if you ask me ;)

The Call Center industry is a booming market in the Philippines. Answer is, if you live in Manila you probably know atleast 1 or 2 people working on this industry(i think majority of my classmates in college ended working as a Call Center Agent). They even have a song being played on the Philippine radio airwaves.
It's a great job and people who work at this companies often earn more money than entry-level programmers. Yep! that's true. 5 years back when I was looking for a job fresh out of college a friend told me that he was getting paid 17K + bonus as a call center agent. My jaw dropped because a buddy of mine who is a brilliant developer just got his first job as developer for a multi-national company was just getting paid 8.5K even my first paycheck as a full-time developer was only at 12K.
It's a pretty big margin huh? I guess that's the reason why alot of fresh grads go directly to call centers as their first choice of work(or maybe because of the lack of job openings in the Philippines). I do know that alot of people just call centers as a stepping stone for their real career goal. A former colleague of mine was a call center agent for Sykes before joining my former company. He said that he needed a job while reviewing for his SWCD and some cash to payoff the certification exam fee.
I was browsing devpinoy today when I saw a post by one of the members about his "maintenance project" boredom. While I was reading his post I kinda had this "blast from the past" moment wherein memories of how i was back when i was starting my career as developer started vividly jumping into my head. I coudn't stop laughing for a couple of minutes because I just can't believe that some of the things that I did back when I was a little bit younger.
I used to get bored easily specially if the project that I am working on is boring, not challenging, repetitive or just something that doesn't even burn a braincell to accomplish. I would get so bored that i dread the idea of even going to work.
Yup. That was me back then.
I'ts funny how far I've reached eversince that days... I was so focused on new things, new technologies, new ideas that I forgot the reason why I was hired in the first place and that is to do work and do a good job on it. I think I was so engulfed in the idea that knowledge on every aspect of technology(even if its the most useless piece of code) would give me an edge over everybody.
It was a bad choice, a bad decision but i have learned to grow from it and now here I am, smarter than the developer I used to be. I guess I grew older and started to realize that knowledge is only important if you are using it in a positive and productive way. Any experience you learn from your daily life is a preparation for you in the future.
Through the years of working I was able to formulate a strategy on how to combat boredom... it has worked for me but believe me, it takes time to master. I can't say that I have mastered it completely but i do know that it has helped me little by little to establish myself as a better, smarter and a more patient individual. Below is the list of things i do to make work a little bit more fun than usual:
-
Try to learn as much as you could about the project. It doesnt matter if its a big task or not. Whats important to me is the idea that I might learn something new about project even if its the most boring project in the world. As I always say "You never know when you will find the next gem between the rocks."
-
See maintenance projects as a way for me to imporve the code. Whenever I'm assigned to maintenance project I see to it that I leave that project in a better shape than when I first got it. I usually pad my timeline with extra hours so that I could refactor the code. I always say to myself that any code that I touch is my property even if i didn't started it. You don't want to hear somebody saying something awful about your work(even if the code is not 99% yours) and perople usually blame the first developer or the last developer who touched a project. Always leave a mark of excellence on every work you do.
-
Take it as a challenge even if you hate the project. Don't dread the project because you wont be able to make good results. One of the things I learned in my career is that managers can easily spot if you don't like what you are doing and this can sometimes lead to bad impressions about your personality. What i usually do it code my heart out until my frustration(and burdens) are gone.
-
I'm paid to code and I should do it. Let's face it, even if you don't like a task but i's your job you need to do. It's the people who clean the drainage system.. they may not like cleaning, scrubbing and removing thrash in sewer but they need to do it because it's their job. We are not paid to like our job. We are paid to do the job and do a great job. Managers expect that from us thats why they assigned us to that task because the believe that we can accomplish it and think that we have the right skills to turn bad code into magic.
-
...and finally. Smile. No matter how hard the task, No matter how boring, No matter how repetitive. Always smile. I remember someone told me before that when you smile and feel good about yourself you always end up doing great things and you make people around you feel good. Stressing yourself about a small problem takes alot of brainpower and I would rather focus my energy on building solutions than drowning myself in the sea of problem.
I hope this helps you, I know it did wonders for me and it could do the same to you too! Practice this 5 things and reap the rewards of a happier work life.
***Want to comment?*** Comments are welcome but I suggest you post them in my DevPinoy blog. ;) Click here go there now.
I've been working with alot of Ajax lately(this includes code and laundry :P) and just realized that i've been doing some unecessary code after reading this article. I think I got hooked so much with the Ajax-hoopla that I forgot that not everything should be done via Ajax.
Below is an outline of what Jack Herrington suggested.
- Polling on a timer when you don't need to
- Not inspecting the return results in the callback
- Passing complex XML when HTML would be better
- Passing XML when you should pass JavaScript code
- Doing too much on the server
Read more about this article here.
*Update: I did some research and found out that Michael Schwarz, the creator of Ajax.NET has also a great list of things to avoid in his article Top 10 Mistakes When Using Ajax. Great read.
This is the first part our series about ADO.NET which is part of our Back To The Basic Series which is a series designed to teach beginners about the benefits of ADO.NET and to show how easy it is to use the ADO.NET in a short 10 to 15 minute video using Tagalog as the medium. Our idea is to start from small demo application and build from there by adding new functionalities and refactoring the sample application on each part of the series.
On this demo you'll learn the basics of creating a connection to SQL Server, using a Universal DataLink to automatically generate your connection string to a database server, populating a DataSet using a SqlDataAdapter and assigning a DataSet to our GridView control.

>> Click here to view the video <<
Comments and suggestions are welcome! :)
Read this guys intership adventure with Microsoft, Google and Yahoo(his current job).
He also did a chart which i think would easily spellout where to go if you are looking for a place to go between the 3 giants:

I wish I had the chance to do what he did.. but hey! I had a great time at my intership too.. building Information Systems for a University.. it's not as advance at what he did but still pretty fun it you ask me :)
Hey guys! I'm here at code camp right now in CalState Fullerton and its been amazing. Kudos to the CodeCamp organizers!
Well.. i wast late abit.. so i wasnt able to listen to Woody and Michelle do their early morning speech(heheh, this is how one of the guys i met here in the camp described it). The registration was fast and really organized. I like how they have the parking directions posted everywhere because last year was a mess specially if you dont know the area(well, one can argue that if you can read parking lot signs then you wont have a problem since the SoCal codecamp website said that the parking for the event is on parking lot F).
One thing i noticed is that there is no schedule given to attendies. Last year they gave away papers containing schedules on where and when to find a specific talk. The good thing this year is that there is internet connectivity so you can check the posted schedule on the CodeCamp website which is non-existent last year.
I'll be updating this on every session i go to(hope i did this last year so that i could have warned people about not going to $%&*^* session(name encrypted to protect that persons ego) because he just reads slides and cant even give a good answer(sample response: "Uh, try searching that on the internet.. again i am just relaying to you what i have read online").
The notes below are from my scratchpad courtesy of Notepad++. This is a work in progress so dont bug me if theres typos on it. :D
9:00 - Mark Rosenberg's talk about Stored Procedure and below is the juice of his talk
[13 tips on optimizing your stored procedures] use stored procedures instead of heavy-duty querries include set no count to on call using fully qualified name if you are returning a single integer user a return statement rather than returning one value as a record set Output value is for errors only, return value for values you want to be returned by the procedures. SQL dot notations in 2005 helps in grouping objects in the database. use the sp_executesql storedprocedure instead of execute use the sp_executesql instead if temporary stored procedures breakdown large stored procedures into smaller stored procedures use @Table variables instead of #Table because #Table lives in tempdb and @table is created in memory. avoid using ddl statements in your stored procedures add with recompile option to create procedure statement if you know the query will change each time it id run use the sql server profiler to determine which stored procedures have been recompiled to often avoid using having clause << i think there are scenarios wherein a having clause is faster than a where clause.. so if you ask me i'll tell you that this suggestion is on a case to case basis. use union all instead of union
#temp tables dont use them ok, sometimes bbut not often gettingresults from stored procedure(since you cant use recompile on them) always create the taable then fill it(helps with tempdb locking)can index (which can help performance) dont use select into
@table variables fster anf more efficient not good for large datasets that would be saved to disk anyway less table locking, logging unfortunately no indexes, but you can have a primary key by using unique or primary key constraint. much better during transactions can only be used itn functions stored procedures and batches when used in stored procedures there is less recompiling cant apply alter table cant use select into
dont use cursors if you can help it(use while clause instead) filter as early in your stored procedure as possible never select all the columns sometimes a transaction can actually improve performance(but not often)
quote: "use print statements on querries too count performance" - i greatly disagree on this one.. i think its easier to look at it on the profiler plus adding print statements add clutter in your procedures.
10:15 - Robert Kozak's talk about Attribute Based Programming
He built a nice framework and demoed how to use the same set of classes to do different things. I love how he built his form by just mere UserControls and no code on the form itself. I agree with him when he said that seperation of concern is the way to go in builfing applications. I wasnt able to take down alot of notes because i was enamoured by the amount of cool stuff he was showcasing in his demo. i was able to take note of the third slide though.
A properly designed framework will promote proper seperation between interface, implementation and user interface promote lose coupling and strong cohesion promote reusability of code(write once use everywhere) promotes RAD of production quality code wait theres more: automatic API for your application
1:00 - Bill Sheldon's ASP.NET Membership Customization << currently in progress
I work in a company that has alot of headstrong people. really intelligent one's if i may add. and in this kind of environment... trust me, you dont want to get caught in an arguement with this guys because they wont fizzle down... everybody has his on take an everything making its really challenging to raise a point wherein everybody could agree on a definite strategy.
I saw this article today and it reminded me of my early years in IT. Users and developers banging heads over and over again 24/7.
I'm doing a developer presentation this friday and i've been talking to people who have been doing it for quite sometime now and they have given me some key pointers that i think would be useful to any future presenter. I got some valuable lessons from them and i wish to share them to you guys thru this post so here it goes:
A friend of mine sent me this email and it made me wonder what i say when my proggie gets some bugsy!
Communicating to users/clients is hard... specially if they are not that knowledgable about software developement. so here's a list of things that i think could help you to better communicate with people.
This is my tribute to the people whom I learned and helped me understand C/C++.. although i'm not that great with it unlike MisterClay(he was my college buddy) whom i consider to be a totem pole when it comes to C and C++!!!
Lets see if there are some architechture people around here :)
Looking at code below... scrutinize this class and tell me whats wrong with its structure... what design pattern closely resembles it.. and how you can improve it? the code is provided in both C# and VB.NET so that it would be easier for those people who prefer {} and non-case sensitivity to look at it!
Want to know which APIs are now obsolete in .NET 2.0?
I stumbled on this interesting link today which talks about the pros and cons between using C/C++, Ruby, Python and Java...
I was looking at the site today and checking the advertisements running on the site when i accidentaly stumbled on one of the DUMBEST white papers I have ever encountered. It was talking about how bad OOP is and its implications to work.
Once there was a System Administrator song... and it was good... And came the Gamer's song which was good... but... would a programmer let a day pass without him having his own song to log about in this wire driven cosmos? I bet you he wouldn't!!!
So i was scraping the web tonight when i stumbled to this post by Nick Denoo.. it's about.. the Ten Reasons Why You Should Date A Geek. Which i find interesting since I am a self-confessed geek myself. He gave some hilarious points that made me laugh bigtime (i do know that some of points said the article are things that I did in one way or another)... Then comes Sarah Blow with her Ten Reasons Why You Should Not Date A Geek which i think is a really funny take on the subject matter.
I just came back from Code Camp. and i must say that i was a great experience to hangout with developers from all over Southern California. 2 days of presentations an code is something that i took with much delight! I've documented my Code camp experience in pictures. Check them out here.
I can say that i had one of the most knowledge enriching conference and its totally memorable. I met alot of guys from developers, ms guys up to industry gurus that i have been looking up to eversince the day i started programming on my 486 computer.
Finally! We haved decided who won the "Why should Keith give me the VS.NET and SQL Server 2005 Cds!" contest. It was a tough judgement that me and our judge Woody Pewitt, my local Microsoft Evangelist need to take.
As with any contest, we were hoping that alot of people would be joining the promo since the prize is every .NET Developers dream.. A package containing both VS.NET 2005 and SQL Server 2005. But then again, only the boldess survive and succeeds in this goal driven world.
On the first episode of devTrain, a weekly video training blog about the .NET framework that i started. I have decided to talk about one of the newest feature of .NET 2.0 which is Multiple Language Support.
Although not recommended for development its good to know that you can write an application using multiple languages because this would increase the effort on maintaining a project, particularly if the application would be maitained by someone who is not familiar with all the programming language use(just imagine an application written in C#, VB.NET amd J#! Gee! that would be a total pain in the ass!).
I found this post really interesting. It talks about how to spot a good programmer in a wild bunch of jobseekers. The cool thing about this is that the guys who are giving comments about the topic are generally industry honchos who have and had experience in selecting quality people to join their team.
|