19 January 2016

Aren't Optical Disks Done? Maybe Not.

   I'm soon to build another machine, and so I am thinking about the necessity for an optical drive. It is a decision I have to make soon. Optical drive, or no.
    Certainly I don't need a floppy drive, (although ebay has tons of external and internal floppy drives cheap), I got all my stuff off of floppies in the nineties. They had so little space (even the 1.44MB ones), that you couldn't put an album on one. I haven't had to consider that for many builds. (So sorry for those of you who find a shoe box of floppies with things that you don't know if you need.)
    A cdrom, though, can hold an album. A dvd drive can hold a movie. Nothing smaller can serve those purposes. I don't know if you remember, but they have evolved as well. They went one side, two side, single layer, double layer until they became pretty much perfect for their use. They can hold any conceivable movie or album.
    Certainly a USB thumb drive can hold either and more, but it has one big drawback. It isn't flat. It has to be at least as thick as an USB connector and be long enough to let you grab it to plug it in or pull it out. I have some that are that minimum size physically, (see the picture above), and are 32GB. They didn't cost much, but already they have already gone the way of the dodo. You can buy larger ones (in storage capacity), for less than they originally cost.
    I suppose that a ukulele tutorial book could come with a blister on the front with a usb drive in it, and maybe that will be what will happen. It hasn't happened yet, but it might, clearly. Any modern machine can read a usb thumb drive. It is a good standard for something like this. Even if you have a modern machine that disdains USB 2.0 or 1.0 in favour of USB 3.0 or 3.1, they are backward compatible. You can plug those old and small and slow ones in, and they will work.
    It is, clearly though, a poorer solution in the sense that it can't be as flat as the magazine or book. It has to be at least as thick as a USB connector to plug in. That means that publishers can't fit as many books in a box. Shipping will cost more.You might not want to ship it in a magazine or a tutorial book, especially not in a beginner's book that is way thinner than a USB drive.
    I suppose that just like OSes today, things might start shipping on thumb drives, (you can get Windows 10 on a thumb drive), and of course I love getting free thumb drives as long as they aren't too small. Right now, I tend to buy 64GB and up thumb drives, they don't cost much, but soon they too will be to small a capacity to sell.
    If you gave me a thumb drive that would just barely hold an album -- I would just throw it away. I would feel bad about the waste, and of the harm to the environment, but what would I do with it? It is obsolete already. I have plenty of thumb drives that are way bigger than that that either cost me very little money or were in fact free (thank you marketing folks), to serve all of my needs. 
    I use everything. I am an uber-geek. I was and am using everything before most people have it on their radar -- all the way back to the internet way before the web, but I still don't see what can replace an optical disk. Clearly there is a need for something that is high capacity and flat, but there is nothing that has been settled on.
    There are things, multiple things that fit our criteria, things that have large capacity and are flat. I am talking about things like memory cards, SD cards. (SD stands for Secure Data which was originally about encrypting music -- Hmmm.) Nowadays they are mostly used in cameras and phones. Recently, they are being replaced by SDHC and SDXC cards with more storage available on them. Bigger. Better. They use the same technology as is used in a thumb drive, (or a flash drive), i.e. memory that can be read and written, but they come in a flatter package.
    Right now, most computers do not have readers for them, although more, (most?), laptops do. The problem is that there is no recognized single standard. An external or internal card reader feels that they have to support CF I/II/MD, Micro SD, SD/SDHC/SDXC/MMC/RSMMC, MS/MS PRO/MS PRO DUO, M2(MS MICRO). To make it even more complicated, many of these come in the original, the mini, and in micro sizes. Whew! Your phone almost certainly uses some size of them. But seriously, can't we just pick one that is tiny and holds terabytes? (SDXC supports up to 2TB, SDHC 32GB, and SD 4GB.)
    What if your guitar or piano instructional book came with a memory card that your hardware didn't support, one that was just newer than your computer could understand? Suppose that you didn't have a card reader at all? They aren't ubiquitous. There is, yet, no clear winner. Even on cameras or phones (where these things are king), many times there are more than one slot because they admit that people want to use more than one thing. It hasn't settled out. That's the problem. There is no one winner.
    As an example, a camera I would love to have, the Canon EOS-1d Mark IV (you can buy it for me if you are rich please), says that it supports: CF Card Type I and II and SD/SDHC Memory Card (1 slot each). Those are completely different and incompatible beasts (hence needing different slots). A SDXC card won't even work although wouldn't you wish for 2TB of storage on your camera?
    So to wrap it up, I will just say that this is a problem that has not been solved in any way that is workable for a joe q citizen like me. There is still nothing that is as ubiquitous as an optical drive to distribute media on. I hope for it, and I will adopt it before you will most likely, but it doesn't exist today. People are still distributing things I want on optical disks. Clearly I still need an optical reader on my next build (and a crazy multiple card reader).
    Edit: my final build that I'm typing this on now is:

