Skip to main content

Posts

Showing posts from 2014

Craftsmanship

It was a busy month, all work no play... more about polishing, both code and UI, to make a better product.

1. Code Polishing

In the current Java Spring project, there are a few things worth mentioning.


1. Service layer for MVC.

My previous projects are mostly architected under MVC pattern. There is nothing wrong about that. However, when the logic gets more complexed, handling all the logic in the controller layer would not be as clean and efficient. Another layer named Service for better data access and logic control is used in the our project. http://stackoverflow.com/questions/5702391/mvcs-model-view-controller-service

The controller would not be handling too many logics, instead, it only handles routing and  parameter passing. Most logics will be handled in the service layer.

2. Exception handling vs error codes

In the beginning, I didn’t do any exception handling in the service layer, neither do I create many exception handlers in the controller layer.After reviewing my peers codes, I…

Restart

It's been one month since I started working in the new company. The overall experience is very good, quite a lot to learn and practice, except that I wasn't self-motivated enough to show lots of passions.

I kept a weekly journal on Google docs to record some company-related stuffs. Some contents are operational/business related and can be sensitive to the potential competitors, thus they are saved as private journals.
Techinally, there are quite a few good gains to note down.
1.I started to use unit testing in the project development. It turns out to be a very good practice to keep the codes a good standard. 
2.One colleague and I discussed a sub part of the system and wrote the design document done before coding, which turns out to be a very cost efficient approach.
3.We used pivotal tracker to divide big projects into small parts. That is pretty useful for project management. I used trello in the past, however not as efficient for intensive collaborative working.
4. I designed a…

Kilimanjaro

I decided to take some adventures before starting a new job. Around a year ago, I read a sharing from Facebook about the advantages of extreme sports. I found it quite convincing and worth a try. Last winter holiday, my friend, Qiyue,Jingping and two other girls went for sky driving and high jumping. I guess that a pretty good opportunity to start. Unfortunately, I was too busy with the ReadPeer project to go for a two weeks' trip. This summer, they are graduating and I'm changing a job, thus I decide to spend two weeks experiencing something adventurous with them. The plan is to climb the Kilimanjaro mountain. Since the safari is also nearby, we'll do that as well.
Another friend who has climbed a 4000+ camp in Nepal together with Qiyue found our plan cool, thus he also decided to join us for the Kilimanjaro trip.Before climbing, we must have researched about the difficulty and feasibility. We knew that it is doable even for beginners like me. However, it takes courages a…

Cut the Cross Down

Many things happened in the past few weeks, but I didn't record them in a consistent manner. It's like I'm carrying less burden than before, but the consequences could be pretty bad in the long run.

















Accomplishes: 
1. Finished the book "You can draw in 30 days" and managed to draw sophisticated 3D objects.
2. Finished reading the first DSLR photographing book and practised three weekends on  a second-hand Canon D7 camera. Learn everything from a scratch from Zhixing. Attended my friend, Jingping's harmonica concert. 3. Launched our Clockie app V1.0. Finished the V1.1 debugging and modification. On going for the V1.2. We consider this app to be our first experiment on how to make a real product. Besides UI and features, we are going to do some experiments on the business side as well, for instance the free-premium business model. However, since there are small issues with the current version, we still choose not to market it yet until the V1.2 comes out. 

4. M…

End of February

These two weeks went really quickly. All of a sudden, it is already end of the month.

There are basically two improvements worth recording.

1. In the readpeer team, we tried to do daily scrum meeting at 11am. We're clearer about the goals and we've effectively fixed miner bugs for the API as well as the App/Plugin workflow. Now, the bugs are mostly cleared and the APIs are mostly well-tested after two weeks' trials and errors. The iOS app is also progressing well, mostly because of Zijian's passion and smartness. Hopefully, we can have a demo next week for both the iOS app and the browser plugin. However, the Android app is slightly lagging. We just started integrating the APIs in the Android app. From the API design and implementation experience, I started to realize the potential security issues out there for the apps.

