Configuring Mail.app to use SSL without the annoying "The root certificate for this server could not be verified" warning.


Mail asks if you want to accept an SSL certificate for each IMAP account. This happens each time Mail opens, even if you click Remember My Decision.

Solution

1. Click "Show certificate" when Mail asks if you want to accept the certificate.
2. Press the Option key while dragging the certificate to the desktop. The certificate's icon appears on the desktop.
3. Add the certificate to your keychain by dragging its icon on top of Keychain Access. Tip: Keychain Access is located in the Utilities folder (/Applications/Utilities).
4. When Keychain Access opens, you may be prompted to select which keychain to import to. If this happens, choose a keychain and also select X509 Anchors.

Additional information

Mail will continue to ask if you want to accept an SSL certificate each time it opens if the certificate is an expired server certificate or is signed by an unknown certificate authority.

 
 
 
 

Implementing favicon.ico with tomcat


If you wish to use  the favicon.ico file, be sure to add the following to the web.xml file in the conf directory:
    <mime-mapping>
        <extension>ico</extension>
        <mime-type>image/x-icon</mime-type>
    </mime-mapping>

Then just put your favicon.ico file in the root directory of your web application.  Voila!

 
 
 
 

Bosch 4000-09 10" Worksite Table Saw


I just ordered my new tablesaw!&nbsp; It is a Bosch 4000-09 10" Worksite Table Saw with Gravity-Rise Wheeled Stand. I hope that this one will surpass my old one in the quality and accuracy because I'd love to build some nicer pieces of furniture! After I put it to use, I'll let you know how well it works!

 
 
 
 

Crabgrass in the yard... grrr


Crabgrass image - grrr
Wow!  So it seems that last year somehow crabgrass got a foothold in my yard, and this year it has permeated just about everywhere in my garden and on the side of my house.  Noelle and I are establishing a garden this spring, and it wasn't until now that I realized how bad it had become.  So what is to be done?  For herbicedes, Drive and Acclaim Extra have shown good-to-excellent efficacy for postemergent crabgrass control.  However, I really don't want to use toxins in my lawn.  The only other option is to remove all the grass and start over, so for now I am reluctantly using Drive in hopes that the crabgrass will die off.
 
 
 
 
 

Handling moles in the yard...


I'm starting to have trouble with moles in the yard. And I spent a lot of time searching the Web for information about getting rid of them. The consensus is that nothing works well, but traps are better than poisons or smoke bombs. However, I also learned that Glenn R. Dudderar, Extension Wildlife Specialist at Michigan State University found that applying a diluted solution of castor oil "effectively eliminated the visible surface tunneling of eastern moles" at 26 of 27 test sites. I've tried it and it seemed to work well for me.

While there are directions on the packages of 'Scoot Mole' and 'Mole Med' to follow, I also found a recipe in a newspaper. This formula uses substantially less castor oil than called for on the package, but as I said, it seemed to work for me. I'm going to do it again this spring.

The formula and instructions are - [quote]

Ingredients:

  • 8 oz. of castor oil
  • 3 oz of Ivory dish soap
  • 7 oz of water

From this concentrated solution, add water at a ratio of two ounces of concentrate to one gallon of water. This means that your 18 ounces of concentrate will make nine gallons of mole deterrent, which will cover 5,000 square feet.

Instructions:

You are urged to spray the perimeter of your property rather than the whole yard. A 4 to 6 foot band around your lawn will keep new families of moles away for six years. [note: I think this was supposed to say six MONTHS.]

You must "water in" the castor oil to get it into the soil. Don't apply this solution when there is a threat of heavy rains, as the oil may wash away with the excess water runoff. Don't be alarmed if the moles cross the barrier after you apply the solution. It takes time and water to get the oil to penetrate the soil to a depth where the moles tunnel.

[/quote]

 
 
 
 

Installing drivers for a Highpoint RocketRaid card in Fedora.


Installing a Highpoint RocketRaid 1820A and Fedora Core 3 kernel 681 on i386 Single Processor System.

I have successfully built drivers for the Highpoint RocketRaid 1820A for Fedora Core 3 on i386 Single Processor System.  However, while finding doumentation online was the key to building the driver, I thought I'd share the process with you in as much detail as I can in hopes that this will be useful to other people.