1x Corsair 450D Mid tower E-ATX, ATX, mini-ATx and micro-ATX $119-$129
1x i7-6700K CPU
1x ASRock Z170 OC Formula LGA 1151 Motherboard
1x G.SKILL TridentZ Series 64GB (4 x 16GB) 288-Pin DDR4 SDRAM DDR4 3200
    (PC4 25600) Desktop Memory Model F4-3200C14Q-64GTZ
1x SeaSonic Snow Silent-1050 1050W ATX12V / EPS12V
    80 PLUS PLATINUM Certified Full Modular Active PFC Power Supply
1x ZOTAC GeForce GTX 980 Ti 6GB AMP! Extreme graphics card
3x SAMSUNG 950 PRO M.2 SSD
    512GB PCI-Express 3.0 x4 Internal Solid State Drive (SSD) MZ-V5P512BW
3x Western Digital RE WD6001FXYZ HDD
    6TB 7200 RPM 128MB Cache SATA 6.0Gb/s 3.5" Datacenter Capacity HDD
1x Microsoft Windows 10 Pro - Full Version (32 & 64-bit) / USB Flash Drive
1x NZXT Kraken X61 RL-KRX61-01
    280mm All-In-One Water / Liquid CPU Cooling Solution
1x LG Black Blu-ray Burner SATA WH16NS40 - OEM with an external usb case
1x Akasa AK-HC-07BK Card Reader
    4 USB 3.0 + 2xUSB charging (no data)
    Smart Card (bank cards, access cards, based on ISO7816 implementation)
    Compact Flash (CF I, CF II, Ultra, Extreme, I-Pro, Ultimate, MD)
    Memory Stick (MS Pro, MS Pro Duo, Magic Gate, Extreme, Ultra)
    Secure Digital (SDXC, SDHC, SD, Ultra, Extreme, Elite Pro, High Speed,
                    MMC, MMC Mobile)
    • 128GByte for SDXC • 32GByte for SDHC
    M2 (Memory Stick Micro M2)
    microSD (microSDHC, micro SDXC, High Capacity)
1x Dell 27 UltraHD 4K Monitor - P2715Q
1x Corsair K95 RGB Mechanical Gaming Keyboard with CHERRY MX Brown Switches
1x Logitech G900 RF Wireless/Wired optical mouse with free spin wheel
1x BOSE Companion 2 Series III Multimedia Speaker System
1x HyperX Cloud II Gaming Headset with 7.1 Virtual Surround Sound
    for PC/PS4/Mac/Mobile - Red
1x Wacom Intuos Pro PTH651 8.8" x 5.5" Active Area USB Pen and Touch Medium

1x Epson SureColor P600 printer

11 January 2016

