Sunday, June 29, 2008

How to Photograph Fireworks

Summertime evokes timeless images of fire hydrants spraying water into the air, ice cream trucks rumbling down neighborhood streets...and Fourth of July fireworks illuminating the night sky. This year, you can capture a slice of summer forever with your digital camera by photographing a fireworks display.

It's not hard to do: Equipped with a few photo tips and the right camera, you can take amazing fireworks of your own.

Fireworks Photography Basics

Click for full-size image.

The secret behind capturing fireworks: Use a slow shutter speed, so you can record those dramatic, colorful light trails as they explode through the sky. That also means you'll need some sort of camera support to capture a steady, unblurred shot.

The best way to stabilize your camera is with a tripod, where it can sit motionless through a long exposure. In a pinch, though, you can always try to brace yourself against a tree or a building, or hold the camera atop a monopod or walking stick.

If you have a digital SLR, here's another trick to avoid camera motion: Consider buying a shutter release cable (usually a $50-to-$70 option); this will allow you to snap a photo without physically touching the camera.

If your point-and-shoot or advanced point-and-shoot camera has a fireworks mode, go ahead and enable it--it will automatically adjust the camera's various settings for long-exposure night photography.

For the most part, I find that the preset fireworks mode achieves good results--it turns the flash to off, sets autofocus to infinity and exposure compensation to off, bumps down the shutter speed and aperture, and lowers the ISO.

Advanced photographers are better off going with long manual exposures for more creative control.

Some point-and-shoots may lack a fireworks-specific mode, but may still allow you to manually adjust the settings. (Most digital SLRs lack a preset fireworks mode entirely.) In those cases, set the camera to its lowest ISO setting, which will minimize the camera's tendency to generate distracting digital noise during the long exposure.

You should also turn off automatic focus and set the camera's focus to infinity, so it doesn't search helplessly for a subject in the dark when you're trying to start the exposure. No manual focus control? Try using the camera's landscape mode, which also sets the focus to infinity; the low-light environment will encourage the camera to shoot at a slow shutter speed by default.

If you can control the aperture setting on your point-and-shoot, dial in a low f/stop, somewhere between f/8 and f/16. That will help prevent overexposing the scene during the long exposure and avoid light "blooms" coming from the explosions in the sky.

And finally, choose a slow shutter speed--anywhere between 1 second and 16 seconds can work, depending upon the amount of ambient light and how many fireworks are in the sky. The longer your exposure, the more fireworks you'll capture at once, and the longer your light trails will be. So you might want to start with a shutter speed around 1 to 4 seconds and see if you like the results. For really long exposures, try covering the lens with your hand or the lens cap between bursts to avoid over-exposing the picture.

Click for full-size image.

Digital SLR users have an easier time, or at least more options, in picking the right settings for fireworks. Throw the camera on full manual mode, preselect your lens's focal length (unless you're using a prime lens that has only one focal length, the aperture will change every time you adjust the focal length), dial in a low aperture opening, and pick a slow shutter speed. Most SLRs also have a "bulb" mode, which leaves the shutter open for as long as you hold down the shutter release. You can use it to take exposures as much as 30 seconds long. If you go for super-long exposures, you might want to cover the lens between fireworks.

Saturday, June 28, 2008

Semester 1 Reflection

Communication for IT Professtionals
Grade Avarage: approx 75%
Content:
Comment:
Information Systems
Objective
-
Understand how IS are used in business to support the work that ppl do
- Apply problem identification skills to define info. requirement and analyze business processes
-Employ concepts of stakeholder participation, usability evaluation, work flow modelling and design, and collaborative work practices in IS design
-Explain basic theories of teams and work in a team to create a product
Appriciate that there are diff. system development methodologies and contrast the life-cycle and prototyping approaches
-Use report writing and presentation skills effectively
-Demonstrate continued and self-reflective learning
Topics:
The Role of ISs in Organisations
- How organisation operate and how ISs support their operation and add value
- Management and operations and their respective info. needs
- Business processes and work flows and how these can be modeled
- Technologies used in information systems
Information systems and people
-Stakeholder, users and their needs
- Usability evaluation
- Systems to support collaboration and knowledege sharing
- Theories and practices of team work
System Development
- Systems development life cycle
- Prototyping
-Analysing user needs and specifying requirements
- Design approaches
Learning and Info. Systems
- Setting and IS
-Using ISs for learning
Grade Avarage: approx 65%
Comment:
- Team Performance: Lack of communication between team member, often put off work and not plan well for assignment-> contact tutor or lecture one week before ass. due
- Presentation : not speak clearly, not planning well before giving speech
- Writing assessment: don't know how to write a report properly
- Multiple choice: not focusing on keywords.--> Improve reading and take note


