Tuesday, December 09, 2008

Windows cmd, Slow Crab, Jug bands

Sounds
When I was getting into the Greatful Dead a while ago, I always read that they had started as the Warlocks and as a jug band. Until recently, I had no idea what that meant. While listening to NPR this weekend, I heard a sound slightly familiar. It sounds a big like the Garcia and Grisman records I love, but there were quotes from all types of music, multiple instruments trading fours and eights, and too much improvisation. It eventually turned from folk to rock in a transformation I was perplexed by.

How did they do that?

Then I realized it was a jug band. I have no idea which one, but it's my new goal to hunt them down. More to follow. In the meantime, check out Country Joe and the Fish and Will Shade's Memphis Jug Band.

Opinion

I've been getting more involved in Slow Food recently. I have a garden, possible bee hive, and lots of other foodie related projects in the works.

Vanessa and I volunteered for this last weekend's Slow Crab event in the SF County Building in Golden Gate Park. What a blast! We'll now be on the "A" team for Slow Food events around the Bay Area organized by our friend, Vera. She is a wonderful cook and person.

Slow food, I feel, is missing some of the sustainability principles, but at least is getting people thinking about where their food comes from. The manifesto is basically a development of the mission "Good, Clean and Fair". If everything you consume (food or not) is good, clean and fair in all regards, from raw materials to distruction, then you're doing better than most Americans. Doing better is not what we're all after, though, we want to set some new guidelines like Queen Victoria did with manners and dress.

Check out http://slowfood.com/ if you love your food, or if you're sick of shopping at Target and eating at Applebee's.

Programming

This is quick because I can't share much of what I've been doing these last few months. I've learned a lot, and have attempted to make programs in languages new to me (Java and Ruby mainly...on Android).

One thing that bugs me to high heaven is working on Linux boxes all day, and coming back to write documentation in Windows (something required of me) and missing all of the great command line tricks *nix gives you. One thing is tab completion.

There's an easy fix for this and it has to do with the registry. Since Windows 2000, the default completion character is the null character...and that doesn't work!

So, if you want tab completion, start regedit by Start > Run... > type 'regedit' > click OK.
Browse to:
HKEY_CURRENT_USER/Software/Microsoft/Command Processor
Change the value to REG_DWORD 0x09 (hex), which is the ASCII value for horizontal tab.

Wednesday, October 15, 2008

1000 Albums, "Green" cycles, Linux commands you cannot live without

Sounds

NPR's All Songs Considered recently interviewed author Tom Moon, who wrote the book "1,000 Records To Hear Before You Die". He went through tons of recordings (obviously), and came up with a list of the most important to the history of music and culture in the world. These may not have significant appeal to you personally, but objectively, these albums all have something unique and important about them.

For example, the Hot 5s and Hot 7s. These were the first recordings that featured African Americans on wax in the US. Louis Armstrong was fantastic at this time in his life as well. Another example is Grease. This is something that is not important to me, but I understand why it's there.

It made me finally remember why I studied music in college. It also made me realize why I haven't liked music in four years as much as I had prior to four years ago.

Opinions

The world will always heal itself...with or without us. Earth doesn't need us to survive and continue existing. I think the strongest argument for taking care of what you have isn't what's in the Bible about being a good steward, which my mother always reminds me of. She has translated this into "be a good steward of the stuff you have." I now realize that it was written to mean everything. Not just "stuff", but everything you could possibly affect during your short life. I don't think the answer is to minimize everything in your life, but it is to be conscience of what your purchases, actions, thoughts, dreams and work actually do for other people, for the Earth, for the future, etc.

There is a Native American proverb which goes "
We don’t inherit the land. from our ancestors, we borrow it from our children". Ironically, I feel this is how we should be thinking about our lives.

For example, rather than say: "We have 50 years of oil left if we continue to use it the way we do today, stop using oil" say: "Our dependence on oil does damage to our environment, but it does things for us which are conveniences which we aren't used to living with out: heat without a fireplace, quick and rampant transportation options, overproduction of corn and soy, electronic "toys", etc. How can I affect change to use something other than oil (which would be better on the environment and could actually make entropy work in reverse...with biodynamic and sustainability practices) to continue using what I currently use and have, or how can I replace or cut these things out of my life so as not to leave my footprints on this Earth?"

So, the questions and answers are very involved. I'm still on the path to finding answers to some of the questions I have about how to replace or remove things from my life...and more questions pop out. It's a constant struggle, and I think if we're conscience of it moving forward, unlike we have been in the past, we'll have a better chance of not killing ourselves in the short term.

