Friday, December 31, 2010
The Selfish Gene
The idea of culture-evolution via "meme" is interesting. The idea of extended phenotype is also intriguing.
Saturday, December 25, 2010
Great Science Talks
- A talk on how bacteria perform group action.
- A talk on the scale and contents of our universe.
- A talk on an interesting topic: "fight against ageing".
- A talk on visual illusions.
- A talk providing a bird's eye view of the nature and implications of ideas in String Theory.
- A talk on the current state of WiTricity or wirelessly transmitted electricity (no wires!).
- A lucid talk on an idea about the origin of scents.
- A talk on how we come to possess strange beliefs.
Sunday, December 19, 2010
Euler's Mistake
He started with the equation x/(x-1) + x/(1-x) = 0,
rewrote it as 1/( 1-(1/x) ) + x/(1-x) = 0,
found power series for both functions and concluded:
... + 1/x^2 + 1/x + 1 + x + x^2 + ... = 0.
The conclusion is false as taking x = 1 makes it:
... + 1 + 1 + 1 + 1 + 1 + ... = 0.
The mistake is as follows:
1/( 1-(1/x) )'s power series is a geometric series which converges when
abs(1/x) less than 1, or abs(x) is greater than 1.
And, x/(1-x)'s power series is a geometric series which converges when
abs(x) is less than 1.
No value of x let both of them to converge at the same time.
Sunday, December 12, 2010
On Evolution
A list of books on Evolution and Creationism:
- Berra, Tim M. 1990. Evolution and the Myth of Creationism.
- Eldredge, Niles. 2000. The Triumph of Evolution and the Failure of Creationism.
- Futuyama, Douglas J. 1983. Science on Trial: The Case for Evolution.
- Kitcher, Philip. 1982. Abusing Science: The Case Against Creationism.
- Montagu, Ashley (ed.). 1983. Science and Creationism.
- Newell, Norman D. 1982. Creation and Evolution.
- Peacocke, A. R. 1979. Creation and the World of Science.
- Ruse, Michael. 1982. Darwinism Defended.
- Young Willard. 1985. Fallacies of Creationism.
A nice set of video lectures on Evolution.
A fabulous video course on Evolution, specially the 2nd (why we should keep evolution and religion separate, at least for now), 4th (simple things can produce remarkably intricate designs without any "understanding"), and 9th (evolution and brain, a great presentation) lectures.
Friday, October 1, 2010
Two great worlds
We, humans, are supposed to be in about midway between the very small (inner world of atoms) and the very large (galaxies and beyond) in terms of scale. We are mostly unaware of the extraordinary events going on in the world of minuscule beings (let's keep out the atoms, rather ponder about small life-forms) and in the world of giants. Two instruments, a microscope and a telescope, can give a glimpse into the two worlds which are fantastically bizarre from our everyday world. Why should we miss the fun?
Sunday, September 26, 2010
Programming for iPhone
- The work of handling various buttons and labels in a Window-based application gets delegated to a class called project-nameAppDelegate. In this class methods should be defined to respond to actions that take place in the iPhone's window, such as the pressing of a button or the movement of a slider. This class will also have instance variables whose values correspond to some control in the iPhone's window, such as the name of a label or the text displayed in an edible text box. These variables are called outlets, and like the action routines, in Interface Builder, those instance variables have to be connected to the actual control in the iPhone's window.
Saturday, September 25, 2010
Core Motion Framework
- There are 8 header files - they can be grouped into four categories: Initialization (CMMotionManager.h), Reporting (CMError.h, CMErrorDomain.h, and CMLogItem.h), Combined Motion Sensing (CMDeviceMotion.h), and Individual Motion Sensing (CMAccelerometer.h, CMAttitude.h and CMGyro.h).
- After creating an instance of CMMotionManager, an application can use it to receive 3 types of motion: raw accelerometer data, raw gyroscope data, and processed device-motion data. The processed device-motion data provided by Core Motion's sensor fusion algorithms gives the device's attitude and rotation-rate; the direction of gravity, and the acceleration the user is imparting to the device.
- An application can take one of 2 approaches when receiving motion data: by handling it at specified update intervals or periodically sampling the motion data.
- For handling motion updates at specified intervals, the following 3 steps should be taken: (Step:1) set accelerometerUpdateInterval property in the unit of seconds, (Step:2) call startAccelerometerUpdatesToQueue: withHandler:, passing in a block of type CMAccelerometerHandler, and (Step:3) accelerometer data is passed into the block as CMAccelerometerData. Similar 3 steps should be taken for Gyroscope or Device Motion.
- For periodic sampling of motion data, the following 2 steps should be taken: (Step:1) call startAccelerometerUpdates, and (Step:2) periodically access CMAccelerometerData objects by reading accelerometerData property. Similar 2 steps should be taken for Gyroscope and Device Motion.
- The availability of hardware and its activity status are accessible through the following 2 properties: accelerometerAvailable and accelerometerActive. Similar 2 properties are there for Gyroscope and Device Motion.
- CMAccelerometerData has a struct type property called acceleration (CMAcceleration) which contains 3 double's for the accelerations along the 3 axes in the unit of G's (gravitational force).
- CMGyroData has a struct type property called rotationRate (CMRotationRate) which contains 3 double's for the rotation rates around the 3 axes in the unit of radians per second. The sign follows the right hand rule: if the right hand is wrapped around one of the axes such that the tip of the thumb points toward the positive direction of that axis, a positive rotation is one toward the tips of the other fingers.
- CMDeviceMotion encapsulates measurements of the attitude, rotation rate, and acceleration of a device. There is a catch: the accelerometer by itself actually measures the sum of two distinct acceleration vectors: gravity and user acceleration; user acceleration being the acceleration that the user imparts on the device. Due to the fact that Core Motion is able to track a device's attitude using both the gyroscope and the accelerometer, it can differentiate between those two acceleration vectors, namely gravity and user acceleration. The 2 properties: gravity and userAcceleration, correspond to them. In toto, CMDeviceMotion has 4 properties: attitude (CMAttitude type, orientation of the device relative to a given frame of reference), gravity (CMAcceleration type, a vector expressed in the device's reference frame), rotationRate (CMRotationRate type, contains a measurement of gyroscope data whose bias has been removed by Core Motion Algorithms and is different from CMGyroData that gives raw gyroscope data), and userAcceleration (CMAcceleration type).
- CMAttitude represents a measurement of the device's attitude at a point in time. It offers 3 different mathematical representations of attitude: a rotation matrix (as rotationMatrix property of type CMRotationMatrix), a quaternion (as quaternion property of type CMQuaternion), and Euler angles (in radians, as roll, pitch, and yaw properties). Roll is a rotation around a longitudinal axis that passes through the device from its top to bottom, pitch is a rotation around a lateral axis that passes through the device from side to side, and yaw is a rotation around an axis that runs vertically through the device and this axis is perpendicular to the body of the device, with its origin at the center of gravity and directed toward the bottom of the device. CMRotationMatrix is of struct type and it contains 9 double's representing 9 entries (m11 through m33, e.g., m31 is the element in row 3 and column 1) of a 3-by-3 rotation matrix. CMQuaternion is also of struct type having 4 doubles (x (a value for X-axis), y, z, and w) in it. A quaternion offers a way to parameterize attitude. If q is an instance of CMQuaternion, mathematically it represents the following unit quaternion: q.x * i + q.y * j + q.z * k + q.w and a unit quaternion represents a rotation of theta radians about the unit vector {x, y, z} and {q.x, q.y, q.z, q.w} satisfies 4 relations: q.x = x * sin(theta/2), q.y = y*sin(theta/2), q.z = z*sin(theta/2), and q.w = cos(theta/2). CMAttitude class has a crucial instance method called, multiplyByInverseOfAttitude which takes in a CMAttitude object and multiplies its inverse with the receiving CMAttitude object and it replaces the receiving object with the change of attitude with respect to the passed-in attitude object. In order to use a CMAttitude object as a reference, it must be cached and passed as an argument to this method in subsequent calls.
- CMLogItem is a base class for Core Motion classes that handle specific types of motion events. Objects of this class represent a piece of time-tagged data that can be logged to a file. It has a read-only property called, timestamp, of type NSTimeInterval which records the time when a motion-event measurement was taken.
- CMErrorDomain has a NSString in it called, CMErrorDomain and it identifies the domain of the NSError objects returned from Core Motion.
- CMError is of enum type which currently (description is forthcoming, says the library reference!) has one value defined in it called, CMErrorNull = 100.
Subscribe to:
Posts (Atom)