Lazy developer's profilelazy developer's rest ro...PhotosBlogLists Tools Help

Lazy developer

There are no photo albums.

lazy developer's rest room

August 21

About resume

    For the first time i pay some attention to the writing of a resume and a cover letter. I've been happily working here for almost five years. So I don't need any resume. These days I've received many resumes applying for java programmer. I read through all of them but I have little impression. Since they're all from 51job or chinahr with similar format and nearly the same content.

    I begin to think about what a good or impressive resume should look like. Most of all, it should differ from those forged by these large job seekers' websites. As one of my friends points out any  serious resume should written with a word processor such as Microsoft Word or OpenOffice. And it should compact within just one page. Further you should make your cover letter compatible with the resume. Although the cover letter always contains some 'official' expressions, you'd better scratch your head before you write down any single word. As a programmer of the internet age, do not forget about the great resources prodivded by the internet, or you're an absolute loser. Try this mini resume writing guide and rewrite your resume following those guidelines. Hope you can catch more eyes. Kegel's guide  to CS students is also very instructive.

    Above all emoloyers are hiring those competitors, don't pretend that you can do a good job if you even do not know where to begin. You'll be a double bagger at that time:) You should also refresh your knowledge base before you try to find a new position. It's really a bad practice to throw your resume into an ocean of resumes. Make a reasonable plan then execute it. You can reach what you expected. Good luck to all those guys looking for a humble position!



August 15

Big surprise!

Rob Caron: For the first time, we're making the MSDN Library freely available for download from Microsoft Downloads. Previously, the Library was only available for download to MSDN subscribers. The current download is the May 2006 Edition and future editions will also be available when we release them.

Here's the download link. Three ISO images. Really big surprise, really large downloads!

August 04

Concurrent Programming Models

    Generally speaking, there're three types of concurrent programming models(as taken from the book Concepts, Techniques, and Models of Computer Programming):
   
  1. Shared-state Concurrency: This approach assumes multiple threads of execution with shared data using locks, monitors and transactions. It is the typical Java approach to concurrency and it is also the most widespread form of concurrency. However, shared-state concurrency is also the most complicated model to program to as it requires a fine level of synchronization and scheduling between threads.
  2. Message-passing Concurrency: Uses asynchronous messaging to communicate between multiple threads over a specified port. This is the model used (very successfully) by Erlang. This model provides for a coarser level of interaction between threads but is easier to program to.
  3. Declarative/Dataflow Concurrency: This approach is data-driven and extends sequential declarative-type programming with multiple threads of execution. It is a simpler approach then approaches #1 & #2 and it is very useful for certain types of problems; however, it is not widely used. Conceptually, Google's MapReduce fits into this approach. The paper describes it in more detail.

    Sometimes concurrent computing is considered  the same thing as parallel computing. But some others do not think so. They figure out that concurrent computing consists of parallel computing and distributed computing. From a programmer's perspective, we can focus on these aspects:
  • Multi-threads(pthread, java thread)
  • Multi-processes(fork)
  • Multi-processors(SMP)

July 31

Concurrency

    Today I reread C++ guru Herb Sutter's great article. I'd love to share my humble opinions and some useful information for further study on this topic with you.
   
    "Concurrency is the next revolution in how we write software."

Next i'll show you:
1) the concurrent programming model
2) c++ concurrent programming
3) java concurrent programming
4) the concurrent programming language: erlang


Stay tuned.

July 28

Start using JSP & JSTL

    Today one colleague of mine asked me to help her writing some small web application with JSP. I got a chance to practice this old good tool mostly with JSTL.

    It's not very easy for newbies. It seems there're too many configurations for them including datasource, context, web.xml and quirk tags. All of these are totally new conceptions for novices. You'd better find a good tutor to grasp them.

    Below is the process of get it work.
    1) First of all, you should install some nessary applications.
       * jdk, 5.0 recommended
       * Tomcat 5.0.x or 5.5.x
       * MySQL 4.1.x or MySQL5.1
    All these tools are opensourced, just go to their home page to download them. Then follow the instructions to install them on your computer.


    2) Create database and tables, then configure DataSource
       Startup mysql server, use mysql command line or any other GUI manager application for mysql to create a database and some tables.
       Then navigate to tomcat documentation jndi-datasource-example page, you'll find some example configurations to help you finish this task. This time you can use copy & paste:)

    3) Create a basic web application under ${TOMCAT_HOME}/webapps/. Directory structure may look like this:
    basic -\
       WEB-INF -\
          classes -\
             ApplicationResources.properties
          lib -\
             jstl.jar
             standard.jar
          web.xml
       jsp -\
       common -\


    4) Write some rushed sample page using JSTL.
    <%@ include file="/common/tags.jsp"%>
    <sql:query ....

    It's not for production usage, just sample code to show the basic concepts of JSP and JSTL. Certainly there're many startups
and many small workshop-like companies selling software products done this way. They're worth nothing. Any serious business or developer should not make naive programs like this.