What is deserving of film?

| | Comments (0)

What images are deserving of being stored on film? As I have only taken 7 exposures of film so far I have found myself thinking about this a good bit. I don't think I would want to us film for special occasions, as there are way too many things that could go wrong, and yet, I don't want to use film for frivolous photography because film is expensive. I suppose this puts film in the category of "serious art photography", but I don't like that, as I don't think "serious" and "art" go together, one pollutes the other. I do believe I want to use film only for art photography and not for the other purposes mentioned. I still question what I should shoot as I don't think I have ever thought about photography in this way. With clay I have to put a lot of effort and focus into what I do because the clay is precious. When thinking about it, film is even more precious because while you can make a bowl, even though it may be a bad bowl, it still has all of the basic properties of a bowl, it can hold things. With film, a bad exposure is just that, a bad exposure. I suspect my problem here in the question of what deserves film is more or less about my compositional skill, which at the moment is pretty non-existent. With digital I shoot until things look right, with film I don't have that option. Perhaps it's time for me to wander around with a viewfinder to my head and answer my own question.

Just thought of adding some of the more fun flash codes to my ExIf tool, but have decided against it for now unless someone directly requests it. I am perfectly happy with the binary choice of 0 (Flash did not fire) or 1 (Flash fired). All of the other options are roughly as easy from a logical standpoint, but they are much harder to pass into my existing code for encoding into the ExIf of image files.

0000.H = Flash did not fire.

0001.H = Flash fired.

0005.H = Strobe return light not detected.

0007.H = Strobe return light detected.

0009.H = Flash fired, compulsory flash mode

000D.H = Flash fired, compulsory flash mode, return light not detected

000F.H = Flash fired, compulsory flash mode, return light detected

0010.H = Flash did not fire, compulsory flash mode

0018.H = Flash did not fire, auto mode

0019.H = Flash fired, auto mode

001D.H = Flash fired, auto mode, return light not detected

001F.H = Flash fired, auto mode, return light detected

0020.H = No flash function

0041.H = Flash fired, red-eye reduction mode

0045.H = Flash fired, red-eye reduction mode, return light not detected

0047.H = Flash fired, red-eye reduction mode, return light detected

0049.H = Flash fired, compulsory flash mode, red-eye reduction mode

004D.H = Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected

004F.H = Flash fired, compulsory flash mode, red-eye reduction mode, return light detected

0059.H = Flash fired, auto mode, red-eye reduction mode

005D.H = Flash fired, auto mode, return light not detected, red-eye reduction mode

005F.H = Flash fired, auto mode, return light detected, red-eye reduction mode

On the other hand, I have decided to add all 21 types of light, since that seems more useful (and is less likely to give me a headache)

1 = Daylight

2 = Fluorescent

3 = Tungsten (incandescent light)

4 = Flash

9 = Fine weather

10 = Cloudy weather

11 = Shade

12 = Daylight fluorescent (D 5700 – 7100K)

13 = Day white fluorescent (N 4600 – 5400K)

14 = Cool white fluorescent (W 3900 – 4500K)

15 = White fluorescent (WW 3200 – 3700K)

17 = Standard light A

18 = Standard light B

19 = Standard light C

20 = D55

21 = D65

22 = D75

23 = D50

24 = ISO studio tungsten

255 = other light source

ExIf Bytes

| | Comments (0)

I am victorious over ExIf! The documentation for ExIf overcomplicates things. While ExIf uses a lot of different types (0x1 through 0xA), it is possible to interact with most common values utilizing only 2 of these, 0x2 and 0x5. 0x2 is the null terminated string, and 0x5 is the 2 pair of Long Ints, acting as a rational. It would also seem that even though the documentation suggests that length only matters for 0x2, it cares for all of them, so it is a must to give the length of the byte array used to carry the long ints. A small error on my part was trying to convert directly from String (because I used System.Window.Forms.TextBox to get the information) to byte[] without passing through the intermediate int, or trying to convert to byte[] from double, which was very nasty. I learned these little tricks about things by reading in ExIf information in the application itself without the aid of any little helper apps that try to clean things up, it make the structure a lot more clear.