Web Systems
Objective:
- Explain the role of OS, and manipulate its structure such as processes, file systems and memory management using Unix based scripting
- Describe and make use of distributed applications on the internet
- Identify and explain the role and function of the Internet, the World Wide Web, and their components
- Design and implement a website
- Identify and explain the role and function of the main components of a computers
Topic:
Operating System ( focusing on Unix)
- file systems and file manipulation
- scripting and regular expressions
- processes, threads, piping and redirections
-memory and process management
The web and Human Interaction
- web page development
- the Web, web services, Human Interface and Human interaction
- web services definition and description
The Internet and the web
- The internet infrastructure and components ( Routers and TCP/IP protocol suite)
- The web and its components( web sever, web browsers, search engines)
-Client-sever network interaction
Computing theory
-Representation og info. -binary, ASCII, Unicode
-Processing and storage of information
-Coding paradigms - assembler, complier, interpreter
Comment:
- Unix skill is still not sufficient--> practice regularly
- Web design not sufficient --> cant create my own website --> suck!

Grade Avarage: 82.5%
Content:
Comment:
Programming Fundamentals
Grade Avarage: approx: 95%
Content:
Comment:

Friday, June 20, 2008

Introduction to Collections
A collection — sometimes called a container — is simply an object that groups multiple elements into a single unit. Collections are used to store, retrieve, manipulate, and communicate aggregate data. Typically, they represent data items that form a natural group, such as a poker hand (a collection of cards), a mail folder (a collection of letters), or a telephone directory (a mapping of names to phone numbers).

If you've used the Java programming language — or just about any other programming language — you're already familiar with collections. Collection implementations in earlier (pre-1.2) versions of the Java platform included Vector, Hashtable, and array. However, those earlier versions did not contain a collections framework.

What Is a Collections Framework?

A collections framework is a unified architecture for representing and manipulating collections. All collections frameworks contain the following:
  • Interfaces: These are abstract data types that represent collections. Interfaces allow collections to be manipulated independently of the details of their representation. In object-oriented languages, interfaces generally form a hierarchy.
  • Implementations: These are the concrete implementations of the collection interfaces. In essence, they are reusable data structures.
  • Algorithms: These are the methods that perform useful computations, such as searching and sorting, on objects that implement collection interfaces. The algorithms are said to be polymorphic: that is, the same method can be used on many different implementations of the appropriate collection interface. In essence, algorithms are reusable functionality.

Apart from the Java Collections Framework, the best-known examples of collections frameworks are the C++ Standard Template Library (STL) and Smalltalk's collection hierarchy. Historically, collections frameworks have been quite complex, which gave them a reputation for having a steep learning curve. We believe that the Java Collections Framework breaks with this tradition, as you will learn for yourself in this chapter.

Benefits of the Java Collections Framework