Failed To Thrive

    Let me be clear right from the beginning. I am broken. As a child I had no one tell me that they loved me ever. I was not held, ever. My psychiatrist tells me that the only reason my emo self didn't fade away from Failed To Thrive syndrome might be that my big brother Michael was across the room wishing that he might pick me up when I lay in the crib offending the world by crying.
    As I grew, long before I could speak I suffered abuse, spanked and shaken for dirtying my diapers or for daring to cry in despair and need.
    I was an emo kid with terrible attention deficit issues, yet I never showed that because I expected to die. I believed that I had no right to impose on anyone my needs, my expectations, my beliefs. I knew I did not get to have any of those. I didn't even dare to have any of those. I didn't believe I deserved to. I expected that any sign that I was less than a silent perfect boy would be met with a whipping with a leather strap (a belt) until I didn't know if I would survive. Usually, it would just go to welts all over my bare bottom and my back and my legs. Sometimes, though, I would bleed. To this day, the sound of a belt coming out of belt loops destroys me. I can't in any way support my belief in my right to exist if I hear that sound or see the belt being pulled. Part of the damage came from the abuse, but more came from the training to submit. I was taught that a good boy would take his punishment without crying, without putting his hands back to block the belt, without believing that he had any right to exist in a world without abuse. I was taught that it was me -- my fault -- my shame. I was taught a learned helplessness. I was taught to be victim and that it was never ok for me to have any opinion or control or existence in my own life.
    I would be frozen, for example in church, with my hands perfectly folded as the nuns taught us and in such ADHD torment that every moment was terror, yet I did not show it. I was beat into submission. I was, (and am), frozen into a cringe, and I knew better than to ever show that I was less than the quiet perfect submissive child. I never believed in any of that perfection though. I believed myself horrible and deserving of torture. I believed that my job in the family was to hide the shame of the truth of my existence so that my family would not be shamed. I carried the shame for the family, and I always knew that the shame was mine.
    Needless to say, I never bonded with my parents. Even with siblings, it is hard to bond when you are just trying to survive and when expressing concern for the abuse of a sibling might threaten your life. I do not know how my brother did it. I will not speak about his concerns and his damage, but you can see it to this day. If there was any saving grace it was that for us, there was something, some care, some desire for the abuse to not happen. Thank you Michael. I hope that if I were the older my care would have been some shelter for you.
    So that brings me to today. In spite of 45 years of mindfulness practice, (since I was 15), in spite of metta, in spite of my finally found ability to feel a deep compassion for myself, I have never shaken that foundational view that I am bad -- flawed -- horrible -- disgusting. I hate myself for being so horrible that my father had to suffer by beating me. I don't say that that makes sense, I say that all of my understanding of the universe, all of my language was built above that truth. It is what I am. I never expect anyone to tolerate me. I never expect anyone to tolerate my presence. I don't mean that this is what I think. I mean that I knew this as a foundational part of my world-view before I could think. My psychiatrist does not believe that self hatred will ever leave me because before I was able to even speak, I was taught that it was harder for my father to suffer through beating me that it was for me to be beat. I was taught that I was so horrible that my father must suffer in a futile attempt to try to rein me in. She tells me that I will never be the person that was not abused. I can ameliorate but not cure. Sigh.
    You may be one of those people that sees broken people doing broken things and thinking, why don't they just stop doing the broken things, and start doing the healthy thing.  That shows a basic misunderstanding of abuse. We have been taught that nothing we want or believe matters. Any attempt to assert that they do would have been met with excessive punishment. We learn early that we do not control anything, that we are not in charge, and any attempt, however minuscule to assert this will be met with violence. We learn that we have no power even over our own beliefs and actions. We have a learned sense of helplessness. Believe me, that lesson sticks. So fast forward to supposed adulthood and we decide not to do things and find our selves doing them and we do not know why because we do not understand our own victimization. This leads to drug and alcohol abuse and to the abuse of others because however horrified we find ourselves unable to stop, unable to stop seeking anything that looks like love. It can be pretty horrible.
    So. That brings me to the reason for this post. After a lifetime of damaging others and dealing with the consequences and healing and growing, I still don't believe in myself, but others do. I am fundamentally unable to understand why they do, but they do. I step forward in life by faith, never believing in my ability to do good, but acting as if I do based on the faith of others. There is a coffee shop I go to, Philz, where all of the baristas love me. Someone told me today that it was because I have a heart of gold. It made me cry. Right in the coffee shop. I don't understand why they believe in me, but I know that they do. For years, in penance for all of the harm I have done I have been stepping forward in love and compassion, trying to listen to everyone, no matter how broken because I believe that's important. I believe that if I just keep doing the next right thing it will make a difference.
    I have, years since, sworn a vow of compassion for all beings. It is pretty hard sometimes. I don't like some people. Some of them scare me. But I am able to find compassion for them by imaging how their lives brought them to this place. For myself it is harder. I can do it sometimes, but I haven't found the ability to give myself the  slack I give others. I know the people that I love that I have harmed. I do not believe in my innate goodness, yet sometimes, with effort, I can find compassion for my broken self.

22 March 2011

Suppressing Warnings in GCC


(This article was originally written by me as part of the Boost Developer Warning Guidelines.)

With GCC there are a couple of options when you want to supress warnings. First, beginning with version 3.1, since GCC won't report warnings for files that GCC considers system files, you can make GCC consider the problematic files system files. This is heavy handed, makes it easy for problems to creep in unnoticed, but effective. Second, beginning with version 4.2, you can suppress a particular class of warning either for an entire file, or (beginning at version 4.6), for a section of a file.