For anyone else trying a similar exercise in futility, here is a bit of my code:

if (Type == 0x2)

{

tmpProp.Len = value.Length + 1;

value = value + nullChar;

tmpProp.Value = ASCIIEncoding.ASCII.GetBytes(value);

}

else if (Type == 0x5)

{

 

Byte[] tmp1 = BitConverter.GetBytes(Convert.ToInt32(value.Split('/')[0]));

Byte[] tmp2 = BitConverter.GetBytes(Convert.ToInt32(value.Split('/')[1]));

Byte[] tmp3 = new Byte[tmp1.Length + tmp2.Length];

tmp1.CopyTo(tmp3,0);

tmp2.CopyTo(tmp3, tmp1.Length);

 

tmpProp.Value = tmp3;

tmpProp.Len = tmp3.Length;

}

I love C#, so simple, but yet such a pain in the ass, all at once.

When I first started distance education (online) courses back in 2004 things were different than they are now. From that statement you might gather that things have improved, you know, something technical, so it has to have gotten better. The situation is quite the opposite. When I started online courses, I liked them better than lecture courses because they were better on many different aspects. Online instructors used to be specialized in what they did, they had a special affection for the online course delivery method. Often instructors would use such tools as web based chat, interactive websites and sometimes even video to keep students engaged in courses. The point being that the courses were actually web based courses, using the Internet as a key part of the instructional process and not just as the delivery method for the course. Now courses seem to be more structured like independent study courses that merely utilize the Internet as a method for sending in papers or taking quizzes. There is no instruction and often instructors are primarily lecturers looking to pick up a few extra hours on their schedule. To students, these instructors barely exist. I have a hard time remembering the names of my instructors because of their lack of interaction. I remember a time when I took online courses and I had a message in my inbox from an instructor at least once a week, sometimes more. Instructors would do things like send out links that may be of interest, or some little personal observation about course performance. Now the courses are pretty much forced to run themselves. It is quite a sad change. I feel as though the changes in the way online courses have been treated will eventually cause the online method to either be terminated, or force them into a completely different accreditation status.

I believe the change in the way distance education courses have been taught in recent years has a lot to do with adult learners wanting to complete degrees. Those adult students do not want a lot of a materials to handle, or any type of interaction, they just want to do the reading for the course, take the test, and then get a meaningless piece of paper to stick on the wall. I do not believe those students truly want an education, they want a degree. With that downturn of academic ambition there isn't a lot of reason for instructors to be involved or to do much more than a copy/paste online course in Blackboard. The courses are technically capable of running themselves, they can grade a lot of their own material and they can handle operating on a schedule, no intervention required, but do we really want to change the way academic institutions are structured to have students interacting with a course and not an instructor? If this pattern continues, that's what will happen, no more instructors, just courses and "course designers" (the people that presently prepare courses for instructors).

I hope that when I begin my masters program I won't find the same thing in graduate courses as I am finding in undergrad courses.

Still an ExIf No Go

| | Comments (0)

I am still trying to wrap my head around everything in ExIf. The Strings are no big deal, they just convert cleanly to byte arrays and go into the file, but I don't even know where to begin making things the right format for everything else. If anyone can make any sense of this, please see the documents below, and if you think you can help, request to be added to the project on SourceForge so you can have SVN access to active code.

http://msdn.microsoft.com/en-us/library/system.drawing.imaging.propertyitem.type.aspx Defines the types I am forced into using

http://www.exif.org/samples/nikon-e950.html Gives some examples of the fields and their values (still not helpful, since it doesn't give me the raw input form)

http://msdn.microsoft.com/en-us/library/ms534418%28VS.85%29.aspx The tags, in order, that VS supports.

http://exif35.svn.sourceforge.net/viewvc/exif35/ExIF35/ My source code. Feel free to poke around.

 

The problem:

Everything has to be converted to an array of bytes (byte[]). I do not know how to get things like 1/100, 2.8/1 and 50/1 into the proper forms (see first link above) to put them into the byte array. I am just so incredibly frustrated at this point.

Fighting ExIf

| | Comments (0)

