Categories
Software development Technology Web

Production, production, production

Reading Time: 3 minutes

I first learned the “production environment” in 2010, when I worked as contractor for a major railway company. Before that I was mostly in CAD software development and consulting environment the word “production” did not come often. To be precise at Siemens PLM/UGS as developers, we did have access to various production releases and did validation for bug and bug fixes from time to time. Our code goes to release per year or per quarter. But production is not as significant as the maintenance releases, so this is the world of shrink wrap (engineering) software world.

Came to the world of business applications, or web. The first thing I learned is it’s not a good idea for newbies to touch production data. Or for that matter, not good idea for devs to touch that either. Very few people has production access, besides admins (database, web), the few people have access are usually product owner, business analysts, or product support people. And fast forward 5, 6 years, I became one of the latter. This is a privilege. Something I learned over past year:

1) Start from baby steps: e. g., if we want to update 1000 records: start from one or two records, do the update, validate and if everything looks good, do the mass update. This goes th way of divide/conquer too: so for example, if I need to delete 3 or 4 million records in one script (one run), I know it will be a long operation, and I don’t want the operation hang or fail in the middle. So what do I do? I divide the deleting operation into a few, each operation deletes half a million, much more manageable, and I will get the it complete much faster or get feedback much faster.

Categories
401k and Personal Finance Software development Technology

Contractor or employee ?

Reading Time: 2 minutes

A common question for software developer is to be an employee (full time, perm) or be an contractor (W-2, or 1099). Strictly speaking the 1099 is more like a small business, and I have not done it personally. I heard some experienced people did the 1099; I will share if I have that exp. down the road.

I spent most of my career so far being an employee (8 years for Siemens PLM/UGS was the longest); I also spent some time being an contractor (total 3 places, about 28 months). Each option has pros and cons. A few things I learned from my own exp.

1) People have all kinds of expectations for contractors, usually the higher pay, the higher the expectation. For employee, they are a bit more patient.

2) Contract to hire. I found this is usually promised or at least suggested at the beginning, as personally I still prefer to be employee long time. But in two cases, I found they were not the case. All types things happen at client, but in one case looking back I felt the client may never had intention to convert. So this is something to keep in mind as for some people the longevity/conversion is important factor.

Categories
Site Info Software development Technology

Moved domain registrar from bluehost to godaddy

Reading Time: < 1 minute

Followed this instruction move away from bluehost; and move domain into godaddy. Most instructions are accurate, except one needs to ping pong couple times, started from bluehost first, then at godaddy website, after that I received email from godaddy asking about the transfer, go ahead and use the information in the email to start the official transfer, at last I go to bluehost website and approved the transfer. The interesting part is the entry of name server on my web host (digitalocean) gets updated automatically once I approved the transfer by clicking the link on bluehost. This really surprised me as I was expecting to make changes manually on my own 🙂

You may ask why I bother to transfer? I have actually moved my web hosting from bluehost to digitalocean (shared host to dedicated hosting) a while ago. This is the last step before moving completely away from the bluehost. No ill feeling towards bluehost (although couple years ago it did give me some headache). It’s just the cost between the two are comparable and I like to have more say on the web hosting.

Last but not least, if you have Amex card, check if you have the godaddy $20 off $50 offer. I found it from one of my Amex card, and I used it for domain transfer ($9.99 x 5 years plus a bit tax/fees). So the total will be about $30 after Amex offer. 🙂

Categories
Career Fun Life Life Tips Software development

2015 Year In Review

Reading Time: 4 minutes

It’s new year again, and obligatory new year resolution time. I think I’m already past that practice: will try to put down iPhone and Macbook more when I’m at home though (I was referring to this comment on 2014 review: Leave the iDevices/mac if I can). I’ve eaten my own words on this one. My younger daughter is at a fun age (17.5 months), being a toddler learning to talk, I’ll play with her more, and of course continue my weekend chauffeur job for my older daughter (skating, dancing/pre-ballet etc).

Job Change
I changed my job again this year. I was not expecting it at the beginning of the year or did any planning. But it worked out so far. Again I hope I can stay at my current place longer 🙂

Personal finance
I stopped contributing to the Exxon mobile DRIP program; started put same money ($100 per month) into IBM DRIP program instead, still using ComputerShares. Was able to save some money in the emergency fund account. But still spent quite some on the following items.