Supressing Warnings For A File By Making GCC See It As A System Header

Using a pragma to make GCC think a file or part of a file is a system header
Beginning with GCC 3.1, for a particular file, you can turn off all warnings including most warnings generated by the expansion of macros specified in a file by putting the following in a file
#pragma GCC system_header File considered a system header.
It can be specified anywhere in the file, and code that precedes the pragma in the file will be unaffected. The intent of declaring a file a system header, is for operating system specific code that can't be strictly conforming C or C++. This should not be seen as a handy way of turning off bothersome warnings. Many (most?) warnings point to real issues and should be dealt with appropriately.
Using -i to make GCC think all files in a directory are system headers
You can also turn off warnings for all files in a directory, by putting the directory into the include search path with -i instead of -I
The -idirectoryName command line option adds its argument to the list of directories to search for headers, just like -I. Any headers found in that directory will be considered system headers. It also has the side effect of changing the inclusion order, in that all files included from directories specified with -i are included after files included from directories specified via -I. If the directory is specified with both -I and -i it is still only searched after normal includes as part of the system include directories. This may be appropriate if you have to deal with other's spotty code that generates a lot of warnings that you can't fix.
If you turn off warnings for files that are shared with your users, you need to be able to see the warnings yourself so that as new problems arise you will see them. You can turn on warnings back on for system headers when you compile with:
-Wsystem-headers
This makes GCC print warning messages for constructs found in system header files that would normally not be seen. Using -Wall in conjunction with this option will not warn about unknown pragmas in system headers. For that, -Wunknown-pragmas must also be used.

Turning off warnings locally with gcc

So. Suppose you are getting a warning and have checked the code and are sure that it's a spurious warning. There's nothing wrong. If the warning is controllable via a command line -W option, then you can (if you have GCC version 4.2 or newer) turn it off temporarily. First you need to find out what the option might be, then if it exists turn it off via a pragma. How you do this varies a bit with GCC version.
Finding out what option controls the warning
-fdiagnostics-show-option
In GCC, for versions 4.2 and higher, this option instructs the diagnostic machinery to add text to each diagnostic emitted, which indicates which command line option directly controls that diagnostic, when such an option is known to the diagnostic machinery. The added text will look similar to [-Wsign-compare]. If you see this, that tells you that the -Wsign-compare command line option turns this warning on.
Turning the warnings off and on
I want to particularly thank Jonathan Wakely for his willingness to help and for the great help he offered on the gcc-help mailing list. It's people like him that make open source work. Without his help it would have taken me much longer to write this section. Any problems of course are my fault;) In addition to picking Jonathan's brain, I read the appropriate source in diagnostics.c and perused many releases of GCC documentation to get this information.
GCC provides the following pragmas to control warnings.
#pragma GCC diagnostic push
Available since GCC version 4.6, this pragma lets you remember diagnostic options in place at a particular time. This pragma can occur on any line of a file. The number of nested pushes is limited only by the size of memory and the size of an int index into the diagnostic information.
#pragma GCC diagnostic pop
Available since GCC version 4.6, this pragma lets you restore diagnostic options that were remembered by a diagnostic push. This pragma can occur on any line of a file. The number of pops is limited by memory and the size of an int index into the diagnostic information. At a pop information is moved from the table used by push into a history. An unbalanced pop, i.e. popping when nothing is on the stack is harmless and will simply reassert the user's command line diagnostic choices.
#pragma GCC diagnostic [warning|error|ignored] OPTION
From GCC version 4.2.4 and before GCC version 4.6 this could be specified at file scope outside of any functions, classes, unions, structs, or methods, to change the behavior when a particular class of error was seen. For GCC version 4.6 and later, it can be put in any line of a file, and affects from that position forward. For any supported version, it only works with warnings that have explicit -W arguments, use -fdiagnostic-show-option to find out which one to use. An example: #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
version 4.2. You can turn them off but then what?
So starting from 4.2 but before 4.6, just put near the top of the file something like:
#pragma GCC diagnostic ignored "-Wdeprecated-declarations
to turn off warnings from that point forward in the file of the use of deprecated declarations. Problematically, you have no way of knowing what the user had this option set to. They might have already had the warnings turned on, they might have had them set to ignore, or they might have had them set to cause an error. At the end of the file, if you do nothing else, the diagnostic for deprecated declarations stays ignored for anything that includes your file. You can set them to ignored, error, or warning at the end of the file before exiting, but you don't know which to use. This is sure to cause angst.
version 4.6 Now you can restore the user's flags
For version 4.6 or later, you can save the state of the user's diagnostic flags. You can insert this around the line that causes the spurious warning:
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
Next you would have any amount of code for which you'd like to suppress that warning
#pragma GCC diagnostic pop
Of course this could cover everything from a line up to the whole file, and in between the push and the pop you could make multiple changes to each of multiple options. Be careful, though, that you don't pop to soon. In this example:
foo()
{
int unused,i;
i=3;
}
We might want to suppress the unused variable like this:
foo()
{
#pragma GCC diagnostic push
#pragma GCC diagnostic "-Wunused-variable"
int unused,i;
#pragma GCC diagnostic pop
i=3;
}
and then be surprised that we still get a warning about an unused variable. The reason is, that GCC doesn't know the variable is unused until it hits the closing brace. That means the pop has to come after the closing brace:
foo()
{
#pragma GCC diagnostic push
#pragma GCC diagnostic "-Wunused-variable"
int unused,i;
i=3;
}
#pragma GCC diagnostic pop