And, like I said, Earth will heal. Carbon will be eaten up by trees which can grow on land previously covered by ice. The oceans can eat carbon, too. Plants and mushrooms will take over and the very strong animals will survive in the meantime. Even if we eliminate ourselves and other large mammals, fish, birds, and insects...plants, water, air, bacteria, and virus' will live on.

Programming

If you're going to use linux, you need to learn a few commands. The good ones are 'grep' and 'find'. Once you figure those out, learn 'sed' and 'awk'. 'screen' is another great command that lets you have "tabbed" shells in one session.

I've been working with configure, automake, and Makefiles for the last couple weeks. I've been trying to learn each of these tools inside and out at the same time, so it's been a challenging couple weeks. I know that I'll be better prepared for development on any OS in the future because of this experience.

I won't give you any specific examples, but I will recommend that to learn these tools, find a package that has a lot of dependencies (say MythTV or Xine). Create an NFS partition in your home directory which models the directory that you would put on another chipset. You should have a cross compile toolchain. We're using CodeSourcery G++. Set up a Makefile which will help you build quicker and easier once you have all of the kinks worked out. We're using a Makefile.common file to declare variables that are used in more than one line. Examples of this are the chipset we are cross compiling to, and directories that we want to point our linker to to find cross compiled libraries.

The Makefile itself should have sections for each step. For example, if you're building libxml2, have xml2_configure, xml2_make and xml2_install sections. You can make section called xml2, which calls those out in order:
xml2: xml2_configure xml2_make xml2_install
The other way to make things easier is to use an environment variable defined in your Makefile or Makefile.common which sets the path to all configure and make scripts for various packages.