Visited Disneyland;

Got a piano and ready to start piano lesson for Serenity in 2016;

Replaced AC and furnace, the new one (American Standard, same as the Trane brand) works like a charm, also bought two mattresses (one from Mattress Firm local store, another one from US-mattress online store). Long term it’s going to save some money on electricity as this one is more energy efficient.

Workout, exercise, swim
I have been doing swimming for a few years at JCC (both Chesterfield and Creve Coeur locations), as I live near the Creve Coeur location, and I worked near the Chesterfield location last few years. That has been changed as the new baby (July 2014), and new job requirement (June 2015). I have been using UP Band, Fitbit app on iPhone 5s, and in June this year I got Fitbit Charge the same time I changed job. Trying to get 10,000 steps per day per the recommendation. Still try to get some swimming as time permits.

I started walking in the trails at Laumeiers Sculpture park since last Winter: trying to breath some fresh air during lunch break at work. The new place does not have a nature trail like the Sculpture park, but it does have a one mile paved trail. It’s good enough for me. I usually walk at lunch break, when weather permits. Otherwise I would walk the stairs, as not good as outside, but it does the job. One thing I learned over the years is we need to take care of our own health while working, because at the end of the day, we need that to provide for our family, also to enjoy things (this hits home especially whenever I get sick). There is an excellent “Under the Radar” podcast on this ergonomics topic. I recall at my old work place, my coworker had surgery on the capal-tunnel (a common injury from using too much keyboard or mouse). Back pain is also common among office workers (sitting too long). The walk/stretch from time to time is a good way to prevent/reduce that.

Fitbit_badges_2015

Kids

Categories
Software development Technology

Got some tech toys for my daughter 

Reading Time: 2 minutes

I thought this problem for a while. Sometimes I heard people complained companies like Lego discriminate: their toys are more for boys than girls, so Lego came up this Lego friends series which is geared more toward girl, as they ranges from bakeries, beach house, to rain forest rescue, and they have a lot girl figures. 

I think I fell into this trap too. I think some of the tech toys can be helpful and stimulate my daughter’s interest on STEM, but I did not follow through. She is 5 and will be 6 in a few months. So recently I did something different, I bought a quad copter (while she cannot play it, it could stimulate her interest), and the snap circuits 100. I can still sense her natural tendency is still social science, as I saw that’s her favorite in brain pop Jr. But I will give it some time and hopefully she will fall in love with IXL too 🙂

Note: brain pop jr. And IXL are 2 kids education websites. 

Another related topic is the “hour of code” initiative, I feel the awareness of coding or programming is reach all time high in school these days. Still remember my first computer program in basic language, when I was in middle school (about 13 or 14). Of course now we have so much wonderful material and resources such as Kahn academy, raspberry pi etc. It’s much more fun and hopefully can be integrated into science and math curriculum as well. Personally I think that’s more fun than standardized tests. Don’t get me wrong, I think fundamental training is still important, but creative work or education are also important. This takes time and effort, I am hoping more stakeholders (educators and parents) can buy into this in the future 🙂

Refer to Scott Hanselman’s blog post “The 2015 Christmas List of Best STEM Toys for your little nerds and nerdettes” here. Btw, I also got the Snap Circuit SC-300 for my nieces (10 and 8 years old).

Categories
Software development

Docker and Vault: a preliminary tutorial

Reading Time: < 1 minute

(Update 01-22-2019) Managing your Database Secrets with Vault

Manage Your MySQL Database Credentials with Vault

Last but not least, the GSG for Vault (I recall I went through once last time, on my Mac).

(Original 11-19-2015) We most likely heard about Docker, the ultimate container. Recently I followed the GSG on the official website to get a feel for it. Vault is a open source project supported by Hashi Corp (famous for Vagrant, Consul, and other open source projects). I came across this docker vault image created by kintoandar (Joel Bastos) via his blog post Vault: PKI Made Easy. Since I was new to both technologies (I did followed the docker GSG on my Mac), Joel’s blog is a bit advanced for me, here are some of the steps I did to make the basic vault commands work.

I will update this blog post as I follow along the offical Vault GSG and Joel’s blog post.