The Exchangable Image-file Format is a nice little thing that keeps up with information relating to how a picture was taken, where it was taken, who took it and what is in the picture (as vague as how far from the camera the subject, or even detailed information about the subject). The use of ExIf is primarily linked to digital photography, but there are some instances when it doesn't have to be. The options for storing the type of sensor method used to capture the image is certainly a digital-only field, however, there are things such as "DTDigitized", which is "Date/Time Digitized" that would indicate that the moment the image was captured and the moment it was digitized might be more than a second apart (such as in film photography).

I am horrible at keeping up with notes, so I am attempting to write software that will store all of my relevant information for me. The software for storing the actual notes was not a big deal, it is just a form that writes everything to a giant XML file, no complication there. Where things get tricky is the writing of data to the files themselves. First of all, with as common as ExIf information is, I assumed that there was some type of text-based value used to identify the properties, that isn't the case, they are large integers (such as 0x8827 for "ISO Speed"). Those integers map to a specific property. The information itself is stored as individual arrays of bytes, no strings at all, everything is stored numerically. Things have to be written in a very particular way or else when the bytes are converted back to strings for reading, things don't match up and you get off the wall values.

Now I am fighting with C# and the .NET System.Drawing.Imaging library (specifically the PropertyValue class) in an attempt to make everything work out. I have to set like 4 values for each one ExIf property I want to use. It is going to be a very long night before this application is ready for use.

Writing Software

| | Comments (0)

It seems like lately I have been creating a lot of software applications, but not really getting any of them where I want them in terms of functionality. All of my apps are very specific in what they do and aren't really of much use to anyone else. Several of these applications are in the repositories on SourceForge and their code is publicly viewable. I am starting to think I should put some effort into all of these, except the ones relating to GITI, since they are merely supplements to the online system itself.

APA Reference Manager
The insanity this came from was dodging writing a paper, while still sort of working on it. It's pretty much the same as the web-based conversion services, except this one is on your PC and won't suddenly demand a fee to get your references [Screenshot]

ExIf 35
Now that I have a 35mm camera I started thinking about the fact that most film photogs carry around little notepads. Well, I don't like those notepads, at least not for long term storage of my picture information, so, I have written this little tool to store that information to a file, and eventually I hope to get the ability to write the ExIf data directly to the scanned negative files. [Screenshot]

GITI Desktop
A very basic desktop application that I have now abandoned working on. It is supposed to get information from GITI on the web and present it for the user, eventually it would theoretically be able to handle all of the modules of GITI, but that seems a little too hard at the moment. [Screenshot]

GITI Cookbook
This application has the GITI name, but isn't strictly for GITI. It can retrieve recipes from GITI's cookbook, but it can also retrieve recipes from a file, or take them from user input and then store them in a file. Very simple as far as use, but a really neat app to write from the standpoint of using XML and object orientation. [Screenshot]

GITI Notify
This is my second attempt at a GITI application. This focuses on upcoming items in the queue of GITI. Nothing too complicated, a very clean app in my opinion. I want to add more things to it, such as status updates. I also plan to make it minimize to the tray. [Screenshot]

GPSWriter
This one is basically complete. It takes in files written by my GPS receiver (in NMEA sentence files), and then runs them through a pre-written converter (GPSBabel) and then places them in the proper folder. Its not a big deal, but I have given it a drag and drop interface that will let me put in a batch of files very easily. The app I use in the background to make this work only takes one file at a time. [Screenshot]

Side By Side
This was born from one of the crazy little things that keeps me from replying to email. I hate having to move between windows or tabs or whatever to reply to a message. This little app will let me paste plain text into box 1 and type a response to it in box 2. I want to make this one more interesting, but it doesn't really go beyond what I have mentioned as far as expected functionality. It's like having two notepad windows side by side, except these two boxes are permanently bound by this single application. [Screenshot]

Virtual Kiln
This one I thought was neat at the time, but not so much now. It is a piece of software that mimics the controller on my kiln and tries to determine what the temperature might be when ramping up. In the future I might add the ability to save programs as well as kiln statistics in it. [Screenshot]

Chicken Lasagna Rolls