Now, when you run into a problem, use the tools described above to help debug files. Remember, configure will create files (they're listed in the output of the script) which are used to help the general Makefile build your libraries. The Makefile will compile and link all libraries, and install will create executables and move them to the proper directories.

When you're all done, you won't have anything working on the host system because it's compiled for a different chipset. So try running it on that chipset to see if the compilers worked like you wanted them to. If you build the Makefile properly, you should be able to zip this directory up and move it to another build system and remove all of the work required to cross compile MythTV or Xine.

Friday, October 10, 2008

The music of Video games, bicycling clothing, automake

Sounds

I stumbled on 380 YouTube videos which all have the title sequence: "From Bleeps to Beats/The Music of Video Games". The site which organizes these videos in a more aesthetic manner is called "Gar's VGM Site". These videos were compiled by a man named John, who is from Montreal. His handle is "garudoh".

I believe the music was extracted directly from the ROM, but it's never credited. The complete sequence of every tune from the games is represented. I've been working my way through from #1 and have to say that he's done an impressive job of including video game content as well as music.

I'd like to clarify why I think this is music. There are some incredible tricks that composers used to make the music not only listen-able but that is related to gameplay of specific games (side scrolling action games tend to be in 4/4 and have a lot of snare sounds...like Sousa?) and can be listened to over and over and over again.

I'm not a gamer, and haven't really been since Genesis was popular...so listening to a lot of these is a mixture between admiration for the composers and memories of my childhood.

Opinions

I got a pair of Cordaround's Bike to Work Pants in the mail yesterday. They are very comfortable, durable and close to being acceptable in a formal setting. They're fine for my workplace, but they wouldn't work with a button down and tie....at least I couldn't make it work.

But I'm no fashionista (fashionisto?)

It got me thinking about clothing for biking. When I sold my car for a bike last month, I thought about what I needed a bike for, and then shopped for that kind of bike. I don't want to have one bike. I love biking and have done it for many years. I want to have a utility bike first (for groceries, getting to work, etc), road bike second (for weekend trips to Marin) and a mountain bike third (for doing what I love most about biking...playing in the mud). The second two need to be top notch, so my goal was to make my first bike a fixer upper, so I could re-learn all about bike maintenance and repair. The bike I got was a 1970s Motobecane Grand Touring. It's yellow and silver. I'm going to change the wheels, rear cassette and cog (should come with wheel), bottom bracket and crank (need 175mm crank, and I might have to rethread the bottom bracket), possibly fork headset and handle bars...then brake levers and dérailleurs.

Anyway, I got to thinking about necessary accessories. There are lots of clothing that bikers tend to wear...you can see this in any bike shop. Shoes are essential, as this is part of the pedal/crank/chain system. But the pants and shirts are what concern me. Spandex is good if you're training or racing...but for fat slobs riding slowly with their girlfriends down abandon roads or wine tasting...please stop today.

There is a need for better "clothes" to wear while biking. Clothes that you could wear if you weren't biking either. They have these for camping, hiking, skiing, mountain biking, skating, and plenty of other sports (how many jerseys do you see at football stadiums...in the stands?) Why not utility biking and every day biking?

So I talked to a couple people and we concluded that the market probably hasn't had a demand for it yet. With rising gas prices, the new incentive ($20/month pre-tax from employer for riding your bike to work rather than driving) to ride your bike to work, the response in the Bay area surrounding increased commuters taking their bikes on public transportation, and many other factors are indicators that people don't want to drive anymore. They want to ride! And with that, let's make it more fashionable by providing fashion and clothing with is just as much utility as it is regular clothing. I'm waiting for this to improve.

Programming

The automake tool has been causing me headaches for the last week or so. I've been attempting to cross compile (to an ARM Cortex-A8...BeagleBoard) Pango because it's a dependency in a project I'm working on.

Learning Linux is satisfying. This is going to be more of an opinion post than anything, but diving into generating a Makefile from scratch which auto builds an entire list of dependencies in order to do this for other systems and compliers is a great thing. Tracking down bugs helps you learn the tools that are part of Linux (less, more, grep, etc), it helps you learn about log files, read through errors quicker, and figure out what all of these dependencies do. I'm learning more about how to start a project by learning how to make a project that's broken than I did programming with Windows for 4 years. In Windows, you don't have to mess with this stuff. There are some complicated things you can learn how to do in Windows...but their alternative in Linux is easy (e.g. DirectShow vs. GStreamer).

On the flip side, the "complicated" things in Linux really aren't that complicated, and are actually minimal for a reason. The alternative on Windows is obfuscated by their license. We can never know how some of these kernel level things happen in Windows because it's hidden on purpose.

Proof by induction: Linux is more user friendly, although more difficult to learn in the beginning.

Thursday, September 04, 2008

The Walkmen, Fad Diets and What Being a Developer Means


Sounds
Vanessa and I went to the Outside Lands Music Festival in Golden Gate park two weekends ago, and one of the more exciting shows I saw, and one which I haven't read about at all, was the Walkmen.

Take a listen. Think of a guy who doesn't know how to sing well, but a backing band that is full of amazing musicians. Then think about how red his face turns from screaming. It's pretty awesome.

Opinion
In January of this year, Vanessa and I had done the "Fat Flush Diet". She wanted to do some sort of cleansing flush diet, and I wanted to try the Zone diet due to it's popularity with the Crossfit people. I lost 20 something pounds in three weeks. I put 20 pounds back on in another two months. Now, I'm down 10 pounds from my original weight on January 1st, 2008. Vanessa has transitioned into the South Beach diet, an old favorite of hers, and I started down the track of the Whole Foods thing, leading me into the Locavore ideal.

There are a couple things I've noticed from most of these diet fads. First of all, most focus on removing something from your diet. Be it starch, sugars, fats, or things from farther than 100 miles away from where you're at. Secondly, when I'm actively participating, I think that the diet I'm on is the only one that's right.

The logical conclusions from these two issues is that a.) I (we as Americans) just plain eat too much, and b.) I (and thousands of others) are easily persuaded by the writers of these books. I hate being persuaded, so I think I'm going to continuing doing what I think is right. That is what's kept people alive for thousands of years prior. I'd like to eliminate consumerism from my life and actively participate in growing foods and eating what I can grow. I want to rely on as few people as possible, and only those in my community. This should be said for all things. I won't hire India to do work someone in my neighborhood could do. I won't drive a car when I have time to walk or ride a bike. All of these things are contagious in San Francisco, and I feel like I'm the silly new guy just figuring it all out. But every new guy does it a little different.

The opinion here is that fad diets are for the birds. So is industrial farming. Don't starve yourself of nutrients, and don't gorge in them either.

Programming
Thinking about "hats" that are worn by the typical software developer today, I had a list in my head. A software developer is:
  • An expert in legal issues regarding licensing
  • A craftsman
  • A project manager
  • A conductor
  • An author
  • A problem solver
  • A poet
  • A expressionist
  • A quality analyst
  • A scientist
  • An overseer
  • Hired help
  • An editor
  • A critic
  • Simultaneously an expert and a novice
  • A typist
  • A data entry person
  • A researcher
  • A librarian

Tuesday, August 19, 2008

The beginning