Start the docker terminal, click the docker.app on Mac, it should lanuch the terminal.


docker pull kintoandar/hashicorp-vault

docker run -d -p 8300:8300 kintoandar/hashicorp-vault

docker help

Minjies-MacBook-Pro:sandbox minjiexu$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c8b183b9e0ed kintoandar/hashicorp-vault “/bin/vault server -c” About an hour ago Up About an hour 0.0.0.0:8300->8300/tcp admiring_jang

Minjies-MacBook-Pro:sandbox minjiexu$ docker logs c8b183b9e0ed (this is the container_id above)

Minjies-MacBook-Pro:sandbox minjiexu$ docker inspect c8b183b9e0ed

Minjies-MacBook-Pro:sandbox minjiexu$ docker exec c8b183b9e0ed vault status -address http://172.17.0.2:8300 (one line)

Sealed: false
Key Shares: 1
Key Threshold: 1
Unseal Progress: 0

High-Availability Enabled: false

Categories
iPhone app Saint Louis Software development

Resources for aspiring software developers in St. Louis

Reading Time: 2 minutesWe know St. Louis is not a hot (or cool) place as Seattle/Silicon Valley in terms of job opportunities for software engineers. But St. Louis area have plenty of opportunities from small to large organizations, with a diverse industries. There are also many resources for aspiring software developers who like to join the industry.

The No. 1 resource I recommend is LaunchCode. It was relatively new, but I personally knew 3 people got internship position through them, and 2 of them received full time offers, in last few years. They seemed really got the non-traditional students/newbies connected with the industry.