For Android app, it is actually pretty easy to be decompiled into codes. It's pretty dangerous to simply put the app_api_key and app_api_secret in…

Hackathon

I attended the Facebook Hackathon last Saturday with Zenan and Qiyue. It was an awesome experience. People there are really geeky and some teams are technically very strong. Unlike other hackathons I attended which are somewhat business oriented, this hackathon consists of only developers. No business models need to get examined. I guess that's the reason why it was so geeky and fun.The problem we want to solve is to help couples living long distances to better communicate with each other. It is painful for them to stick with each other while they cannot meet face to face very often. There are basically two needs:1. to have a unique private messaging channel where only two of them are in each other's contact. 2.to have a pair diary space that keeps track of their memorable conversations from the instant messaging channel. Zenan is really awesome in UX design and implementation. Qiyue is also very good. We managed to build the pair diary app with Pods, JSMessageViewController a…

CNY

I didn't intend to fly back home for this Chinese New Year when there are quite a lot of stuffs remaining to be done for the ReadPeer project. However, I eventually ordered the return ticket(refundable for SM2/SM3 student to fly home after graduation)in the last minute after several days' consideration.Unfortunately, I missed the flight on Jan 29th after fixed a bug on the website. Then I changed the flight to Jan 30th and stayed in Zhixing's place for a night and fixed some more problems in the previous iOS project. Gratefully, I returned home safely in the last hour of the CNY eve. It is quite uncomfortable to do nothing at home while I am used to work many hours a day. The first few days are more about visiting relatives and have lunch/dinner. During these days, it was more about observing. Quite a number of changes happen this year in China which affect the normal citizens. 1. Civil servants used to be one of the most desirable jobs in China. However, this year's a…

Experimenting

The past week involves mostly on experimenting, somewhat similar to the experimental learning concept mentioned in the Lean Startups. The readpeer project finally went on test by real users and we gathered feedbacks to polish the system based on real situations. Xiaoli and Prof went for meeting in Hangzhou early last week and I'm the only one who dealt with bug fixing+ web service api development+operation. Early in the week, one senior(CTO) from Visenze(one of few real technical startups) in SG emailed me to join his company. Actually I was supposed to join his company after graduation instead of the Prof's company for a better exposure/involvement to a tech startup. However, I confirmed to Prof to make readpeer a product-standard one before moving to other projects. Now my role is almost fulfilled but I start to realize that it's not just about production design and development, but more about operation and continuous grows.  Even the functionalities and design works hav…

Polishing

I stayed in my friend Zhixing's place after polishing the last CS3217 project together with Jingping last night. We plan to publish the small app on App Store to gain some experiences as individual mobile game developers. Hopefully we'll launch a neat version for girls around the Chinese New Year. The past week is pretty joyful, mostly on debugging and feature/UI polishing. I helped solve a crucial bug on Android TextView text selection. I also polished the website reading page JavaScripts to improve the user experience. The basic web service api also started to get developed. Last Saturday, I attended a design thinking workshop by the OrangeHive. Yangyu and I made a creative logo in the workshop and  that was an interesting experience.  The iOS app for readpeer is getting great. Most iOS development is done by the junior, Zijian while I sometimes help solve some bugs when he encounters problems. Zijian is getting self-motivated and happy playing with iOS development. That is …

Getting Better

I started to feel more enthusiastic when the team began to have new people. We started to build Apps and I've got the chance to learn new things again!
A year 2 junior, Zijian decided to learn iOS and joined the team for internship. He is smart and quick in learning the materials. I suggested him to take CS3217 concurrently with the internship and thankfully he got the course admission. Another year 3 junior, Weiran also joined the team for internship on Android development. However, he is a bit weak in programming. Fortunately, I helped motivate him by introduce an online Android lesson on Treehouse. He now became interested in Android development. I've got some design books for him as well since he is interested in design and we've got to push him to be a tech designer. Last two weeks, I've built two simple beginner level android app running on my nexus 7. I also helped Zijian solved an important bug in his pageviewcontroller in IOS. That was a pretty good progress.