If you would like my copy of the driver, just email me!

If you want to follow these directions, first install the card on your system and configure your disk array on bootup.  Boot into linux and (as root):

Step 1:  DOWNLOAD THE KERNEL SOURCE FOR YOUR KERNEL VERSION.
a.  Download kernel source RPM from http://download.fedora.redhat.com/pub/fedora/linux/core/updates/3/SRPMS/.  For the latest kernel that I have, the source file was kernel-2.6.9-1.681_FC3.src.rpm.

b.  Install your new kernel:
# rpm -i kernel-2.6.9-1.681_FC3.src.rpm -vv

c.  Prepare the kernel source code with Red Hat modifications
# cd /usr/src/redhat/SPECS
# rpmbuild -bp --target=i686 kernel-2.6.spec

d. cd to kernel tree located in /usr/src/redhat/BUILD/.  Verify you are in there by looking at your directory and noting a configs directory. In resulting tree, the configurations for the specific kernels shipped in Fedora Core 3 are in the /configs/ directory. For example, the i686 SMP configuration file is named /configs/kernel-<version>-i686.config. The multi-processor machine source has SMP appended to the filename. Issue the following command to place the desired configuration file in the proper place for building:
# cp <desired-file> ./.config

e. Now build the source objects.  Yes, this is necessary...
# make oldconfig
# make

Congratulations!  You are one step closer to hard drive Nirvana!

Step 2: DOWNLOAD AND BUILD THE HIGHPOINT DRIVER
a. Download the openbuild driver from http://www.highpoint-tech.com.  The appropriate driver I downloaded: rr182x-openbuild-v1.11.tgz.  While you are there, download the HighPoint Raid Management Software.  Expand the files with
# tar -zxvf rr182x-openbuild-v1.11.tgz

b. You now need to build the driver against the source directory you just worked on.  Issue the command from within the directory of your driver source.  On Fedora Core 3, this is:
# make KERNELDIR=/usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9
 