The No. 2 resource I like to mention is all these “user groups”, e.g., the old ones such as St. Louis Java User Group, St. Louis .Net User Group, St. Louis Unix User Group. They are mostly free and open to everyone, here is a list of monthly calendar compiled by the good folks at sluug. There are also some groups concentrate on newer technologies, such as iOS, Android, Angular JS Group, and functional and dynamic languages. Relate to the last one, there is also a conference on coding StrangeLoop which is considered good in the midwest (if not the US). I have been to most of the user group meetings and StrangeLoop conference (a while ago, when I’ve not got busy with 2 young kids), and I think they are good in terms of two aspects: 1) Learn new trends on the technology; 2) Get to know some of the people (they are not all nerds 🙂 Last but not least for user groups sometimes they have free food or door prizes: they are usually sponsored by the hosting companies or the recruiters who are looking for developers.

This is also my last bullet point. The recruiters. I know in this day of the age, we have a somewhat love/hate relationship with recruiters because they spam us on the phone, and on linkedIn. But looking at another way, for many openings esp. contractor positions are coming through recruiters. And also keep in mind not all recruiters are the same, there are some (if not a few) who are really good at finding positions and are also pleasant to work with. Not all are like car salesperson (for that matter, I think the perception on car salesperson is also rated unfairly). So my advice for aspiring developers is to establish something on LinkedIn, and start looking for a few good recruiters. I personally have worked with some very good recruiters, and my friend who found internship via LaunchCode worked with a recruiter at one time too (both out of necessity, sometimes companies can only hire contractor).

Will update this post as time goes.

Categories
Software development

Work around for Excel lose leading and trailing zeros when importing csv data

Reading Time: < 1 minuteThis is from reddit. “…open a blank workbook in excel, then from the Data tab, under the “Get External Data” setting, choose “from text” and point it to your file. This will open the text import wizard. On the first step, choose “delimeted” and then “Next.” On the second, select the checkbox next to “Comma” then click “Next.” Now in the third step, the field should be shown, along with Excel’s best guess as to the data type. You’ll see that your numbered fields are shown as “General.” Click the column containing the numbers and change that field to “text.” Do this for all applicable fields that you want to save leading zeros for, then click “Finish.” (Excel truncates leading zeros if it thinks a field is a number. Leaving it as text will preserve the zeros.)…

My workaround is to stick an apostrophe (tick mark) for the numbers I want to keep the zeros. In other words that essentially make it a text by adding the tick mark.

Categories
Software development

Sustainable software development II : rewrite and star performer

Reading Time: 2 minutesRewrite
Developers usually like new project, sometimes called green field project, in the sense developers have more freedom to create (think of a white paper). In the same token, from time to time people will start a “full rewrite” project as the old project (code base) is “so messed up” and beyond repair. Is that real? A very high profile “rewrite” failure is the Netscape rewrite (see Joel Spolsky’s post here). And recently yours truly was involved in such “rewrite effort” as well. The result is also similar. I think not just developers, some managers also like the “rewrite” as well, due to various reasons. Some are valid, and some are not. Software (if it’s true software) usually lasts longer than people thought. In 2002, I visited my former workplace, a manufacturing place in Shanghai, and surprised to found they are still running my Foxbase/Foxpro based report generator, the the OS is Windows 3.1. At the time I worked on this (1994/1995), it saved 2 accounts, a few days of work (type calculators), each month. I bet they still used it for sometime after 2002, but I really doubt that will last till today, and the printer (Epison pin based) may not find punched hole printing papers 🙂

Star Performer
I thought this problem for a while. I happened to listen to one podcast from “this agile life“, and read this article The surprising danger of being good at your job from yahoo/business insider, both helped me think more about this problem.

I think in software development world, it’s a very common phenomena, like @codinghorror said in this post “two types of progammers“, basically he is saying there 20% of developers are passionate about software development, 80% of them are there to get a pay check. But the star’s power and magic needs to be balanced or controlled, so that the teammates can also thrive and together the team can deliver something truly good.

Another related phenomena, is Lebron James in NBA. A few months ago we witnessed his heroics again. But Cavs did not win eventually. One reason I think is they are one man team. While their opponent Warriors are a real team.

Side note
Last week I received an email from my former boss asking me about a “magic number” I put in the code. I had to admit I messed up 🙂

Categories
Software development

New job, offense and defense in software world

Reading Time: 3 minutesI changed job again recently, to be more precise, I made the change at beginning of the month. So today marks the conclusion of first 3 weeks.

I felt fairly good so far, both in terms of environment and the work. It’s a bit different from what I did in last few years, as I engaged more in product support (still software world). I consider this to be more defense type of work, esp. the part of trying to keep application up and running, vs. the development work I did in the past (more like offense). Both are important. Some new tasks include handling customer requests (technical, second or third level if we look it from level of support). We can say this is a bit like defense too, because sometime people literally threw problems or questions at you (or me).

I did give it some thought before making the change. I’ve been doing software development for the most part in last 15 years (first 8 years at Siemens PLM Software formerly UGS or Unigraphics). I’ve done some customer support here or there, mostly when I was with Autodesk. Most recently I was doing development at Mercy. I still like development. But at the same time, at this stage of my career, I like to think about what I am good at and what I like to do more. I think troubleshooting, and problem solving are definitely in my comfort zone. I also need to step out my comfort zone a bit (aka customer support). And I like to learn more on production, operation, devops (the new buzz words, essentially the automation of deployment and production), and last but not least security. So here comes my rationale. I think in some of the places like google, the job is really refined and one thing I am interested is “site reliability engineering“. Another good thing about current place is it’s a decent size company and has some interesting problems: both technical and non-technical. So here comes challenges.

Let’s see how I do as time goes 🙂

PS: I heard about the news about my old company’s incoming layoff. We went through a similar exercise last year when I was there. At that time I was relatively new at the old place. And I was a bit scared. I think this expansion/shrinking is a way of IT life nowadays. Ironically, I got call from a recruiter and she told me the news I already heard. I recall last year some recruiter even sent email to my working account. Just a fact of post linkedIn world. Also another of my old company had a layoff recently too. See my post at uudaddy.

PS2: I think in software development there are also both defense and offense. Maintenance, fix bugs, and refactoring can be considered as defense. New features, bells and whistles can be considered as offense. Both are important as if we don’t refactor, or maintain, soon or later the code or the software will become unmaintainable 🙂

PS3: in the soccer (or football outside of US), we have seen players moved from middle field to defender position as they age. Similar can be said for software work, from development to support, from new development to maintenance.

PS4: did Sony release Play Station 4, really? Just kidding. Another thing I want to say is this transition does not mean “I am no longer a coder”, a more precise description is I will do more diverse things, from coding to anything else related to product support (applications, and customer), whatever it takes. In a fancy term, I will get a more holistic view of application in production. 🙂