For a new format that I finally realized might work in this blog, I'm going to write about one topic of each of the three broad categories in each post (or at least attempt to). Today, I'm going to write about a genre that started in Ghana, my semi-informed opinion on working out and dieting, and Linux (specifically what I'm learning with semaphores, signals, and mutex's and how to make linux light).

SoundsI got a great CD the other day from Amoeba Records on Haight Street. It led me to look up the history of Nigeria, which led me to find highlife. Highlife is a genre that started in Ghana in the 1920s, and lasted until the 1980s. Apparently, it kind of died out in the early 1970s after the war in Nigeria, but it's what led to afrobeat and the funky/disco music of the 70s and 80s western Africa. I still like Ali Farke Toure better than, say, Fela Kuti or Tony Allen (both part of Africa 70), but that's a matter of preference. So, check out highlife music, especially this guy. It reminds me relaxing on the beach after a really hot day (on the east coast of course) and eating a light and delicious dinner. Maybe Nantucket needs me for a week next summer?

Opinions
I've been going to the gym 4 mornings a week for the last month and a half. I spend about an hour each time. In the beginning, I had to get back into the work out mode (aka back into shape), so I did a lot of rowing and bike riding. I would lift weights and do my standard warmup:
3 sets of the following:
15 seconds of Samson Stretch on each side
10 overhead squats with a light bar
10 situps
10 back extensions
10 pullups
10 dips

Of course, in the beginning, I could barely do 10 pullups, and now I'm only at 2 sets before breaking into my workout, but I'm confidient that I'll get to 3 pretty soon (within the next month).

My workout today got lots of looks from gay men, guys with huge muscles lifting light weights, and almost every woman who caught the weight I was pushing with their eye.

Why? Do I go to a pansy gym? Maybe I work out with a bunch of Republicans for a reason. Maybe it's so that I can make friends with bankers, real estate brokers, advertisting CEOs, and venture capitalists for a reason. I just made a huge impression on all of these people: Don't fuck with Ben, he can probably kick your ass.

Well, guys. This is my opinion. I'm not that strong. I'm a likeable guy, and the weight I lift is something everyone in the gym could do if they wanted. But instead, they spend three hours focusing on their triceps by pulling on a rubber band and maybe leaning over to look like a jack ass.

I do exercises that make me look like the opposite of a jack ass. I don't care about my muscle tone, because that is secondary to the other 10 aspects of athleticism (I don't know them offhand, but if you check out http://crossfit.com, you can find out what I mean).

If you want to be an athelete over having nice abs, then check out http://gymjones.com/, or http://crossfit.com/, and follow their schedules.

By the way, today I did the "Crossfit Total" with a total of 785 lbs (I almost had 805). I did one back squat with 315 lbs, one should press (i.e. military press) with 135 lbs (no warmup, and failed on 145) and one dead lift with 335 (failed with 355). Next time, I'm going to be over 800.

Programming

So, Linux is easy. It's easy for programmers. I've been reading a book called "Advance Linux Programming" which is about the fundamentals of the Linux operating system. I got through Processes and Threads, and am on the chapter entitled "Interprocess Communication".

I'll have more to write about this once I try to build a kernel and libraries from scratch as I need them. I'm going to make a custom linux distro for an embedded environment I'm working with. I'll have to only include device drivers that I need, cut down the tasks that Lilo has to do (like printing, etc), and then possibly initialize slow devices that aren't needed right away after the GUI library boots (I'm thinking of just using FrameBuffer and a ported GUI library that works with it).

More to come on this front.

Monday, August 18, 2008

Classes and how they communicate

I can't find the reference, but I once heard that you can tell the difference between a rich man and a poor man after it rains. A poor man will say "Alright! My car is clean!". I rich man will say "fuck, I have to wash my car again!"

Well, I was walking down the street today and heard a homeless person say "I've been thinking about going to New York." and realized that different classes of people will say different things about traveling, and I'm writing what I think is the breakdown:
1. Lower: I'm thinking about going to New York.
2. Middle: I went to New York and spent a lot of money.
3. Upper Middle: I had to go to New York for work and had a lot of fun.
4. Upper: I was in New York again last week looking at condo's.
5. Extreme Upper: I stopped over in New York for a couple weeks on my way to Europe. You should come to Europe, it's a lot of fun.