Step 3:  INSTALL AND TEST YOUR DRIVER
a.  Not quite done!  In order to install it, you need to upgrade your module-init-tools (you can get them from http://www.kernel.org/pub/linux/kernel/people/rusty/modules/). Download the module-init-tools-3.0.tar.gz.  NOTE: 3.1 module-init-tools will not work. Follow the included instructions after exploding the archive using the command:
# tar -zxvf module-init-tools-3.0.tar.gz

b. Now that you've installed the module-init-tools, you need to update your local databases:
# depmod

b. This driver relies on other modules that you have to make certain are loaded first.  So (this is from the README from the highpoint source) first load module "scsi_mod" and "sd_mod" if they are not built into kernel:
 # modprobe sd_mod

c. Load your new driver. For kernel 2.6 (Fedora core 2 and 3), the driver module is "hptmv.ko".
# insmod ./hptmv.ko

d.  If you haven't, download the HighPoint Raid Management software. Run server, run client, log in and test!  If your system plays nicely, you should see your happy new card and drivers.
   
Step 4:  LOADING AND MOUNTING YOUR RAID DISKS
a. Your system is likely different then mine, but I have simply one large array on the card, and linux is NOT installed on my raid array at boot.  Please modify your instructions accordingly, and look elsewhere if you want to install linux on your raid array.  These install instructions will not help you. 

With that in mind, you need to first partition the disk.  I chose 1 partition.  With only one mounted array, you can simply partition it with:
# fdisk /dev/sda

b. Now you can format your partition(s).  They will be mounted (if your drive was sda) as sda1 for the first, sda2 for the second.  You can choose any format you like, I chose the new journaling linux format.
# mkfs -t ext3 /dev/sda1

c. Finally, you need to mount the disk on your system.  There are two steps, the first is creating a mountpoint, which is just a folder that will map to the drive.  It can be most anywhere, the most common places are either at the root level of your system such as /raid or as in the /mnt directory such as /mnt/raid.  The folder name doesn't matter, as long as it doesn't conflict with other resources already installed on your system.  The second task is telling your linux box to mount the new disk at that point.
# mkdir /mnt/raid
# mount -t ext3 /dev/sda1 /mnt/raid

Step 5: CONFIGURING TO LOAD DRIVERS AND MOUNT UPON BOOT
Now go ahead and try to access the new disk at that directory!  You should have no problems.  You are also almost done.  The problem is that your mounting of the disk, as well as the installation of the drivers themselves was only temporary.  The only thing that will remain is the directory you created as a mountpoint.  If you want them to load at the same mountpoint on boot, continue with the following directions.

a.  Configure system to load and mount the new drive.  You need to first copy the driver to a common place where it will look at boot. Make certain you adjust the path for your kernel build version.  cd to your compiled driver directory and do that:
# cp hptmv.ko /lib/modules/2.6.9-1.681_FC3/kernel/drivers/scsi

b.  Now you need to instruct the system to load the driver on boot.  Edit /etc/rc.sysinit and install the following lines of code right after the SCSI module loads.  I will display a few lines from rc.sysinit as well as my code, with the additions in bold.
# SCSI
for module in `/sbin/modprobe -c | awk '/^alias[[:space:]]+scsi_hostadapter[[:space:]]/ { print $3 }'` $scsi; do
        load_module $module
done
load_module floppy

# Add in Highpoint Raid Card
/sbin/insmod /lib/modules/2.6.9-1.681_FC3/kernel/drivers/scsi/hptmv.ko

c. Save your changes and reboot.  You can cross your fingers, sacrifice a chicken, or anything that will bring you luck, but you shouldn't need it!  You are done!

I hope this was helpful!  If so, drop me a note of thanks.  If there are errors here, point them out to me and I will adjust the instructions.


 
 
 
 

Adium X


After a long while of working with very many (too many) instant messenger clients to chat with coworkers, friends, and antifriends, I found myself tired of all my communicators. Even iChat had it's drawbacks... huge (did I say huge) fonts, and still only AIM. What is one to do?

Enter Adium X. An all in one open source chat client that looks amazing on OS X, and is even nicer to use. Fully customizable, and at least for now, my best recommendation for a chat client on OS X.

You Software


A recent application I have recently adopted to my mac is the beta of you control:desktops. This application offers all the power of workspace switching that I find on *ix systems, with all the chrome and feel of a new mac.  I love how the tool is integrated into the menu bar, and although I am still getting adjusted to it, I find myself already relying on it for my day to day uses.

I will play with it a bit more and give a better accounting of the product.  Stay tuned!

Check out the software at: http://www.yousoftware.com/desktops/

Doctor Who


Yes they are in fact producing new episodes of Doctor Who!  The first episode is called Rose and may not make it to the US, but I hope someone picks it up!

Integrating FCKEditor into Roller


For those of you who have worked with FCKeditor, you may wonder how to include this growing product in JRoller.  Well, it is actually pretty easy.  I'll maintain this site from release to release, if these instructions do not work for you, please email me, and I will gladly update them.

Downloading FCKEditor:

  1. Download the tar archive from http://xtian.stonescape.net/downloads/Fck4Roller.tar
  2. Unpack the tar archive, which includes the FCKEditor 2.0 RC2 source (FCKeditor), a README, and the JSP file for use.

Installing:

  1. Copy FCKeditor directory to {roller dir}/editor.
  2. Copy editor-fckeditor.jsp file to {roller dir}/weblog
  3. Go to the admin panel within JRoller, and add the new editor to your list.

Configuring:

  • In editor-fckeditor.jsp, you can easily change the default height of the editor by changing the following line from the default height of 400px: 
    • oFCKeditor.Height=400;
  • In addition, you can alter the components of the editor by changing the toolbar set.  The default set is set to "Roller" in the file editor-fckeditor.jsp.  Make the following modifications:
    1. If you like, alter the name of the toolbar you want to use in file editor-fckeditor.jsp:  oFCKeditor.ToolbarSet="Roller";
    2. Alter the definition of "Roller in the fckconfig.js file located in the  FCKeditor folder.  I have defined the following:
 FCKConfig.ToolbarSets["Roller"] = [
    ['Source','-','Cut','Copy','Paste','PasteText','PasteWord'],
    ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
    ['Link','Unlink'],
    ['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
    ['Table','Rule','SpecialChar','Smiley'],
    ['OrderedList','UnorderedList','-','Outdent','Indent'],
    ['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
    ['FontFormat','FontName','FontSize','TextColor']
] ;
I have removed the Preview, NewPage, Print, Image, Style, BGColor command as they didn't have a lot of meaning for Roller.  The one command that is questionable is the Image command, because I do not know what the policies for upoading and linking  on a site are.

Other possible items:  the smilies are defaulted in the fckconfig.js file to use the ones with FCKeditor.  You can change the path to load another set of smilies.  The other features, "image browsing", "link upload", etc. are pretty neat, but depend a lot on the specific site.

If you have any questions, please look at the FCKeditor message boards, or email me.
 
 
 
 

Happy New Years 2004


Happy New Years 2004! Just returned from Costa Rica. Soon will have plenty of pics online to share.

I'm about 5 months behind on my journal, mainly because I've got some great technologies I want to include in my journal, and they haven't been invented yet... but as soon as I'm done coding it will all go online. So how was Costa Rica? Awesome! Great! Have a parasite though... ah well... damn monkeys.

Finished the marathon with great time, but I had a broken toe, and there are issues from that whole thing.

Life has a way of moving quickly at times. Julie and I are no longer dating, which is a bit sad. Mom and I are not talking, but my relationship with my sister is getting stronger. I hope mom channels her desire for closeness to my sis for a bit, because she needs it... As far as my mom, who knows. She isn't one to apologize, and the way she treated me this xmas, I really need an apology to move forward with her.

So I am still now a full time telecommuter, which means that when I wake I exercise in the morning, or at times check out the traffic cameras for the area (which brings me a disturbing amount of joy).

Speaking of sad moments, Sherri is leaving to live in NYC! I will miss her so so so much!

Update on my war on Ants! I pushed them back into their holes, but apparently a new front is opening up... gave up on the sticky things, and moving right into chemical warfare.

Oh yeah, get ready for a site redesign. It will take aboua billion months, perhaps longer (you know how life is...)

Amusing site for the month: Google.com, type "weapons of mass destruction" in the find box, and click the button "I'm feeling lucky". Old but fun...
 
 
 
 

Lord of the Rings Symphony


When I heard that the amazing work behind the music of the Lord of the Rings trilogy has grown into a full orchestral concert, and that it was selling out all over the world, I had to jump on the bandwagon! Before I could put down my burning visa card, I had ordered two tickets to the performance in the Meyerhoff Symphony Hall in downtown Baltimore.

After having fully experienced the concert, I have to admit, I was a bit let down. The music was, actually, excellent. Johan De Meij did a great job in his composition, and on that merit alone I would say the symphony was worth it. There was also a companion video, done in earthy tones and hilighting the story from the epic movie, that played along with the concert, and that was also well done. So what was the problem? The two elements together, at least in my opinion, left the listener submerged in an onslaught of visual and audio images that together distracted them from the whole. The orchestral concert tried too hard to be both an orchestral piece AND an epic movie in short. The end result was that I was less then satisfied as the visual told too little of the story to be truly satisfying, and the symphony itself showed a weakness in appeasing the visual needs of the presentation, leaving what should be some recurring themes throughout the synphony as a one hit wonder, and other tunes that played constantly throughout the epic trilogy should only have been played in the beginning, and perhaps the end of the symphony.

At the end of the performance, I didn't feel like I quite listened to what the symphony should have become, and was saddened, because I felt that the musical themes from the movie were strong enough to actually be pulled together into a symphony on their own merits without having to tie themselves so close to the plot and timeline of the movie. The result was an orchestral concert for the massess, with so much paid in the lifeblood of the symphony to appease the listeners that very little is left to truly enjoy over time.

If you are interested, you can buy the orchestral CD here.

 
 
 
 

Upgrading your TiVo


For those of you who are seeking to upgrade your TiVo, and are seeking information as to how to perform such a task, the internet is ripe with information. What is harder to find but just as useful is the answer to the question of what can go wrong, and perhaps, what more could be added to what you have read online.

My first warning is not to increase your TiVo storage by adding another hard drive without first backing up and them expanding your archive on the new hard drive with the -s 127 option. This will expand the amount of swap space on your new larger hard drive. Do not do what I did and just throw in another hard drive, blessing it. Why? Well, if you do not, the most likely possibility is that your TiVo will start crashing more and more over time, as it cannot handle processing the larger capacity of your hard drives in the memory of your TiVo, and without the swap space as backup, bad things happen.

With this first bit of learning, I set my feet on the path of a true, powerful upgrade... adding networking capability, repairing the crashing, and speeding up the aging device.

Part 2, network card etc.

After some careful research, I set out to buy the TiVo CacheCard from 9th Tee Enterprises. I also had to buy some RAM, in my case, 512 MB for just under $100. Yep, in a few years someone will read this and laugh at how expensive it was, but believe me that in todays market it was a pretty damn good deal! I then properly removed the hard drives, backed the data up on a linux machine, installed the cachecard drivers from the site, as well as the TivoFlash utility (in my case from an older build, because the most recent drivers caused a failure in the drive), and placed the new drives carefully back in the TiVo unit. After some careful working in the tight space, I reassembled the case and plugged it all back in!

Green Screen of Death

Yes, that what came next. A most unhappy me seeing the "GSOD". However, after some thought it occured to me that TiVo wouldn't come up with such a thing unless it was surprisingly common, so I went back online, and the "GSOD" only apparently means that there were some file corruption issues that TiVo was repairing, and that things should be back to normal within 15 mins to 24 hours. Sure enough, when I returned downstairs to check on my TiVo again, it was playing TV like nothing had happened!

Playing with the new installation

The first thing I did was the ",#401" prefix to test the TiVo dial up over the network. And it worked! No more POTS for the TiVo! Yes, I do plan on switching my POTS to an internet phone, and TiVo was my last holdout. Now no more baby bells! The second was to telnet into the box and "peek around". Again, no problem. And the navigational speed of my TiVo is "zippy", or another way of saying it was that it is not the happy side of fast!

So what did I install on my TiVo? First, I installed the tivo-bin.tar.gz files in /var/hack/bin. That gave me all the linux commands I needed with the possible exception of a good text editor... yes you have to ftp for now! Second, I followed the advice of this site for downloading your TiVo programming to your mac to burn to DVD from this web page. Now, if there ever is a crash again, I can determine the cause from the logs, edit my TiVo online, and overall have a very enjoyable time with it. If you have any questions in your own upgrade, feel free to email me. Glad to help!

 
 
 
 

Homecoming Halloween


This weekend was yet another Maryland Homecoming. Fun tailgate. This year, Christine came along, and was good company. We ran along this big blow up obstacle course, competing against 10 and 12 year olds. Of course we both got beaten bad because we were just too damn big to fit through some of the obstacles. Still we made it with pride intact... well, as much pride as an adult can have maneuvering in an obstacle course designed for young teens.

Matt on the other hand was really tired looking, having just had another child (well, I suppose his wife technically did more of the having then he did, but still, he has had no sleep, and was a bit beat down). He couldn't even make it to the game. Ah well, what are you gonna do!

I am not starting my formal preparations for halloween, and Christine is anxious to help out. It is fun pouring over tombstones and cackling electronic gadgets and see her get all excited. Who knows, she may be more of a natural then Dave and me put together.

Also, I have had a chance to work on my new digital camera! I have some cool pics of the weekend, including one of Matt and his son Jack...
 
 
 
 

Lied von Kindsein


I've recently seen the amazing movie Himmel über Berlin, translated Skies/Heaven over Berlin yet again, and was touched by the amazing cinematography, dialog, moods, and emotions in a city between two world at a time when all walls were about to fall. I highly recommend this movie! If you do watch it, look at the brilliant use of color vs. greyscale, and the commentary on politics and society, emotions, and love. Look confused when the two finally meet, and wonder why he let her ramble on so long about so many confusing images.

If you do watch the movie, you will be teased by the words from Peter Handke's famous poem, and here are the words...

Lied Vom Kindsein - Peter Handke

When the child was a child
It walked with its arms swinging.
It wanted the stream to be a river
the river a torrent
and this puddle to be the sea.

When the child was a child
It didn't know it was a child.
Everything was full of life,
and all life was one.

When the child was a child
It had no opinions about anything.
It had no habits.
It sat cross-legged, took off running,
had a cowlick in its hair
and didn't make a face when photographed.

When the child was a child
it was the time of these questions:
Why am I me, and why not you?
Why am I here, and why not there?
When did time begin, and where does space end?
Isn't life under the sun just a dream?
Isn't what I see, hear and smell
only the illusion of a world before the world?
Does evil actually exist,
and are there people who are really evil?
How can it be that I, who am I,
didn't exist before I came to be
and that someday
the one who I am
will no longer be the one I am?

When the child was a child
it choked on spinach, peas, rice pudding
and on steamed cauliflower.
Not it eats all of those
and not just because it has to.

When the child was a child
it once woke up in a strange bed
and now it does so time and time again.
Many people seemed beautiful then
and now only a few, if it's lucky.
It had a precise picture of Paradise
and now it can only guess at it.
It could not conceive of nothingness
and today it shudders at the idea.

When the child was a child
it played with enthusiasm
and now
it gets equally excited
but only when it concerns
its work.

When the child was a child
berries fell into its hand as only berries do
and they still do now.
Fresh walnuts made its tongue raw
and they still do now.
On every mountaintop it had a longing
for yet a higher mountain.

And in each city it had a longing
for yet a bigger city.
And it is still that way.
It reached for the cherries in the treetop
with the elation it still feels today.
It was shy with all strangers
and it still is.
It awaited the first snow
and it still waits that way.

When the child was a child
it threw a stick into a tree like a lance,
and it still quivers there today.


Als das Kind Kind war,
ging es mit hägenden Armen,
wollte der Bach sei ein Fluß
der Fluß sei ein Strom,
und diese Pfutze das Meer.

Als das Kind Kind war,
wußte es nicht, daß es Kind war,
alles war ihm beseelt,
und alle Seelen waren eins.

Als das Kind Kind war,
hatte es von nichts eine Meinung,
hatte keine Gewohnheit,
saß oft im Schneidersitz,
lief aus dem Stand,
hatte einen Wirbel im Haar
und machte kein Gesicht beim fotografieren.

Als das Kind Kind war,
war es die Zeit der folgenden Fragen:
Warum bin ich ich und warum nicht du?
Warum bin ich hier und warum nicht dort?
Wann begann die Zeit und wo endet der Raum?
Ist das Leben unter der Sonne nicht bloß ein Traum?
Ist was ich sehe und höre und rieche
nicht bloß der Schein einer Welt vor der Welt?
Gibt es tatsächlich das Böse und Leute,
die wirklich die Bösen sind?
Wie kann es sein, daß ich, der ich bin,
bevor ich wurde, nicht war,
und daß einmal ich, der ich bin,
nicht mehr der ich bin, sein werde?

Als das Kind Kind war,
würgte es am Spinat, an den Erbsen, am Milchreis,
und am gedünsteten Blumenkohl.
und ißt jetzt das alles und nicht nur zur Not.

Als das Kind Kind war,
erwachte es einmal in einem fremden Bett
und jetzt immer wieder,
erschienen ihm viele Menschen schšn
und jetzt nur noch im Glücksfall,
stellte es sich klar ein Paradies vor
und kann es jetzt höchstens ahnen,
konnte es sich Nichts nicht denken
und schaudert heute davor.

Als das Kind Kind war,
spielte es mit Begeisterung
und jetzt, so ganz bei der Sache wie damals, nur noch,
wenn diese Sache seine Arbeit ist.

Als das Kind Kind war,
genügten ihm als Nahrung Apfel, Brot,
und so ist es immer noch.

Als das Kind Kind war,
fielen ihm die Beeren wie nur Beeren in die Hand
und jetzt immer noch,
machten ihm die frischen Walnüsse eine rauhe Zunge
und jetzt immer noch,
hatte es auf jedem Berg
die Sehnsucht nach dem immer höheren Berg,
und in jeden Stadt
die Sehnsucht nach der noch größeren Stadt,
und das ist immer noch so,
griff im Wipfel eines Baums nach dem Kirschen in einem Hochgefühl
wie auch heute noch,
eine Scheu vor jedem Fremden
und hat sie immer noch,
wartete es auf den ersten Schnee,
und wartet so immer noch.

Als das Kind Kind war,
warf es einen Stock als Lanze gegen den Baum,
und sie zittert da heute noch.

 
 
 
 
 
 
Search Web Log

« September 2010
SunMonTueWedThuFriSat
   
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
  
       
Today