Posts

Showing posts from 2010

Virtual File System in Mac OS X

In most UNIX systems, virtual file systems (VFS) are applied to support multiple concrete underlying file systems. Beneath Mac OS X there is a UNIX-based foundation, where a file system component of Darwin is based on extensions to BSD and an enhanced VFS. To join a VFS, a concrete file system must supply a set of functions, which is the interface between the VFS and the concrete file system. For the Darwin VFS, it is able to support hierarchical file system (HFS), HFS+, Universal Disk Format (UDF) for hard disk drives and CDs and DVDs, ISSO 9660 for CD-ROM volumes, Windows NT File systems (Mac OS X can read NTFS-formatted volumes but cannot write to them), Unix File System (supported but use dis-encouraged in Max OS X), and MS-DOS FAT file systems.

System Calls

In traditional operating systems (OS), such as UNIX, system calls are interface between user processes and an OS kernel. A system call function could be fork(), which creates a new process, a running program. A user process could invoke fork() to request the kernel to create a new process that is a duplicate of itself on its behalf. A system call may involve data exchange. For example, a waitpid() invocation waits for child process to change state. The calling process/thread will suspend its execution until status of information for one of its terminated child processes is available, or until delivery of a signal whose action is either to execute a signal-catching function or to terminate the process. Some system calls could be handled at user space. But most system calls are handled in the OS kernel. At first edition UNIX, the OS has fewer than 35 documented system calls. If you are able to access a UNIX system, you can check system call numbers in system header file sys/sysc

Present Like Steve Jobs by Carmine Gallo

Carmine Gallo authored "The Presentation Secrets of Steve Jobs." Here is the summary of the video clip. 1) Maintain eye contact Why Steve Jobs can? Secrets: few words in his presentation file; no reading slides; and rehearsing as many times as possible. 2) Open posture Nothing or prevent barriers between him and his audience. 3) Effective hand gestures He uses hand gestures virtually every sentence. At the end of this video, there is a comparison between Steve Jobs with a speaker who needed to improve his presentation skills. We learn from masters.

Android's Dalvik

I am learning Operating Systems. Today my reading is focus on Android, the mobile operating system. In Android, when a program is running, a virtual machine called Dalvik is created. The Dalvik virtual machine is a Java interpreter machine optimized for Android platforms. It is said that Dalvik is capable of running along an application compilation enhancing the execution performance of the applications. David's running code is not Java's byte code, which has a benefit to conserve more battery-power during long-run of applications. The trade off is that Dalvik is not compatible with Java's SE library, and Java ME class libraries, etc. Fortunately, it has its own vast amount of resources that can be applied to do the make up.

Obtain, Scrub, Explore, Model, and iNterpret

I confronted the post, A Taxonomy of Data Science , when I searched online. The article is must-read one if you are interested in collecting, analyzing, and interpreting data. I quote the following from the post "The purpose of computing is insight, not numbers."

Why Internet Operating Systems?

An operating system is a virtual abstract machine that hides complexity of CPU, memory, disk drives, network drives, etc, or a resource manager that manages hardware resources for user applications. Does the internet have an operating system? How does the internet works with mobile technologies as a big machinery? Tim O'Reilly's post, The State of the Internet Operating System is a good article to read. I enjoyed reading the article since it presents the loosely joined important pieces on the Internet. And the information is informative and insightful. However, I cannot see the point why use "operating system" to make the connections between the pieces. The concept of operating systems works to abstract, and to provide a relatively simple and elegant interface. If the Internet operating system follows the same idea, what is the interface then? And who are the customers of the interface? If the Internet operating system works for a different purpose, why ca

The System in Death and the Powers

How fantastic the idea is! If you want to read more, check Disembodied performance .

Why study computing?