The Java Collections Framework provides the following benefits:
  • Reduces programming effort: By providing useful data structures and algorithms, the Collections Framework frees you to concentrate on the important parts of your program rather than on the low-level "plumbing" required to make it work. By facilitating interoperability among unrelated APIs, the Java Collections Framework frees you from writing adapter objects or conversion code to connect APIs.
  • Increases program speed and quality: This Collections Framework provides high-performance, high-quality implementations of useful data structures and algorithms. The various implementations of each interface are interchangeable, so programs can be easily tuned by switching collection implementations. Because you're freed from the drudgery of writing your own data structures, you'll have more time to devote to improving programs' quality and performance.
  • Allows interoperability among unrelated APIs: The collection interfaces are the vernacular by which APIs pass collections back and forth. If my network administration API furnishes a collection of node names and if your GUI toolkit expects a collection of column headings, our APIs will interoperate seamlessly, even though they were written independently.
  • Reduces effort to learn and to use new APIs: Many APIs naturally take collections on input and furnish them as output. In the past, each such API had a small sub-API devoted to manipulating its collections. There was little consistency among these ad hoc collections sub-APIs, so you had to learn each one from scratch, and it was easy to make mistakes when using them. With the advent of standard collection interfaces, the problem went away.
  • Reduces effort to design new APIs: This is the flip side of the previous advantage. Designers and implementers don't have to reinvent the wheel each time they create an API that relies on collections; instead, they can use standard collection interfaces.
  • Fosters software reuse: New data structures that conform to the standard collection interfaces are by nature reusable. The same goes for new algorithms that operate on objects that implement these interfaces.

Thursday, June 19, 2008

Google, behind the screen

Call Number :338.761 Goog
A film made by SBS

Google Personels:

Vint Cerf
Marissa Mayer
Franz Josef Och
Adam Smith
Chikai Ohazama
Nikesh Aora

Other people interviewed in the film

Brewster Kahle - Internet Archieve
- Open Content Library
Google Services:
Google Moon

Issues:
- Monopoly
- Privacy - Google store users' data ( keyword, websites..., Gmail )

Sunday, June 15, 2008

Anti-Technology Technologies?

"A story from the NYTimes about metering internet traffic caught my eye. I thought the exchange of information over the Internet was supposed to be a good thing? Couldn't we use technology more constructively? For example, if there is too much network traffic for video and radio channels, why don't we offset with the increased use of P2P technologies like BitTorrent? Why don't we use wireless networks to reduce the traffic on the wired infrastructure? Such technologies often have highly desirable properties. For example, BitTorrent is excellent for rapidly increasing the availability of popular files while automatically balancing the network traffic, since the faster and closer connections will automatically wind up being favored. Instead, we have an increasing trend for anti-technology technologies and twisted narrow economic solutions such as those discussed in the NYTimes article, and attempts to restrict the disruptive communications technologies. You may remember how FM radio was delayed for years; part of the security requirements of a major company includes anti-P2P software, as well as locking down the wireless communications extremely tightly — but there are still gaps for the bad guys, while the main victims are the legitimate users of these technologies. Can you think of other examples? Do you have constructive solutions?"

Just an interesting article i picked up from slashdot.net .

Tuesday, June 10, 2008

Podcast

I just find a new fanstatic way to study. That is learning through using podcast uploaded by famous Uni such as Stanford. With this way of learning, I hope my knowledge can be broadened to no limit.

This is the link :

http://deimos.apple.com/WebObjects/Core.woa/Browsev2/itunes.stanford.edu
http://www.plus.maths.org/cloud/ptag/tag_id/342/computer+science
http://oedb.org/library/beginning-online-learning/skip-the-tuition:-100-free-podcasts-from-the-best-colleges-in-the-world
http://www.oculture.com/2007/07/freeonlinecourses.html

Monday, June 2, 2008

Assignment 4 CITP

Introduction

In recent years there has been a growing interest in open source software and open

source content development initiatives

The technology software has become a major concern of computer ethics recently. With the development of communication devices and the improved telecommunication infrastructure, the Internet emerged and has been using around the world. Therefore, the distribution of software and cooperation on the Internet are technically getting easier and faster. Open source software development in the Internet opens a new possibility for software developers which allow them to practice programming over long distances. Since software is considered as a result of intellectual labor, this new technology supports intellectual property by providing more powerful and more efficient ways to create and disseminate computer softwares. Thus, new challenges to understanding of intellectual property have been brough with the development of Open Source Software. That is distribution of software with source code which is made available for others to study and improve (Coar 2006 Source Code Definition).