| | Comments (2)

Category: Chicken
Prep Time: 00:40:00
Cook Time: 00:40:00

12 Lasagna Noodles
3 Chicken Breasts, boneless
2 cups Heavy Cream
3 tbsp Butter, not margarine
2 tbsp AP Flour
1 pinch Nutmeg, ground
1 tsp Salt
2 tsp Black pepper, ground
1 tsp Garlic powder(Optional)
2 cups Marinara sauce
6 ounces Mozzarella cheese, grated
2 tsp Olive oil(Optional)

To cook the chicken and pasta:

1. Slice raw chicken breasts into pieces that are slightly longer than the width of the noodles, and will allow the noodle to be wrapped around it several times.

2. Brown chicken in a hot skillet, a non-stick skillet will require no oils. For other pan types, use about 2 tsp of olive oil to lubricate.

3. While browning chicken begin boiling water for the noodles, and cook them per the package directions. Let them drain on a cooling rack.

For the bechamel:

4. Once the chicken and noodles are cooked, heat the butter in a sauce pan until it begins to melt, then whisk in the flour, whisking continuously until the mixture is smooth and begins to bubble.

5. Once the mixture is bubbling, add the heavy cream (or milk, milk just takes longer to cook, but absolutely no 2% milk). Bring the mixture to a boil, whisking continuously and until the mixture reduces to a sauce that resembles alfredo or a nacho sauce. Remove from heat as soon as desired thickness is reached and whisk in nutmeg, salt, pepper and garlic (if desired).

Assembly:

6. Place one noodle on a cutting board or other clean surface in front of you. Spoon about 3 tablespoons of the bechamel on the length of the noodle, most nearest you, and gradually thinning as you approach the top. Sprinkle about 1/12th of the cheese (1/2 ounce) evenly along the length of the noodle. Place a piece of chicken (1 large piece, or 2 small pieces) horizontally on the noodle at the end nearest you. Roll up the noodle and place it face down in a baking dish. Repeat for all remaining noodles.

7. Pour any remaining bechamel on top of the noodles.

8. Pour marinara sauce over the noodles.

9. Bake at 350 degrees for about 40 minutes.

Mobile Computing Power

| | Comments (0)

In the past several months I have spent a lot of time hanging out in UNC-Charlotte's Atkins Library, and I have noticed an odd trend among students who take computers with them to the library... a lot of them plug in. When I began college, only a few people brought laptops to class or even to the library, and almost no one brought their power packs. In general, back then, laptops had enough power to run for a few hours without needing to be plugged in. Now software applications are more power hungry and CPUs just sort of let them have at what they want to use. When I was researching what computer I wanted to buy for the purpose of having a mobile computer for taking with me when I go places, the first thing I looked at was battery life. I was less concerned about overall computing power than battery life. It may be hard to do things with an underpowered CPU at times, but it is even more difficult to do things when you have no power for the CPU to use at all. So why is it in this age of everything mobile and social that laptops are built in such a way that they require the power adapter leash? Personally, I am sitting here with 94% and 13 hours of battery life available to me, and even though I plan to be here until about 9:30 this evening, I know that I will have more than enough power. On this laptop I have Windows 7, Office, Visual Studio and a few image applications (everything short of PhotoShop), and the "low power" CPU I have doesn't seem to struggle at all with them. I suppose having two cores is better than one, no matter what voltage those cores consume.

Arrival of Nikon N80QD

| | Comments (0)

The Nikon N80QD arrived at 11:50 this morning. I ordered a camera listed as "used" in Adorama's inventory. I ordered the one with the best rating that I could find (a rating of "D" for demo). Even with the device being of "demo" grade, I was expecting to see some signs that it had been touched before, but I had difficulty finding any. The camera came in its original box, in its plastic bag, complete with undisturbed silica gel packets. The only sign of the camera being used at all was the removed proof of purchase UPC on the side of the box. Also, the manual was missing, which isn't shocking, since it is worth a lot more away from the camera than it is with the camera.

March 2010
Sun Mon Tue Wed Thu Fri Sat
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Archive Resources

Powered by Movable Type 4.3-en
204-668-256