If you watch this video, it may remind you why you work hard in this quickly evolving field. There, many technologies are waiting for you to explore, to assemble, and to make our life cool and beautiful. I wish I could have an iPad (-:

About how to read a book, or a program

I am reading the classical book "How to Read a Book" by Mortimer J. Adler and Charles Van Doren. This is the second time I read this book. Still very much I enjoyed the reading. This time, I slowed down the reading on analytical reading part. I am trying to find the correlation between reading a book and reading a program. I have considered the possibility to apply the method of reading a book to the procedure to read a program. For people who are interested in studying program by reading existing programs, they may see the benefit to use the following rules. Please note that the following italicized text is quoted from Adler's book titled "How to Read a Book". I. Analysis: Rules for Finding What a Book is About 1. Classify the book according to kind and subject matter. 2. State what the whole book is about with the utmost brevity. 3. Enumerate its major parts in their order and relation, and analyze these parts as you have analyzed the whole. 4. D

Targeting Problems

I have talked with several friends during my summer break. It is interesting to know their views about computing. One of the most challenging tasks, based on their points, is identifying users of their products---who they are, what they want, how they are going to use their products to make their life easier, etc. I agree with them that targeting problems is challenging. It is certainly important as the first step to build successful products. Think about google, iPhone, iPad, Facebook, and you can list them on and on.

Learning With Video Components

I have been trying using some videos while learning some subjects. Sometimes it works OK especially when I don't have books available. It works best when I have chance to listen very inspiring lectures delivered by people who are able to provide insightful views about subjects of interest, and those views are usually not from any books but from their own thoughts and experiences. But most time so far videos are not my favorite format I use to systematically learn something, even though I like watching videos to see how the video presenters deliver their work. (That is my very interest to watch videos actually.) If I plan to learn a subject, I prefer reading books, trying examples, and practicing by solving simple questions step by step. What bothered me most when I studied a subject by watching videos was that the time spent on the video-watching process was constrained strictly by the video length. If the videos were long, the learning process would be very likely an infor

What Is Cloud Computing?

If you are just a user of the cloud, you are like a user of computers running Windows, Mac OS X, Linux, etc.   The operating systems and application programs provide a beautiful interface hiding the ugly underlying complexity.   For cloud computing, interesting topics include how the service is provided, discovered, organized in the cloud; and how the computing resources are managed efficiently in the cloud.  These topics certainly have their correlation with design and development of Operating Systems.  But they have their own special challenges because of the large scale magnitude and distributed characteristics of cloud computing.   In summary, learning Operating Systems certainly will guide us to solve new problems in the new modern context. 

For those who were born in China in 1970's

Challenges In Online Computing Classes

There are challenges that should be considered by online learners and teachers.  Based on my teaching experiences to teach Web-based class components, I summarize some prominent challenges for both teachers and learners.  First, reading in the online learning package might be overwhelming when learners just start to learn online.  Second, even though online learning makes self-paced learning possible, it requires a learner to be disciplined and persistent.  As a teacher, I am interested in the instructor role in an online class.  Here are some questions I ask myself.   1. How to guide students to read effectively and efficiently?  Some students are good readers, but others are not.  Traditional text books and lots of online materials are too much for students who are new to learn online.  How to help these students to maximize their learning from reading?  Working examples and problem-solving questions seem working fine with textbooks. But is there an alternative way to organize th

25 Google Interview Questions

1 Prepare Before Your Interview Do you prepare before your interview at Google? Of course you will. But how and where to start? This report will provide you a list of 25 questions collected from Web provided by Google interview candidates. The list of questions is focus on CS fields. 2 Questions The question listed as follows are not ordered based on any criterion. The programming languages are required to be used are usually not specific. You can practice using Java, C++, C, C#, etc. For each problem, you need figure out at least one solution. If there are multiple solutions to the problem, make sure you understand how to analyze the efficiency (both time and space). Describe a data structure as well as operations on the data structure. What is the difference between function overloading and overriding? Given a superclass A, a subclass B of superclass A where B overrides a function foo() in A, an instance of class B, how to invoke foo() defined in class A? How to check if tw

Cloud Computing in CS Education

I enjoyed reading an article titled "plugging into the cloud" published in Crossroads Spring 2010 this weekend. I am using gmail and google calendar everyday. But like most people, I am also concerned with losing privacy and security by giving up my data in the cloud. I believe there are a lot of users like me have to trade off between the convenience of storage and computing power in the cloud and security not to own data. As a CS person, I am also interested in the opportunities and challenges for the cloud computing environment. For example, service software in the cloud have to scale well in the cloud. How to address this issue in CS Education directly, effectively, and efficiently? I plan to spend some time do more research on this topic.

About Javascript's Good Parts.

I watched the video titled Java Script-The Good Parts , by Douglas Crockford. In the video, Douglas talked about functional language features in JavaScript. JavaScript is a popular main-stream language and yet it has nice functional language features included in LISP and Scheme. He also talked about the benefits of dynamic typing system in JavaScript. He defended this feature by saying that JavaScript code usually was small and beautiful and worked nicely for its purposes. He commented that he wrote a compiler for JavaScript once but it turned out the compilation system didn't work as fast as expected, which made him appreciate the dynamic features of JavaScript even more. For students who are interested in designing, improving, and implementing programming languages, this is an inspiring video to watch and study.

Inside Larry and Sergey's Brian

I finished reading the book " Inside Larry and Sergey's Brian " by Brandt today. Like the book cover mentioned, "the book is about Larry Page and Sergey Brin." I in general like the book because it is informative for me this time. I need read more about adword and adsense and what happened in other search engines. Brandt emphasized a lot about how the both famous guys dominate now because they are determined and they are idealists. This might be true. As a computing professional, I think the story of Google is a good case study about computational thinking, i.e., abstraction and automating. The pagerank algorithm, adword, and adsense are simple and elegant ideas. They are not complicated artifact. But they effectively automate the tasks they are supposed to perform. And the computing infrastructure, which supports the search algorithms, the advertising models, and the "cloud computing" in google, is effective, complicated, and requires to delica

Her Secret to Success

I have finished reading Kurt W. Beyer's book titled "Grace Hopper And The Invention of The Information Age." Naturally I want to know what is the secret Grace Hopper succeeded in her career. The book gave a wonderful presentation about Grace Hopper's career life. At the end of the book, it summarized several reasons that can contribute to the success of Grace Hopper. I am impressed by three listed in the book. First, she empowered youth, which seemed non-intuitive but also used by both Microsoft and Google and etc. She felt the young, inexperienced programmers can approach problems beyond "what is" and grasp "what could be". Second, since youth is fleeting, she had learned from margins during her career life. She mastered mathematics, military, insurance, aerospace engineering, etc., which resulted her intellectually informed mind was ready to approach any problem from a various of angels. And the last but not the least she embraced dist