OSS movement caused by a cultural attitude of oppsition to the restrictive rights under intellectual property laws in US academic. Then it was particularly opposing to firms in using the operating system UNIX developed at Bell Laboratories as commercial purposes. In 1985, Richard Stallman established the Free Software Foundation (FSF), a non-profit organisation dedicated to the development of Free Software. However, some parts of the FSF community considerd the limitation of ifselt; therefore, Open Source Initiative lead by Bruce Peren and Eric Raymond was established to promote OSS on a realistic view in 1998 (Henley and Kemp 2008 p78)

Recently, many big firms such as IBM and Sun Microsystem are strongly supporting OSS movement. For example, IBM established a Linux Technology Centre to work on developing OSS which now employs more than 600 Linux kernel developers (Charlson, 2007). Also, in 2005 Sun open sourced its operating system with the OpenSolaris project and it continues to employ hundreds of software engineers to work on OpenSolaris (OpenSolaris FAQ). Besides, a considerable number of software developers are giving freely their contribution to OSS. SourceForge.net, a repository of open source projects, lists more than 178,467 projects and more than 1 millions registered users (SourceForge). Consequently, this phenomenon gives much attention to researchers in the field.

Open source software is making a large impact on many aspects of society in the ethics in computer professionals. Since producing software is a business in which computer engineers

develop the software for the profit of the company; yet Open Source Software appears to be not. Accordingly, the question of individual‘s motivation to contribute their works in OSS community has been extensively researched. Potential explanations are the motivation to build up ones’s reputation by gainning recognition for their ability was associated with enhancing one’s career prospect (Hars and Ou 2002, Lakhani and Wolf 2005); the motivation to learn and enhance their skills (Lakhani & von Hippel, 2003,Ye and Kishida 2003). Lastly, altruism has been argued as one of the primary intrinsic incentives for OSS developers (Wu et al. 2007). However, ... It is obvious that the values ones might get out from OSS in realation to the various private benefits compesate the OSS developers for their private cost of programmings. More importantly, there are different levels of intrinsic and extrinsic motivations relevant; therefore, it is vital to understand and to evaluate these motivations.

Altruism

Altruism has been argued as the primary intrinsic motivation for OSS developers. ‘‘Altruism . . . is a natural part of human nature [and] . . . is exhibited in some manner by everyone’’ (Ozinga 1999 cited in Wu et al. 2007 p. 234). The context discussed about the altruism in the OSS community is the helping behavior of knowledgeable people who want to share what they know with the community.

Pure altruism and reciprocal altruism must also be mentioned as important motives for publishing the source code of one’s software. With its promotion of computer users’ right to use and redistribute to some extent computer programs, OSS is regareded as a social movement based on fundamental democratic principles (Richard Stallman 1999 cited in Britzer et al. 2007 p164). Apprently, OSS developers would like to help others, and also at the same time give something back to those who assisted them. Another branch of altruism of OSS developers can be seen as reciprocal altruism (Wu et al. 2007 p254). In other words, OSS paticipants who contribute freely their work into a projects have a belief that other programmers investing efforts in related problems will also make the resulting solution publicly available.

However, altruism is to some extent a motivation of OSS developers. Hars and Ou’s empirical study (2002 p6 ) suggests different levels of altruism as a motivator, showing that only 16.5% of the respondents ranked altruism as high (6 out of 7) or very high (7 out of 7), whereas peer-recognition and human capital enhancement are ranked with 43% and 88% of respondents respectively. Additionally, Lakhani and Hippel (2003 p931) observe that in providing answers to questions asked in the Apache system, there is about 2% of the knowledge providers are responsible for about 50% of the answers to questions posted on the help system and 50% of the questions are provided by 24% of the knowledge providers .This means that only few individuals are engaging in helping others. The findings from these empirical research lead to understand that software contributors are more focused on what they may gain from others in the community and may also have in mind the implications of their contribution on their career prospects (Lerner and Tirole, 2002 cited in Lakhani and Wolf 2005 p6).

Self-development