I'd be happier if everyone could talk to me like those who are in category 5, but that's how shit works. Every major society in the past advanced like crazy, remained in power, and maintained wealth because of slavery. There is still rampant slavery today (different than America's past) which is similar to Rome and England's respective empires. We have China+, or Burma, Thailand, Vietnam, and Polynesia. Where are the next 3rd world countries that we can exploit? Why is everyone in this country so afraid of China? I have an idea: Stop giving them money by shopping at Walmart and fall off the political map like Canada. If the US gets out of everyone's business, then no one will have any business being in ours and the threat of terrorism will go away. Therefore, I think that the threat of terrorism has a direct and linear correlation with how invasive our country is in foreign affairs.

So, I've decided to cut down my obsessive consumer whorism.

Friday, August 08, 2008

Romantic group idea

I don't know that the biggest attraction to Social Networking is the number of people who "follow" your every move on Twitter, Google Reader shares, Myspace, Flickr and everywhere else you exist online, but rather in the potential and for the people who aren't yet reading you.

This is the same thing in real life, where a group of like minded people forms a club, organization, company, guild, etc. Those original people do not last forever. In order to continue the organization of the group, you lay down some guidelines and expectations and allow new people to join the ranks. If you're going for popularity, then you should be selective and exclusive. If you're going for mass acceptance, then you should focus on marketing and activities.

It's a lot more difficult to sustain mass acceptance in anything. The advantage in this lies in those groups who either invented "it", or continually re-invent "it". Where was the Buffalo Wing invented? Where is the generally perceived "best wing joint"? For those not from Buffalo and just traveling through, the first place they hear about is Anchor Bar (the bar that claimed to invent it). The wings at Anchor Bar are completely different than every other place in the city. When I explain what a Buffalo wing is to someone, it's usually a deep fried chicken wing part slathered in melted butter and Frank's Red Hot (to varying degrees), or with some sort of vinegary BBQ sauce and then grilled afterwords.

What I'm trying to get at is that when you form an organization, the first thing you should decide after your mission statement (i.e. the Preamble to the US Constitution) is to decide if you're targeting mass appeal, or if your mass appeal is in your exclusiveness. There are levels of both, but this is the major difference.

Collab21 is a niche group that hopes to have mass appeal within the niche market. This means we're looking more towards mass appeal than exclusiveness. Since it's in a niche market, it may look like it's exclusive to some. We've already lost a few of our founders, and we haven't even found the right space yet. What does this mean? It's a different company already. If the remaining members can keep up the good work, things will work out as we had originally planned. But realizing that people come and go because of changing interests is important. Catering to the people that you dreamed of having in your group from the very beginning is key to getting other people that you never dreamed about...but can't see yourself without once they're there...in.

This may be a bad analogy, but if you set up a church to praise your God, everyone else who wants to do the same will come and hang out. Community.




In the meantime, read "Rooted in the Land" by William Vitek and Wes Jackson. This is a collection of essays on community. Knowing and loving your community is what we all strive for.

Monday, June 30, 2008

Slow Food Nation

I've been reading a lot about permaculture recently. Since some of my friends are big into the Slow Foods movement, I thought I'd share an event happening in San Francisco on my blog.

Slow Food Nation '08 | Aug 29 - Sept 1

Michael Pollan and Joel Salatin will be there (from Omnivore's Dilemma), as will a ton of amazing restaurants, events and most importantly: food.

See you there!

Friday, June 20, 2008

Working is not learning



I learn a lot at work. But it's all related to specific tasks that are necessary to perform my duties as a software engineer. What about the things that matter to me, like basic needs. In college, I was totally focused on Physiological needs. Things have changed since then, but my objectification of any goals or hobbies I pursue are with those needs in mind.

"Is skiing this weekend allowing me to fulfill my Physiological needs?"

After working on some great projects wtih groups, I realize I'm probably still at the Social stage, but at the same time working on Self Realization. My goal is to forget this pyramid altogether and just exist and do what I want.

That said, debt is a bitch. Without debt, I would have minimal bills. I wouldn't have to worry about getting fired, moving, changing jobs, or gaining or losing friends. But now I do. It's also preventing me from taking chances because I'm afraid I'll be stuck like this for a longer period of time. However, if I took a chance with some ideas, the payoff is bigger.

Thinkers do more things that doers. How? Create an idea, act on it, if it blooms, it does more things because there are doers employed to help achieve the goal. Not only that, but the thinker now probably has more resources to do things that the want, rather than "need" to do. We're stuck in a cycle. College -> work -> retirement. What happened to thinking outside the box. Where did that get us? Not only are we looking to colonize in space for geeky reasons, but it's almost required that we escape for health and for the continuation of our species.

Until I come up with the idea I'm willing to act on, I will be saving, working, and thinking about what I really need, not what I think I need.