A handy macro to help you do some of this
Jonathan Wakely came up with a nice macro set to control this and I'm sharing a slightly modified version of it with you. It defines:
GCC_DIAG_OFF(FLAG)
For versions 4.2-4.5 will turn warnings off for a particular error if controllable via a -W command line flag. If -fdiagostics-show-option told you that the warning was controlled by [-Wsign-compare], then you could say GCC_DIAG_OFF(sign_compare). Beginning at version 4.6, it will push the current state of the diagnostic flags and then turning warning off. Prior to version 4.2 it has no effect.
GCC_DIAG_ON(FLAG)
For versions 4.2-4.5 will arbitrarily turn warnings on. This may not be what the user wanted. Beginning at version 4.6 it will simply pop the saved diagnostic stack. Prior to version 4.2 it has no effect.
Both of them should be used only at file scope for versions 4.2-4.5. Beginning at version 4.6 they can be used at any scope. If you want to turn multiple things from warning to error to ignored between the push and the pop then this will not be effective for you.
It allows you to do things like (for GCC version 4.6 or later):
GCC_DIAG_OFF(sign-compare);
    if(a < b){
    GCC_DIAG_ON(sign-compare);
to turn off warnings that you know are spurious. (Probably a cast of one to the other's type or changing the declaration of the type of one to the other's would be a better fix.)
#if ((__GNUC__ * 100) + __GNUC_MINOR__) >= 402
#define GCC_DIAG_STR(s) #s
#define GCC_DIAG_JOINSTR(x,y) GCC_DIAG_STR(x ## y)
# define GCC_DIAG_DO_PRAGMA(x) _Pragma (#x)
# define GCC_DIAG_PRAGMA(x) GCC_DIAG_DO_PRAGMA(GCC diagnostic x)
# if ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406
#  define GCC_DIAG_OFF(x) GCC_DIAG_PRAGMA(push) \
          GCC_DIAG_PRAGMA(ignored GCC_DIAG_JOINSTR(-W,x))
#  define GCC_DIAG_ON(x) GCC_DIAG_PRAGMA(pop)
# else
#  define GCC_DIAG_OFF(x) GCC_DIAG_PRAGMA(ignored GCC_DIAG_JOINSTR(-W,x))
#  define GCC_DIAG_ON(x)  GCC_DIAG_PRAGMA(warning GCC_DIAG_JOINSTR(-W,x))
# endif
#else
# define GCC_DIAG_OFF(x)
# define GCC_DIAG_ON(x)
#endif
These macro names won't collide with GCC macros since their's start with one or two underscores.

05 January 2010

Unless you become like a little child

I'm not called to working with kids.  The truth is, adults are a lot more interesting.  Even most 20 somethings, and a lot of 30 somethings, are pretty shallow.  They just don't know it, and I don't mind it, it's part of the process and we all go through it.  It takes a lot of time to realize that you don't know much, and longer to accept that you'll never know most things, and longer still to understand that embracing it sets you free.  Too many opinions easily translate to close-mindedness.  Embracing general ignorance--the normal undeniable fact that you don't know most things and that for the ones you think you know, you are often wrong--lets you approach everything with the wonder and joy of a child but with so much more depth.  Save me from the man filled with certainty.  I like to think that conservative Republicans are the ones I mean, but really ideologues come in all shapes and flavors.  Just because the willfully blind man agrees with me, doesn't make him any deeper.  I think that the idea of being opened to the world by embracing your ignorance is what the scripture (from Mark 10) means:
And people were bringing children to him that he might touch them, but the disciples rebuked them.  When Jesus saw this he became indignant and said to them, "Let the children come to me; do not prevent them, for the kingdom of God belongs to such as these.  Amen, I say to you, whoever does not accept the kingdom of God like a child will not enter it."
I just think it's important to move teen's natural passion toward important things like caring about justice and understanding that justice applies to all--you don't get it if the undocumented Mexican worker, or the Gazan imprisoned in their own land, or the worker in a diamond mine, or the homeless guy you hurry to walk past, or the worker trapped in poverty doesn't get it.  To me, as a Catholic, this is a natural result of the second great commandment, and as an American (and proud of it), the phrase, "with liberty and justice for all", means something.

Justice is not just for people you like.  Everyone is redeemable.  People in prison still count as people.  We incarcerate at a higher rate now than any country on earth--I know Americans aren't the worst people on earth.  People complain about high recidivism rates, and want to get ever tougher on criminals, but the truth is that the highest recidivism rates they complain about are less that half.  Most people in prison will never return to prison.  They'll spend the rest of their life around us.  Most of them would never have gone to prison except for some failing of love in their life.  And it doesn't take that much love to be transformative.  So we should welcome them into our society with peace and love and justice, (and work), and if some of them aren't healed or can't heal and they do bad things again, the answer isn't hate, but more love.  (Though like children, sometimes you do have to keep them separate until they learn to behave better--it's just that we do nothing to love and help those incarcerated learn these lessons--just the opposite.)  We can protect others better by transforming the damaged members of our society.

There's also no justice if you ruin the earth for people less advantaged, or for generations to come.  To me, love and justice doesn't stop with human beings, it applies to animals and plants and to the whole earth and beyond.  Kids need to learn that love isn't JUST passion but is often hard work in boring conditions--it's sacrifice--and it's love that makes it so damn rewarding, and so damn frustrating.


Just love.

Thanks,


Patrick

21 October 2009

LitCrawl in Clarion Alley

Last Saturday night, I was lucky enough to get to be a volunteer for LitCrawl in San Francisco's famous Clarion Alley. For those who might not be aware of it, San Francisco has had LitQuake since it was founded by book lovers in 1999 as a week long read and fun fest! It wraps up with the LitCrawl, which combines a bar crawl with talks and readings by authors of all types.

I got there early because I'm compulsive and anxious and love knowing where I'm going before I get there. I was supposed to be there for 3:30 setup and got there at 1:30. I had to figure out something to do with the extra time and discovered Cafe Prague. They are a Czech cafe between Clarion Alley and Sycamore Street on Mission. Great food, great people, and an opportunity to try Czech beer! I had a salad, which sounds healthy enough, with HUGE chunks of hot bacon in it which was maybe not as healthy, and beer. I had huge hopes for the beer since I've read that the Czech Republic has the highest per capita beer drinking rate in the world. I had a dark Krusovice which was really quite acceptable. Not as much complexity as I really want, but nevertheless, not a boring beer.

When I had sampled the beer and food enough (what am I a restaurant critic?) I went back out on the street and saw that violence was about to break out. It seems that a fellow was doing business in an area that some others felt proprietary over and they had come en-mass to talk to him. Imagine the scene. The poor guy is standing on the sidewalk with his back toward the buildings. He's been surrounded by six or seven guys, a couple behind him, a couple at his sides, a fellow standing in front of him explaining his mistake, backed up by a couple of more. They're basically filling the sidewalk and I want to go by. The tension is so thick that the air has almost solidified into a rubbery crystal clarity. Some of the fellows are watching their leader talk to the interloper, some are looking around for trouble, one guy looked really stoned and was picking his nose waiting for things to be over. I've been around things like this before, too often, and see that things haven't quite reached a head yet, so I slide through the crowd with that I'm not really here attitude. Really, I'm not sure that they even noticed me drifting through their obstacle course. I wasn't the main attraction! As I'm walking by I hear the leader telling the poor fellow that there's nothing to worry about, nothing's going to happen to him. I see that he wants to believe it, but you could see that he didn't, not really. Not any more than I did. As I walked away I waited--1--2--3--and then from the gasps and reactions around me I knew something had happened. I stepped up against the building so that I wouldn't be in the way of anyone fleeing the scene and saw--Good! They just knocked him out. He's laying--well, I'm not going to say face down because you have an impression of what laying face down means. This guy was out cold and spinning as his face hit the sidewalk. His face is kind of smudged out on the street, he's all twisted up, and one of the guys that had been standing behind him was trying to straighten the poor guy out. It's hard to move an unconscious person. You have no idea. He finally flops him over and pulls him back toward the building. It's obvious he's trying to make the guy look less conspicuous lying there. Maybe dragging him against the building will make him look like a drunk passed out. I don't know. Was he being a good samaritan? He obviously was embarrassed about what had happened. There's all sorts of victims when violence happens, I wish it still bothered me like it once did. He was obviously impelled by fear, looking all around, jittery, then whoosh, he bolts and leaves the guy. Meanwhile the leader is walking by me saying, "We've been done running shit around here!" Strange how odd language can get and still communicate clearly. The victim is starting to come around already. It's hard to knock someone out for very long. Most knock outs are only for seconds. He gets up and staggers off the opposite way. There's a couple of street people by me telling each other how they didn't see anything. They looked like they'd just seen an act at the circus they were so excited. Maybe they did.

So I go into the alley and talk with some artists who are doing some new work, and some others that are fixing their older work that's suffered the depredations of taggers. If you don't know Clarion Alley, then you are probably saying, "Art! What art? I thought this was going to be about literature!" Clarion Alley is filled with murals. CAMP (Clarion Alley Mural Project). I went in on some food from El Toro, at 17th and Valencia for one of the artists who spent his only money on beer and said that being hungry made him a better artist, but now he'd hit the downside of that and was running down.

After awhile people started showing up to set up so I introduced myself and got to work. Pretty soon I was asked to set up the barricade at the Mission end of the alley and then stayed there pretty much from 3:30 until 7:00. It was great fun. I'm bilingual (Spanish and Texan), and was able to get in a lot of great conversations while waiting for cars that had to be let in or out of the alley. Across the way were some drug dealers who were doing a brisk business. It was surprising to see some of the clientèle. Looked like nice moms.

The saddest thing I saw was a whore who was gone in despair and drugs and booze. 21 going on 97. Her face wore a map of her experiences. Way too thin young blond, dirty and raggedy. She was wandering lost, walking down the street out of habit, but you could see she didn't really know where she should be. Somebody sent another hooker to collect her and take her back. I said, "Lookin' good hon!" You'd think it was a pity comment, but it wasn't. Just one human being acknowledging another. You could still see that under all the decay and debris there was something there. What she really needed was a hug without a sub-text, but as compassionate as my heart is, my needs don't include rescuing every victim on the street. When she heard my greeting, she lit up and stood a little taller and then her attention just kind of drifted off down the gutter and she was gone.

I got a lot of the fliers that had the map of all the venues, and then started schmoozing everyone that walked by. Got several groups out for an evening that didn't know about the event all excited and sent them off with maps. I mean, if you're doing a pub crawl anyway, why not add in literature and the chance to follow a treasure map, right? No brainer.

At 6:00 or so Alvin joined me. Alvin was another volunteer and a high point of my night. This young cat lived a life so hard, yet he was kind and caring and quiet. Poverty hadn't broken him, it had refined him. He was signed up for the open mike at 7:00 and was wondering how long it took to read a page. He doubted my assurance that it's a minute a page for double spaced text, so I had him read me a page while I timed him. One minute. His stuff was edgy street stuff that I really wish more people would hear, stuff about getting the GA because otherwise you won't make rent, a story about collecting recycle out of the public bins, and how the old asian ladies get up awfully early so you'd better get up early too. He read well too.

At 7:00 I got released from the end of the alley for Phase 2 and could go listen a bit, interrupted by checking on my replacement and bringing him more flyers and beer. Got to hear Alvin doing his open mike spiel. It was well received. Did I mention free beer? Don't know where that came from, but I'll just say that people from Germany have a great attitude about beer. Thanks Wolf. Then Phase 3 an hour later, brought lots of funny talks and readings. I kept checking on my replacement's replacement and bringing more fliers.
I'm sure the volunteer party afterward was cool, but I missed it. Got on my motorcycle and headed back to San Jose. Next year!

06 October 2009

Ahhhh! Pizza! There is, arguably, no better New York style pizza than that of Pizza My Heart. They start their dough the day before so it has time to rise properly. They throw their dough, their sauce is organic, their ingredients wonderful and fresh and if you can't appreciate them, you have no business eating pizza. But sad times, they are feeling the crunch, and they are telling their stores to cut down on the pizza available at any given moment to cut down on waste.

To understand the implications of this you have to understand that they are creative--no, not just creative, but creative with the abilities of angels behind them. They have created, over and over, amazing combinations of ingredients that how won award after award, and have made a point, over time, to always make premium pizzas available at their stores to educated the palates of the masses, and to satisfy the palates of the initiates.

Now, though, (and there should be dirge music playing through this part--I apologize for its absence), they are trying to cut waste, and normally when you enter into the inner sanctum of the pizza heaven, all you find are pepperoni and cheese. Don't get me wrong, these are amazing pepperoni and cheese pizzas, but if you think that these are all that is in the pallet of Pizza My Heart, you are a heathen.

Now, when you want a premium pizza, and I must tell you that the most premium in my NSHO is the Little Sur, you have to wait for the day of availability. That day is Tuesday for the Little Sur, but of course, today, Tuesday, I went into Pizza My Heart, and no Little Sur was available. Only cheese, and pepperoni, the pies of the masses. If Pizza My Heart is hurting so badly that they have lost their heart and soul, then the universe must cry.

To digress, I must tell you about the Little Sur. The Little Sur starts, as most of the pies here do, with the organic tomato based pizza sauce. To that is added cheese of course, and 40 cloves of roasted garlic, cherry tomatoes, portobella mushrooms, green onions, roasted red peppers, and herbs. This quotidian list of ingredients can in no way prepare you for the experience that is the Little Sur. It is heaven on earth, it is first love, it is your first ice cream. There is no comparison.

I used to be able to call my local Pizza My Heart, and ask them, "Is there any Little Sur up?" , and they would say, "No, but we'll throw some in." When I got there, there would be a half of a Little Sur pie waiting for me, beautiful, petulant, perfect. It only lacked augmentation with the beer of my choice to achieve perfection on earth.

Then, a week and a half ago, I was told that I couldn't have the pizza because it wasn't Tuesday. As I told you, Tuesday, under the new regime, is the only day you can buy a slice of Heaven/Little Sur. I waited, frustrated, enjoying the other pies as they were available. This morning, at 7:30, at a local coffee shop (Roy's which all should worship because it is to coffee what Pizza My Heart is to pizza), a barista mentioned to me that today was Tuesday, that I would be able to have Little Sur today. Heavenly anthems accompanied that announcement.

I waited all of the day, until finally, this afternoon, I entered, with great triumphal joy, Pizza My Heart, only to find no Little Sur. They told me that they had had some earlier in the day, but sadly, all they had for me was cheese and pepperoni. You can't imagine how crushed I was.

So, I'm sitting here, in Pizza My Heart. I don't know whether to tell you to go to Pizza My Heart, or to tell you that it's ruined. I love them. I wish them all the best, but it seems as if the economy has them on their last legs. It seems that perhaps they are about to fail.

Go see them if you can. Even their cheese and pepperoni are wonderful compared to everything else you've ever had.

Myself? All I can do is pray for them.

Patrick out.

The Fifties are Strange

I didn't think that my life would be so hard at 54, or that I'd be out of work, or that I'd feel like I was trying to find myself. There are a few things that I know about myself
  • I'm a Catholic boy, that's important to me
  • I'm smart, and I'd rather work on something hard with a lot of learning involved than on something easy
  • injustice and poverty get my dander up, and although I don't think I much make a difference by doing it, I go and stand with signs talking about what I'd like to stop and I'd like to start
  • In particular I'd like to see enough work visas issued for all the latin american workers we have slaving away in America. That would solve most of the illegal immigration problem. Why do we only want them working here if they're undocumented?
  • Why does the United States have the highest incarceration rate in the world? China's second.
  • Why is California incarcerating people at a rate of 1 out of every 113 people (in 2008 according to the US department of justice)?
  • Are we so much worse than the rest of the world? I don't think so--we're just meaner.
Looks like I'm either going to have to get out of programming, or add to my skillset. Just being a kick-ass crazy good C++ programmer isn't enough to keep me employed. I hate not having a job. I love being a generalist able to jump in and quickly be productive in new problem domains, but it's getting harder and harder to get people to hire me. Maybe I should specialize in something. Any suggestions?