The second motivation of OSS developers is self-development through learning from others in the field, and enhancing their abilities and skills. Ye and Kishida (2003 p1) argue that the intrinsic satisfaction for developer obtained by learning in OSS community is one of the driving forces that motivate developers to get involved in OSS projects. One reason behind this is easy accessibility of source code when it becomes open for every software developers, containing the knowledge and creativity in there. It then is providing the learning resource that attracts developers to participate in the OSS community. Thus developers are able to learn from the system, from each other.

Futhermore, developers may be motivated by learning through exploring or doing new OSS project (Ye and Kishida 2003 p7). In the first form of learning, learners attempt to overcome an existing problem. For example, LarryWall created Perl a tool to automatically generate webpages because he ran into a problem he could not solve with existing tools. In learning by doing new OSS projects, developers have the oppurtunities to apply their existing knowledge by undertake practical tasks of a project, thus deepening their understanding of a certain field and improving their programming skills.

Participants also improve their programming skill through the active peer review that is prevalent in OSS projects (Raymond 1990; Wayner 2000 cited in Lakhani and Wolf 2005, p7) Improvement programming skills, an extrinsic motivation related to human capital improvement, was a close second, with 41.8% participants saying it was an important motivator (Lakhani and Wolf 2005, p 12). Linus Torvards started Linux partially because he wanted to learn more about the architecture of Intel 386, so he develops an operating system for it.

In addition, most developers who start an OSS project are obviously master programmers; therefore, their systems could be the examples of excellent programming practice. The skill and knowledge embedded in those systems are legitimately offered to developers since they are freely distributed. It is just similar to the way that ones learn to write by reading literature, thus reading existing source code of expert programmer is a powerful way to master the programming practice.

Despite self-development plays importatnt role underlying motivations of OSS developers, this is still insufficient for explaining why OSS developers contributing their work freely and making the programming publicly available and for free. Accordingly, there must be other factors explaining the OSS phenomenon.

Gaining Reputation

One of the main motivations of OSS developers is gaining reputation within the OSS community. This motivation involves developers’s desire to establish their reputation and to gain recoginized for their ability. A number of researchers have argued that gaining a reputation within a OSS community is an important incentive for developers (Lerner and Tirole, 2002; cited in Bitzer et al. 2007 p.161). Furthermore, building up reputation through OSS appears to be an instrument in enhancing developers’s career prospect since they might have the oppurtunities to demonstrate their capability and skillfulness in programming

OSS developers establish their reputation by obtaining recognition from their peers. Raymond (1999, p 384), a very experienced participant in open source projects, describes in his paper that open source software development style allow its programmers to receive constructive feedback about the quality of their contribution. Through the process of receiving opinions from users on their

products the developers are able to notice that how their works are appreciated. This might encourage the authors spending additional effort to improve their code.

Similarly, Lakhani and von Hippel (2003) present results from case studies at Apache, the most popular web sever software on the Internet. As Apache is a relatively complex software program, a field support system is created to assist user having difficulties with the program. Books, online journal, and an online collection of answers to frequenly asked questions are sources of technical help for Apache users in addtion to Usenet help forum. The possibility of gaining reputation and related benefits through helping users is considerable because the identity of providers can be preserved through their e-mail addresses or user names to the answers they post( Lakhani and von Hippel, 2003 p.937 ).

Since the reputation of OSS developers has been built strongly within the community, this will become an effective way to advertise one’s skillfulness and capabilities. Hars and Ou (2002, p4)

argue that the achievement in open source project can provide participants a higher marketability than others to the commercial software employers in the competence of IT industry. This argument of self-marketing appears to be fitted to the most managers’s recuitment of software developers. With the wide range in programming skills, it is obvious that vendors will recognize

the value of the individuals who have a record of producing succesful software. This suggests that the IT firms’ role, along with the presence of paid participants, is increasingly important by providing resources for the OSS communities (Lakhani and Wolf, 2005 p17).

These evidences indicate that the perception that participation enhances one's professional reputation is a significant predictor of individual motivation. They are also consistent with prior research, providing additional evidence that building reputation is a strong motivator for OSS developers. These researches also provide weak evidence that OSS developers who enjoy helping others provide more helpful advice. One potential explanation for the weak influence of intrinsic motivations may be due the monetary rewards having influence on OSS developers.