<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1863341488780212170</id><updated>2011-12-31T12:30:04.197-08:00</updated><category term='collab21'/><category term='mass appeal'/><category term='women'/><category term='reading'/><category term='The Walkmen'/><category term='reality'/><category term='fad diets'/><category term='SQL'/><category term='twisted'/><category term='meaning of software engineer'/><category term='1000 recordings to hear before you die'/><category term='animal collective'/><category term='twisted python COM port'/><category term='engineering scrum agile'/><category term='community'/><category term='Guardian'/><category term='opinion craigslist'/><category term='&quot;jug band&quot;'/><category term='.NET open source Visual Studio 2008'/><category term='green'/><category term='TDD'/><category term='scrum'/><category term='TCP'/><category term='agile'/><category term='&quot;slow food&quot;'/><category term='Crossfit'/><category term='python'/><category term='opinion'/><category term='visual studio 2005'/><category term='Linux'/><category term='Highlife'/><category term='Opinion of classes'/><category term='all songs considered'/><category term='libtool'/><category term='SVN'/><category term='Python magazine'/><category term='&quot;tab complete&quot;'/><category term='programming opinion sound'/><category term='.NET'/><title type='text'>Sounds, Opinions and Programming</title><subtitle type='html'>This blog is used for three things very personal and important in my life: music, politics, and software.  I hope to offer good music, my opinions about all things political and historical, and advice related to software and hardware engineering.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-3257098022204866923</id><published>2009-01-29T13:58:00.000-08:00</published><updated>2009-01-29T13:59:44.871-08:00</updated><title type='text'>English is a funny language</title><content type='html'>I just received this from a colleague.  It made me laugh so I thought I would share it with everyone.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Words&lt;/span&gt;&lt;br /&gt;1. Coffee, n. The person upon whom one coughs.&lt;br /&gt;2. Flabbergasted, adj. Appalled by discovering how much weight one has gained.&lt;br /&gt;3. Abdicate, v. To give up all hope of ever having a flat stomach.&lt;br /&gt;4. Esplanade, v. To attempt an explanation while drunk.&lt;br /&gt;5. Willy-nilly, adj. Impotent.&lt;br /&gt;6. Negligent, adj. Absentmindedly answering the door when wearing only a nightgown.&lt;br /&gt;7. Lymph, v. To walk with a lisp.&lt;br /&gt;8. Gargoyle, n. Olive-flavored mouthwash.&lt;br /&gt;9. Flatulence, n. Emergency vehicle that picks up someone who has been run over by a steamroller.&lt;br /&gt;10. Balderdash, n. A rapidly receding hairline.&lt;br /&gt;11. Testicle, n. A humorous question on an exam.&lt;br /&gt;12. Rectitude, n. The formal, dignified bearing adopted by proctologists.&lt;br /&gt;13. Pokemon, n. A Rastafarian proctologist.&lt;br /&gt;14. Oyster, n. A person who sprinkles his conversation with yiddishisms.&lt;br /&gt;15. Frisbeetarianism, n. The belief that, after death, the soul flies up onto the roof and gets stuck there.&lt;br /&gt;16. Circumvent, n. An opening in the front of boxer shorts worn by Jewish men.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-3257098022204866923?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/3257098022204866923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=3257098022204866923' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/3257098022204866923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/3257098022204866923'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2009/01/english-is-funny-language.html' title='English is a funny language'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-4804686833596620886</id><published>2009-01-23T12:52:00.000-08:00</published><updated>2009-01-29T14:00:14.677-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animal collective'/><category scheme='http://www.blogger.com/atom/ns#' term='all songs considered'/><category scheme='http://www.blogger.com/atom/ns#' term='Guardian'/><category scheme='http://www.blogger.com/atom/ns#' term='reading'/><title type='text'>All Songs Considered, Reading,</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Sounds&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I've been listening to the All Songs Considered podcast on iTunes for the last few months.  They always release their weekly show on Monday night.  The last few weeks, though, they've made some additions to their programming.  One addition which I love is "Listening Party".  They've released two of these so far.&lt;br /&gt;&lt;br /&gt;Basically, it's an unreleased album streamed in low quality.  Today I got to listen to &lt;a href="http://www.npr.org/templates/story/story.php?storyId=99130768"&gt;Animal Collective's new album&lt;/a&gt;, &lt;a href="http://www.myanimalhome.net/"&gt;&lt;span style="font-style: italic;"&gt;Merriweather Post Pavilion&lt;/span&gt;&lt;/a&gt;, which is reference to a &lt;a href="http://www.merriweathermusic.com/"&gt;venue &lt;/a&gt;near Baltimore.  I'm totally in love with the rhythms in this record.  Although there's no typical screaming and shouting you hear on previous albums (e.g. &lt;span style="font-style: italic;"&gt;Sung Tongs&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Here Comes the Indian&lt;/span&gt;), Avey Tare's vocals are still driving with rhythmic and sometimes incomprehensible lyrical meanderings.&lt;br /&gt;&lt;br /&gt;Another All Songs Considered product that they just started recently is a chat with a band or artist.  Again, they got on the phone with some members of Animal Collective and got a lot of the fuzzy details that make the band so great cleared up.  Does that make them less than great?  Possibly to some, but not to me.  Descriptive words like "horror" and "trance-y" kept coming up when Avey and the Geologist were talking about how they get things done.  There was also the descriptive "water" element which they wanted to focus on when producing their new record.  You can see and hear this on the cover and music, and in their new video for &lt;a href="http://www.myanimalhome.net/"&gt;My Girls&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;All around, this is an evolution of what Animal Collective has been moving towards since Sung Tongs, and naturally will become part of my physical music collection.  I want my kids to discover this when they're going through my record collection.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Opinions&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Early on my Google Reader this morning, I came across an article on the Guardian about &lt;a href="http://www.guardian.co.uk/books/booksblog/2009/jan/23/best-list-novels-1000-explained"&gt;reading&lt;/a&gt;.  &lt;/span&gt;It basically said that if you read one novel a month plus an extra per year (they suggest over summer holiday) from the ages of 8 to 85, you will read 1000 books.  With that knowledge, how can you decide which ones to read?  I know for a fact that I have not read 13 books a year on average since I was 8.  That would be &lt;span&gt;261 up to this point in my life.  &lt;/span&gt;&lt;span&gt;As you can see from my &lt;a href="http://www.goodreads.com/user/show/964670"&gt;Goodreads&lt;/a&gt; account, I've read 71 books that I can remember.  These are most of the books on my shelves.  I have read cover to cover all of those that I claim, and probably 30 more technical books in college, plus probably up to 20 novels in high school and college for required reading.  That's 121 since 9th grade.  I couldn't even remember what I read before then, but let's say it's on the same trend.  That's 173 books since I was 8.  I'm 87 books off of my mark already, which is a few years behind.  Even if I live to be 85, I doubt I will ever reach 1,000 books.&lt;br /&gt;&lt;br /&gt;How do you know which to read?  What are you most interested in now?  I looked through some of the books the Guardian recommends, and there are more than a few I haven't heard of.  I'm not really into fiction, but the more I read, the more I want to incorporate into my "books to read" list on Goodreads and in my life.  I can handle multiple books at a time, but I usually concentrate on one, and leave the others in the background for rainy days, or when I'm sick of reading the main one.&lt;br /&gt;&lt;br /&gt;I find books using Amazon, my network of friends, book reviews and trolling bookstores.  Most of the time, I'll find a topic I become totally fascinated with and find the highest rated books on the subject, and binge them.  That's basically what the Guardian is asking you to do for 77 years of your life.  Binge on novels.  They guarantee you will be very interesting by the end.  I say that you will be a better reader by the end.&lt;br /&gt;&lt;br /&gt;I'm not worried about finishing my 1,000 books before I die, because I'm getting better at it.  But, the signs of "reader's block" have started.  Creativity isn't just a requirement for the writer.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Programming&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;I have no great insight for this post.  However, I've been writing a lot of Android apps, helping people write iPhone apps, and setting up a server with DNS and MySQL table replication.  I have no goals or plan for this knowledge as most if it is necessary, therefore the insight is not revealing.  Once I have some tidbits I'd like to share, they will be posted here.&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-4804686833596620886?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/4804686833596620886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=4804686833596620886' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/4804686833596620886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/4804686833596620886'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2009/01/all-songs-considered-reading.html' title='All Songs Considered, Reading,'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-2291947599510197130</id><published>2008-12-09T11:03:00.000-08:00</published><updated>2008-12-09T11:22:06.280-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='&quot;tab complete&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='&quot;jug band&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='&quot;slow food&quot;'/><title type='text'>Windows cmd, Slow Crab, Jug bands</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Sounds&lt;/span&gt;&lt;br /&gt;When I was getting into the Greatful Dead a while ago, I always read that they had started as the Warlocks and as a&lt;a href="http://en.wikipedia.org/wiki/Jug_band"&gt; jug band&lt;/a&gt;.  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. &lt;br /&gt;&lt;br /&gt;How did they do that?&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Opinion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;Vanessa and I volunteered for this last weekend's &lt;a href="http://www.slowfoodsanfrancisco.com/events.php"&gt;Slow Crab&lt;/a&gt; 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. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Check out http://slowfood.com/ if you love your food, or if you're sick of shopping at Target and eating at Applebee's.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Programming&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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).&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;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!&lt;br /&gt;&lt;br /&gt;So, if you want tab completion, start regedit by Start &gt; Run... &gt; type 'regedit' &gt; click OK. &lt;br /&gt;Browse to:&lt;br /&gt;&lt;div class="indent"&gt; HKEY_CURRENT_USER/Software/Microsoft/Command Processor&lt;br /&gt;Change the value to REG_DWORD 0x09 (hex), which is the ASCII value for horizontal tab.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-2291947599510197130?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/2291947599510197130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=2291947599510197130' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/2291947599510197130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/2291947599510197130'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2008/12/windows-cmd-slow-crab-jug-bands.html' title='Windows cmd, Slow Crab, Jug bands'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-1320938801882149518</id><published>2008-10-15T10:02:00.001-07:00</published><updated>2008-10-15T13:16:29.360-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='libtool'/><category scheme='http://www.blogger.com/atom/ns#' term='green'/><category scheme='http://www.blogger.com/atom/ns#' term='1000 recordings to hear before you die'/><title type='text'>1000 Albums, "Green" cycles, Linux commands you cannot live without</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Sounds&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.1000recordings.com/images/site/masthead.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 682px; height: 93px;" src="http://www.1000recordings.com/images/site/masthead.jpg" alt="" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.npr.org/"&gt;NPR&lt;/a&gt;'s &lt;a href="http://www.npr.org/templates/rundowns/rundown.php?prgId=37"&gt;All Songs Considered&lt;/a&gt; recently interviewed author &lt;a href="http://www.1000recordings.com/tom-moon/"&gt;Tom Moon&lt;/a&gt;, who wrote the book "&lt;a href="http://www.1000recordings.com/"&gt;1,000 Records To Hear Before You Die&lt;/a&gt;".  He went through tons of recordings (obviously), and came up with &lt;a href="http://www.1000recordings.com/the-list/"&gt;a list&lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Opinions&lt;br /&gt;&lt;/span&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://freelanceswitch.com/downloads/Wallpapers/2_ThinkOutside_1024.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://freelanceswitch.com/downloads/Wallpapers/2_ThinkOutside_1024.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;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.&lt;br /&gt;&lt;br /&gt;There is a Native American proverb which goes "&lt;/span&gt;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.&lt;br /&gt;&lt;br /&gt;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?"&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;Programming&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;If you're going to use linux, you need to learn a few commands.  The good ones are '&lt;a href="http://en.wikipedia.org/wiki/Grep"&gt;grep&lt;/a&gt;' and '&lt;a href="http://linux.about.com/od/commands/l/blcmdl1_find.htm"&gt;find&lt;/a&gt;'.  Once you figure those out, learn '&lt;a href="http://www.grymoire.com/Unix/Sed.html"&gt;sed&lt;/a&gt;' and '&lt;a href="http://www.vectorsite.net/tsawk.html"&gt;awk&lt;/a&gt;'.  '&lt;a href="http://www.oreillynet.com/linux/cmd/cmd.csp?path=s/screen"&gt;screen&lt;/a&gt;' is another great command that lets you have "tabbed" shells in one session. &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;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.&lt;br /&gt;&lt;br /&gt;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 &lt;a href="http://www.mythtv.org/"&gt;MythTV&lt;/a&gt; or &lt;a href="http://xinehq.de/"&gt;Xine&lt;/a&gt;).  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 &lt;a href="http://www.codesourcery.com/gnu_toolchains/sgpp/index_html"&gt;CodeSourcery G++&lt;/a&gt;.  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.&lt;br /&gt;&lt;br /&gt;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:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;xml2:&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;    xml2_configure xml2_make xml2_install&lt;/span&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-1320938801882149518?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/1320938801882149518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=1320938801882149518' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/1320938801882149518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/1320938801882149518'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2008/10/1000-albums-green-cycles-linux-commands.html' title='1000 Albums, &quot;Green&quot; cycles, Linux commands you cannot live without'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-3042769145456856280</id><published>2008-10-10T09:29:00.000-07:00</published><updated>2008-10-10T10:22:16.526-07:00</updated><title type='text'>The music of Video games, bicycling clothing, automake</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Sounds&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.freewebs.com/garudoh/24-smb3.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 88px; height: 121px;" src="http://www.freewebs.com/garudoh/24-smb3.jpg" alt="" border="0" /&gt;&lt;/a&gt;I stumbled on &lt;a href="http://ca.youtube.com/view_play_list?p=3E245DF445E37F50"&gt;380 YouTube videos&lt;/a&gt; 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 "&lt;a href="http://www.freewebs.com/garudoh/nesfamicom.htm"&gt;Gar's VGM Site&lt;/a&gt;".  These videos were compiled by a man named John, who is from Montreal.  His handle is "garudoh".&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;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 &lt;a href="http://www.youtube.com/watch?v=s7MiDyPEw_k&amp;amp;feature=PlayList&amp;amp;p=3E245DF445E37F50&amp;amp;index=1"&gt;#1&lt;/a&gt; and have to say that he's done an impressive job of including video game content as well as music.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Opinions&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.cordarounds.com/catalog/images/rsjblog/natebig.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px;" src="http://www.cordarounds.com/catalog/images/rsjblog/natebig.jpg" alt="" border="0" /&gt;&lt;/a&gt;I got a pair of &lt;a href="http://cordarounds.com/"&gt;Cordaround&lt;/a&gt;'s &lt;a href="http://www.cordarounds.com/bike-to-work/"&gt;Bike to Work&lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;But I'm no fashionista (fashionisto?)&lt;br /&gt;&lt;br /&gt;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 &lt;a href="http://www.wooljersey.com/gallery/v/broderir/Catalogs-Posters/Road-Tests-Reviews/Bicycling-1977-09-A/"&gt;1970s Motobecane Grand Touring&lt;/a&gt;.  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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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?&lt;br /&gt;&lt;br /&gt;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 &lt;a href="http://commutebybike.com/2008/10/03/bike-commuter-benefits-is-now-usa-law/"&gt;incentive&lt;/a&gt; ($20/month pre-tax from employer for riding your bike to work rather than driving) to ride your bike to work, the &lt;a href="http://www.ebbc.org/?q=node/2436"&gt;response in the Bay area&lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Programming&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gnu.org/graphics/heckert_gnu.small.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 148px; height: 143px;" src="http://www.gnu.org/graphics/heckert_gnu.small.png" alt="" border="0" /&gt;&lt;/a&gt;The &lt;a href="http://www.gnu.org/software/automake/"&gt;automake&lt;/a&gt; tool has been causing me headaches for the last week or so.  I've been attempting to cross compile (to an ARM Cortex-A8...&lt;a href="http://beagleboard.org/"&gt;BeagleBoard&lt;/a&gt;) &lt;a href="http://www.pango.org/"&gt;Pango&lt;/a&gt; because it's a dependency in a project I'm working on.&lt;br /&gt;&lt;br /&gt;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). &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Proof by induction: Linux is more user friendly, although more difficult to learn in the beginning.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-3042769145456856280?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/3042769145456856280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=3042769145456856280' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/3042769145456856280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/3042769145456856280'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2008/10/music-of-video-games-bicycling-clothing.html' title='The music of Video games, bicycling clothing, automake'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-8569135073872318512</id><published>2008-09-04T19:20:00.000-07:00</published><updated>2008-09-05T15:11:56.614-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='The Walkmen'/><category scheme='http://www.blogger.com/atom/ns#' term='fad diets'/><category scheme='http://www.blogger.com/atom/ns#' term='meaning of software engineer'/><title type='text'>The Walkmen, Fad Diets and What Being a Developer Means</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.brooklynvegan.com/img/music2/walkmencover.jpg"&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Sounds&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Vanessa and I went to the &lt;a href="http://sfoutsidelands.com/"&gt;Outside Lands Music Festival&lt;/a&gt; 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. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.brooklynvegan.com/img/music2/walkmencover.jpg"&gt;&lt;img src="http://www.brooklynvegan.com/img/music2/walkmencover.jpg" alt="" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px;" border="0" /&gt;&lt;/a&gt;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.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Opinion&lt;/span&gt;&lt;br /&gt;In January of this year, Vanessa and I had done the "&lt;a href="http://www.annlouise.com/"&gt;Fat Flush Diet&lt;/a&gt;".  She wanted to do some sort of cleansing flush diet, and I wanted to try the &lt;a href="http://www.zonediet.com/"&gt;Zone diet&lt;/a&gt; due to it's popularity with the &lt;a href="http://www.crossfit.com/"&gt;Crossfit&lt;/a&gt; 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 &lt;a href="http://www.southbeachdiet.com/sbd/index.aspx"&gt;South Beach diet&lt;/a&gt;, an old favorite of hers, and I started down the track of the Whole Foods thing, leading me into the &lt;a href="http://www.locavores.com/"&gt;Locavore&lt;/a&gt; ideal.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Programming&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Thinking about "hats" that are worn by the typical software developer today, I had a list in my head.  A software developer is:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;An expert in legal issues regarding licensing&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A craftsman&lt;/li&gt;&lt;li&gt;A project manager&lt;/li&gt;&lt;li&gt;A conductor&lt;/li&gt;&lt;li&gt;An author&lt;/li&gt;&lt;li&gt;A problem solver&lt;/li&gt;&lt;li&gt;A poet&lt;/li&gt;&lt;li&gt;A expressionist&lt;/li&gt;&lt;li&gt;A quality analyst&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A scientist&lt;/li&gt;&lt;li&gt;An overseer&lt;/li&gt;&lt;li&gt;Hired help&lt;/li&gt;&lt;li&gt;An editor&lt;/li&gt;&lt;li&gt;A critic&lt;/li&gt;&lt;li&gt;Simultaneously an expert and a novice&lt;/li&gt;&lt;li&gt;A typist&lt;/li&gt;&lt;li&gt;A data entry person&lt;/li&gt;&lt;li&gt;A researcher&lt;/li&gt;&lt;li&gt;A librarian&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-8569135073872318512?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/8569135073872318512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=8569135073872318512' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/8569135073872318512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/8569135073872318512'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2008/09/walkmen-fad-diets-and-what-being.html' title='The Walkmen, Fad Diets and What Being a Developer Means'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-8446575040984635646</id><published>2008-08-19T09:07:00.000-07:00</published><updated>2008-08-19T09:46:19.644-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Crossfit'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Highlife'/><title type='text'>The beginning</title><content type='html'>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).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sounds&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/commons/e/e7/Tony_Allen_mg_6469.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px;" src="http://upload.wikimedia.org/wikipedia/commons/e/e7/Tony_Allen_mg_6469.jpg" alt="" border="0" /&gt;&lt;/a&gt;I got a &lt;a href="http://www.cduniverse.com/search/xx/music/pid/6840353/a/Afro+Beats.htm"&gt;great CD&lt;/a&gt; the other day from Amoeba Records on Haight Street.  It led me to look up the history of Nigeria, which led me to find &lt;a href="http://en.wikipedia.org/wiki/Highlife"&gt;highlife&lt;/a&gt;.  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 &lt;a href="http://en.wikipedia.org/wiki/Ali_Farke_Toure"&gt;Ali Farke Toure&lt;/a&gt; better than, say, &lt;a href="http://en.wikipedia.org/wiki/Fela_Kuti"&gt;Fela Kuti&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/Tony_Allen_%28musician%29"&gt;Tony Allen&lt;/a&gt; (both part of Africa 70), but that's a matter of preference.  So, check out highlife music, especially &lt;a href="http://en.wikipedia.org/wiki/Rex_Lawson"&gt;this guy&lt;/a&gt;.  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?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Opinions&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://crossfit.com/"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px;" src="http://www.crossfit.com/mt-archive2/MTT0733.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;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:&lt;br /&gt;3 sets of the following:&lt;br /&gt;15 seconds of Samson Stretch on each side&lt;br /&gt;10 overhead squats with a light bar&lt;br /&gt;10 situps&lt;br /&gt;10 back extensions&lt;br /&gt;10 pullups&lt;br /&gt;10 dips&lt;br /&gt;&lt;br /&gt;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).&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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).&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Programming&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/commons/a/af/Tux.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px;" src="http://upload.wikimedia.org/wikipedia/commons/a/af/Tux.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;So, Linux is easy.  It's easy for programmers.  I've been reading a book called "&lt;a href="http://books.google.com/books?id=DPpUcItkuEYC&amp;amp;dq=advanced+linux+programming&amp;amp;pg=PP1&amp;amp;ots=XvixknaeAl&amp;amp;sig=gfpWpUPgZtLzVFUxxOKhWiP2HyI&amp;amp;hl=en&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;resnum=1&amp;amp;ct=result"&gt;Advance Linux Programming&lt;/a&gt;" which is about the fundamentals of the Linux operating system.  I got through Processes and Threads, and am on the chapter entitled "Interprocess Communication". &lt;br /&gt;&lt;br /&gt;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). &lt;br /&gt;&lt;br /&gt;More to come on this front.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-8446575040984635646?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/8446575040984635646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=8446575040984635646' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/8446575040984635646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/8446575040984635646'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2008/08/beginning.html' title='The beginning'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-3423092515968514667</id><published>2008-08-18T22:37:00.000-07:00</published><updated>2008-08-18T22:51:35.637-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Opinion of classes'/><title type='text'>Classes and how they communicate</title><content type='html'>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!"&lt;br /&gt;&lt;br /&gt;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:&lt;br /&gt;1. Lower: I'm &lt;span style="font-style: italic;"&gt;thinking&lt;/span&gt; about going to New York.&lt;br /&gt;2. Middle: I &lt;span style="font-style: italic;"&gt;went&lt;/span&gt; to New York and spent a lot of money.&lt;br /&gt;3. Upper Middle: I &lt;span style="font-style: italic;"&gt;had&lt;/span&gt; to go to New York for work and had a lot of fun.&lt;br /&gt;4. Upper: I &lt;span style="font-style: italic;"&gt;was in&lt;/span&gt; New York again last week looking at condo's.&lt;br /&gt;5. Extreme Upper: I &lt;span style="font-style: italic;"&gt;stopped&lt;/span&gt; &lt;span style="font-style: italic;"&gt;over&lt;/span&gt; in New York for a couple weeks on my way to Europe.  You should come to Europe, it's a lot of fun.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;So, I've decided to cut down my obsessive consumer whorism.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-3423092515968514667?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/3423092515968514667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=3423092515968514667' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/3423092515968514667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/3423092515968514667'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2008/08/classes-and-how-they-communicate.html' title='Classes and how they communicate'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-3444059698615600634</id><published>2008-08-08T08:54:00.001-07:00</published><updated>2008-08-08T09:13:40.143-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mass appeal'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='collab21'/><title type='text'>Romantic group idea</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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 &lt;a href="http://www.anchorbar.com/"&gt;Anchor Bar&lt;/a&gt; (the bar that claimed to invent it).  The wings at &lt;a href="http://www.anchorbar.com/"&gt;Anchor Bar&lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.collab21.com/"&gt;Collab21&lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.suzylamplugh.org/files/images/Training/community_pic.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.suzylamplugh.org/files/images/Training/community_pic.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the meantime, read "&lt;a href="http://books.google.com/books?id=7aSN5qxUuC8C&amp;amp;dq=rooted+in+the+land&amp;amp;pg=PP1&amp;amp;ots=oMzOy0hXpO&amp;amp;sig=NdlkPaJkDKBpLPtpprWFszGgvXU&amp;amp;hl=en&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;resnum=1&amp;amp;ct=result"&gt;Rooted in the Land&lt;/a&gt;" by &lt;a href="http://www.clarkson.edu/humanities-ss/faculty_pages/vitek.html"&gt;William Vitek&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Wes_Jackson"&gt;Wes Jackson&lt;/a&gt;.  This is a collection of essays on community.  Knowing and loving  your community is what we all strive for.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-3444059698615600634?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/3444059698615600634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=3444059698615600634' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/3444059698615600634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/3444059698615600634'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2008/08/romantic-group-idea.html' title='Romantic group idea'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-8560017096804357664</id><published>2008-06-30T10:15:00.000-07:00</published><updated>2008-06-30T10:16:34.907-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='&quot;slow food&quot;'/><title type='text'>Slow Food Nation</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://slowfoodnation.org/"&gt;&lt;img border="0" alt="Slow Food Nation '08 | Aug 29 - Sept 1" title="Slow Food Nation '08 | Aug 29 - Sept 1" src="http://slowfoodnation.org/assets/badges/sfn_webbadge_165x80.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Michael Pollan and Joel Salatin will be there (from Omnivore's Dilemma), as will a ton of amazing restaurants, events and most importantly: food.&lt;br /&gt;&lt;br /&gt;See you there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-8560017096804357664?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/8560017096804357664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=8560017096804357664' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/8560017096804357664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/8560017096804357664'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2008/06/slow-food-nation.html' title='Slow Food Nation'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-9001064575173032032</id><published>2008-06-20T11:17:00.000-07:00</published><updated>2008-06-20T11:30:10.630-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reality'/><title type='text'>Working is not learning</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.ruralhealth.utas.edu.au/comm-lead/images/Maslows-needs-Pyramid.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.ruralhealth.utas.edu.au/comm-lead/images/Maslows-needs-Pyramid.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/commons/5/58/Maslow%27s_hierarchy_of_needs.svg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://upload.wikimedia.org/wikipedia/commons/5/58/Maslow%27s_hierarchy_of_needs.svg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;"Is skiing this weekend allowing me to fulfill my Physiological needs?"&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;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 &lt;span style="font-style: italic;"&gt;do&lt;/span&gt; things that the want, rather than "need" to do.  We're stuck in a cycle.  College -&gt; work -&gt; 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.&lt;br /&gt;&lt;br /&gt;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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-9001064575173032032?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/9001064575173032032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=9001064575173032032' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/9001064575173032032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/9001064575173032032'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2008/06/working-is-not-learning.html' title='Working is not learning'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-5815091290691568535</id><published>2007-11-15T18:01:00.001-08:00</published><updated>2007-11-15T18:33:49.164-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SVN'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD'/><title type='text'>Agile Excitement</title><content type='html'>I've been listening to Dismemberment Plan a lot more lately.  Perhaps it's causing the excitement I used to feel when I was learning and in college.&lt;br /&gt;&lt;br /&gt;Regardless, I've been learning and implementing a few things at work recently.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Scrum.  At our old school bi-weekly software meeting, I advised everyone that I wanted to start a scrum for the "Software" group project, which actually includes four people and probably 15 projects.  Two are major and have been worked on for over a year by one or two people part time.  I asked everyone to edit the wiki and add tasks that were on their personal lists, with due dates and the amount of time it would take them to finish it.  They are doing this.  This will become the product backlog, once I find better software to track and manage the priorities.  I installed &lt;/span&gt;&lt;a style="font-family: georgia;" href="http://www.codeplex.com/Tackle/Wiki/View.aspx?title=scrum&amp;amp;referringTitle=Home"&gt;Tackle&lt;/a&gt;&lt;span style="font-family:georgia;"&gt;, and got it working.  But I like the functionality.  It's written with the new .NET 2.0 (ASP) data controls, and aren't very efficient for users.  It's clumsy, and I'm having hte same problem in my first ASP.NET app that's used for auditing OCR images.  Anyway.  We have a product backlog.  I will be prioritizing it while away on vacation in the coming week (Thanksgiving), so we can start a sprint when we all get back.  I'm excited because I've run through two 2 week sprints with my own tasks, and it works better than the cowboy shit we were doing.&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Test Driven Development (TDD).  I'm reading an article by Laurie Williams called "&lt;a href="http://agile.csc.ncsu.edu/SEMaterials/AgileTesting.pdf"&gt;Agile Testing&lt;/a&gt;", which gives a very detailed example for using TDD with JUnit to set up a monopoly game board with users and such.  Test Driven Development is where you write the test, first, before writing the code.  The process is: Requirements -&gt; Design -&gt; Failed Unit Test -&gt; Code -&gt; Passing Unit Test -&gt; Commit to SVN.  This is basically what it means.  So, the difference between what I'm thinking, and what this article says, is that I'm going to be using PyUnit and NUnit for different compliers and code.  We might have to make some sort of xUnit for our firmware and assembly if we're to test and compile on the post commit hook in SVN...but I'm sure we'll get to that later. Four things have happened now that I've read this.&lt;/span&gt;&lt;/li&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Professors write better articles than professionals (i.e. O'Reilly).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;My Object Oriented skills need some work.  I know that they're bad, but I wasn't trained as a software person...so let me write one .ASM file and get it over with, k?  (no, really, I will be working on this for the coming designs.)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;TDD makes all of the problems I was having in my mind regarding development disappear.  That sentence might not make sense to you, but basically, I think about my job all day and night.  I don't think about how to solve the coding problems (those are easy), but the management and project problems.  I'm very good at abstracting things, as well as drilling things down.  I need a lot of work and TDD will most definitely make me a better professional software person.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Even if I don't get a new job soon (where I can implement some of these things as a manager, or be told to utilize these advances as a junior developer), I will weasel my way into these old skool Japanese managers' styles and insert my own.  The whole point of TDD and Scrum is to work from the bottom up, not the top down.  Well, me and my software guys are the bottom of one of the 5 biggest companies in the world (circa 2000).&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Informally: eXtreme Programming (XP).  I moved my cube next to the other full time software guy, and took down the wall between us.  He was cool with it because we could collaborate better, and everyone else (except the CEO) was ok with it.  I'll convince them that we'll be quicker on generating good code for them.  We're in a position to sell tons of stuff to Asia and Europe...so I have to get ready for my first real public test (ok, Hyundai wasn't that bad).  I know some of the ports liked my GUIs, but I hated them.  I guess that minimalist approach (as well as centralizing software and updates) is a better design than what they get from SAIC or something...I don't know.  I can't imagine that anything I do is better than anyone else in the world who writes code.  I guess it works, and that's what they like, right?  ANYWAY...time to make my stuff better and faster :).&lt;/span&gt;&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;.NET 2.0 and 3.5, Python, SQL Server, and (possibly in the nearer future) java.  Infrastructure.  I'm doing it.  I got some internal servers set up.  The first two linux boxes these guys had, as well as the first three Win2003 servers were set up.  I pushed for DNS server, Apache and IIS, SQL Server, MySQL, public FTP, public HTTP, VPN (required a new Cisco PIX), and other major changes.  I RAID'ed all of the linux boxes, and wrote backup scripts.  I forced the new software people to learn and use .NET2.0, and have been slowly feeding them 3.5 technology (Linq, XLinq, WCF, etc) to see what they think.  I was the first person to write using Python, and now all of our services that we sell are written in Python (and async Twisted of course).  I'm re-learning java to see if we can transfer any tech or projects to that instead of heavy C++ or not-strongly-typed-yet-immutable-strings python.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;Wow, /me pats self on back.  I've done quite a bit for the infrastructure.  I'm getting it where it needed to be, now it's time to code like an Agile (Rock) Star (without the drugs, chicks, and fame).  Maybe someday soon I'll look at applying to grad school so I can pick a field that's more specialized :).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-5815091290691568535?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/5815091290691568535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=5815091290691568535' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/5815091290691568535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/5815091290691568535'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2007/11/agile-excitement.html' title='Agile Excitement'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-324808477286780502</id><published>2007-11-05T11:05:00.000-08:00</published><updated>2007-11-05T11:08:41.034-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opinion'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Purdue University</title><content type='html'>I'd like to personally thank the university where I received a degree from, for allowing me to find and learn the following things on my own:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Agile Development&lt;/li&gt;&lt;li&gt;Test Driven Development (TDD)&lt;/li&gt;&lt;li&gt;NUnit/PyUnit/xUnit/etc&lt;/li&gt;&lt;li&gt;Scrum&lt;/li&gt;&lt;li&gt;eXtreme Programming (XP)&lt;/li&gt;&lt;li&gt;Pair Programming&lt;/li&gt;&lt;li&gt;Good unit testing&lt;/li&gt;&lt;li&gt;java&lt;/li&gt;&lt;/ol&gt;I guess it was my fault for being interested in a subject that requires a PhD for consideration of interviewing (VHDL and circuit board layout), and then falling back to a software position after graduation.  I guess that's no body's fault but my own.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-324808477286780502?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/324808477286780502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=324808477286780502' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/324808477286780502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/324808477286780502'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2007/11/purdue-university.html' title='Purdue University'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-354685608882930360</id><published>2007-10-30T14:06:00.000-07:00</published><updated>2007-10-30T14:15:18.085-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='engineering scrum agile'/><title type='text'>Agile</title><content type='html'>After reflecting on the direction of my career, I realized that I am not fit to be a programmer or a hardware engineer.  I studied to be a hardware designer (firmware, chip level, and board level), but quickly became discouraged because there were only software jobs.  I learned how to write software better, and that's what I've done ever since.  Now I'm at a point where I have experience...but guess what.  All of that Linux and Solaris (even being a T.A. in a C Programming class on Solaris boxes)....they all think I know too much about Windows.&lt;br /&gt;&lt;br /&gt;Well, I realized that I'm fit to be a manager instead.  Not a project manager, but a department head.  Someone that develops other managers and provides resources for them to perform their job effectively.&lt;br /&gt;&lt;br /&gt;Wait.  But how do I get there?  I'm just a Development Manager right now, working undercover as a Development Engineer. &lt;br /&gt;&lt;br /&gt;Well, I have a feeling I'm not getting the right experience for my new goal.  So my new job and outlook for jobs will be to look for project management positions and tell them I know how to lead a group and Agile and all that. &lt;br /&gt;&lt;br /&gt;But I want to tell the truth...like I always do in interviews.  Humble Ben never getting job offers due to his extreme modesty.&lt;br /&gt;&lt;br /&gt;So, I found &lt;a href="http://en.wikipedia.org/wiki/Scrum_%28development%29"&gt;Scrum&lt;/a&gt;.  I found that you can become a &lt;a href="http://www.rallydev.com/csm_registration.jsp"&gt;Certified ScrumMaster&lt;/a&gt; for only $1200.  I'm determined to covert this ancient systems development group into a modern product driven research machine, which pumps out quality products that will ensure our future, and force management to get on the horse and sell this shit.  I'm sick of waiting for the next job, when we have no sales team, no integration team, we have a part time quote writer and a part time micromanager....  it's time for change.&lt;br /&gt;&lt;br /&gt;I'm going to set up a product backlog for my personal work on the intranet's wiki.  Then, I'll have daily meetings with my mind to tell it what it will be doing for the rest of the day (no excuses).  I'll set monthly goals based on this backlog.  When I decide that it's good to go, I'll present it to the team, and we'll convert our software shop from pre-Waterfall into Scrum-3000. &lt;br /&gt;&lt;br /&gt;Until then.  It's time to work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-354685608882930360?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/354685608882930360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=354685608882930360' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/354685608882930360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/354685608882930360'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2007/10/agile.html' title='Agile'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-2432169680248759218</id><published>2007-10-25T10:27:00.001-07:00</published><updated>2007-10-25T10:54:30.933-07:00</updated><title type='text'>Software Development Manager</title><content type='html'>For almost a year, now, I've been titled "Software Development Manager" at my job.  Now that I've been talking with other companies, I'm really at a loss as far as what this means. &lt;br /&gt;&lt;br /&gt;The company I work for is in the business that some mechanical engineers dream of.  Huge cranes and ships with 100,000HP that have &lt;a href="http://www.manbw.com/ev_intro/inhalt/flash_e/start.html"&gt;3 foot diameter pistons&lt;/a&gt;.  I was hired as the 6th person to a new group that did systems research.  We were all Computer and Electrical Engineers.  But, since I had some experience with software, they had me write a few apps in VB.  After I cleaned up the vomit, I wrote them in VB, then C++, then Python.  When I asked for help when we got a few more projects, we hired a few more people.  I needed business cards.  My boss said "you can be VP of software if you want".  I told him that my position is not fitting for that title.  He said "ok, how about Software Development Manager"?  I agreed.&lt;br /&gt;&lt;br /&gt;Right away, I got into developing our software base.  I bought 15 books for the library (mainly O'Reilly Python, C#, and C++ books).  I upgraded all servers to Windows 2003, and got Visual Studio 2005 copies for developers.  No one wanted Linux at all...even our customers...even though it's cheaper...so I set up two linux servers to do all of the SVN, Bugzilla, Wiki, external support, FTP, and cron jobs we needed.  Then I started to run bi-weekly software meetings to complement our specific project meetings that happened every Wednesday.  I wanted to make sure we were all working together, sharing our code base, and working on similar projects together and not against each other.  Our firmware become componentized (Dynamic C for Rabbits).  We collaborated on Windows service installation and remote debugging.  We learned Embedded Windows, ASP, and AJAX as a group.  Although we're all working on different projects, we're doing it with respect to everyone else.&lt;br /&gt;&lt;br /&gt;So I don't really have to manage anyone.  I've been on the hunt to understand what a manager actually does.  They develop their employees and let them grow.  But I spend most of my time writing code and figuring out new technologies...and projects that will make us money and gain some more patents.  We already have one in the last few months...how about this other idea I had, boss?&lt;br /&gt;&lt;br /&gt;Anyway.  I started concentrating on the "software development" and the "development manager" more so than the "software manager" ideal.  So, I'm developing software.  One of two goals is checked.  It's great because people still like it because it works efficiently.  It's documented, customers like our APIs, etc etc.  The "development manager" seems also to be my role.  Whenever I install some new service, everyone gets excited like it's a new Nintendo, and it's Christmas 1986.  But, most important to my personal development at this position, I've learned that a manager really doesn't do anything other than direct.  The best directors are the ones who get a good script, wrap their head around their own vision, and convince actors to do what they're thinking.  When they get in there and say "you're hand is in the wrong spot...say it louder...don't smirk when you move your legs...lose some weight" etc etc...they lose it and it becomes Hollywood garbage.&lt;br /&gt;&lt;br /&gt;So, too, must a "development manager" find tools and lay groundwork for "software development" to take place more efficiently, with more grace and with more entertainment value...it's not really work...it's what you like to do!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-2432169680248759218?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/2432169680248759218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=2432169680248759218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/2432169680248759218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/2432169680248759218'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2007/10/software-development-manager.html' title='Software Development Manager'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-2438146106812393076</id><published>2007-10-22T09:49:00.000-07:00</published><updated>2007-10-22T10:00:34.500-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='twisted python COM port'/><title type='text'>Old School Programming</title><content type='html'>Thanks to &lt;a href="http://jcalderone.livejournal.com/"&gt;JP Calderone&lt;/a&gt; in the [&lt;a href="http://twistedmatrix.com/"&gt;Twisted-Python&lt;/a&gt;] listserv, I was lead to &lt;a href="http://twistedmatrix.com/trac/browser/trunk/twisted/internet/serialport.py"&gt;twisted.internet.serialport.py&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now, I know what you're all saying: "But my computer doesn't even come with a COM port anymore!!!"  That's a.) where you're wrong, and b.) where computer manufacturers are wrong.  Serial ports used to be the easiest way to communicate with an external device.  There may have been some custom protocol to follow (in the case of triggered laser speed detectors from &lt;a href="http://www.omron.com/"&gt;Omron&lt;/a&gt;, for example), but normally, you verify the baud rate, data bits, stop bits and parity, plug in your device, and write some simple bitwise code in C or (EEEEK) VB or something similar, and you have a working application.&lt;br /&gt;&lt;br /&gt;You're wrong about the serial interface, because when you get down to it, there is potential to hack your MOBO and install a COM connection on an existing port.  They exist on your chip, and therefore, you can allocate IRQ, I/O Range and Memory Range for input and output buffers, spoof the Windows kernel (by using a different kernel like Linux or BSD) and tada!  You have a hacked COM port.&lt;br /&gt;&lt;br /&gt;What can you use it for now?  How about communicating with a modem?  Or using twisted on two computers to sync data?  As long as they're on, you don't have to use the network, so hackers won't be listening.  You could use it to populate a media server (it would take a long effing time to populate)...endless possibilities for the average consumer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-2438146106812393076?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/2438146106812393076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=2438146106812393076' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/2438146106812393076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/2438146106812393076'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2007/10/old-school-programming.html' title='Old School Programming'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-8778852362661230533</id><published>2007-10-16T15:22:00.000-07:00</published><updated>2007-10-16T15:38:09.738-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opinion craigslist'/><title type='text'>Using Craigslist</title><content type='html'>I got a new apartment this month.  I moved to the Bay Area a little over a year ago.  Since I came with no furniture, building a house out of cheap Craigslist (CL) furniture is a daunting task for someone with style in mind.  I thought I would list the categories and the pros and cons of each.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Individual sellers&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Pros&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Cheap&lt;/li&gt;&lt;li&gt;Personal (you usually get a history)&lt;/li&gt;&lt;li&gt;Price is &lt;span style="font-weight: bold;"&gt;always&lt;/span&gt; negotiable. &lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Cons&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Never have dimensions&lt;/li&gt;&lt;li&gt;Often, there is no image or a stock image&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;li&gt;Scams&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Pros&lt;/li&gt;&lt;ol&gt;&lt;li&gt;You get to beat someone up for free!&lt;/li&gt;&lt;li&gt;You don't get the merch, but you get a free opportunity to utilize some adrenaline. &lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Cons&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Sometimes there's more than one, so fighting them with a &lt;a href="http://nerf.com"&gt;Nerf&lt;/a&gt; (r) gun is a daunting task&lt;/li&gt;&lt;li&gt;Sometimes there's too many of them, and they take your money and beat &lt;span style="font-weight: bold;"&gt;you&lt;/span&gt; up.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;li&gt;Companies using the free advertising CL offers&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Pros&lt;/li&gt;&lt;ol&gt;&lt;li&gt;It's convenient and they post hours, pictures, and prices.&lt;/li&gt;&lt;li&gt;Usually greater selection&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Cons&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Overpriced&lt;/li&gt;&lt;li&gt;Usually poor quality for the price range of a 20-something&lt;/li&gt;&lt;li&gt;Not the point of a community list&lt;/li&gt;&lt;li&gt;Lot's of spam&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;Now, I've found some great deals on Craigslist, such as a free Cherry wood desk from Bombay furniture, and a $100 solid mahogany desk that is HUGE and real.  This is way under priced.&lt;br /&gt;&lt;br /&gt;But now, I'm looking for a couch and a television.  Kitchen table and chairs, and yard furniture is also on the list of things to get.  I sure do need a bedside table and some new living room furniture.  How about an entertainment center for the TV, stereo equipment and records that I already have? &lt;br /&gt;&lt;br /&gt;Well, I have a lot of work to do on the CL (as someone who says "The Google" would say), so I better get to it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-8778852362661230533?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/8778852362661230533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=8778852362661230533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/8778852362661230533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/8778852362661230533'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2007/10/using-craigslist.html' title='Using Craigslist'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-5274829956307740826</id><published>2007-10-05T10:14:00.000-07:00</published><updated>2007-10-05T10:19:06.639-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python magazine'/><title type='text'></title><content type='html'>&lt;a href="http://www.pythonmagazine.com/"&gt;PyMag&lt;/a&gt; has released their &lt;a href="http://www.pythonmagazine.com/img/issues/2007/10/PyMag_2007-10.pdf"&gt;first issue&lt;/a&gt; for free.  The fact that it's free doesn't impress me.  The fact that there is finally a Python magazine with lessons and tips is what impresses me.  I'm a subscriber automatically.  I should get the &lt;a href="http://www.compusa.com/products/product_info.asp?product_code=342339&amp;amp;ref=frooglelocal&amp;amp;pfp=frooglelocal&amp;amp;cm_ven=frooglelocal&amp;amp;cm_cat=&amp;amp;cm_pla=&amp;amp;cm_ite=feed"&gt;Sony Reader&lt;/a&gt; and download them so that I can read while riding the BART to work after selling my car.&lt;br /&gt;&lt;br /&gt;Now it's time to read...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-5274829956307740826?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/5274829956307740826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=5274829956307740826' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/5274829956307740826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/5274829956307740826'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2007/10/pymag-has-released-their-first-issue.html' title=''/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-4968095489621638134</id><published>2007-10-04T08:59:00.000-07:00</published><updated>2007-10-04T09:20:36.338-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET open source Visual Studio 2008'/><title type='text'>Microsoft OS.NET</title><content type='html'>&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx"&gt;Developers at Microsoft&lt;/a&gt; have announced that they will open source .NET3.5 (comes with Visual Studio 2008), including the basic .NET libraries, Linq, ADO.NET, ASP.NET, and a few others, under &lt;a href="http://www.microsoft.com/resources/sharedsource/licensingbasics/referencelicense.mspx"&gt;Ms-RL&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;The problem is, we won't be able to modify the code.  We will be able to see it in a debugger, just so we can understand what's going on.  It's for reference.  Hence, the name "Microsoft Reference License". &lt;br /&gt;&lt;br /&gt;Which, to me, is fine.  I'm glad that they're taking this step.  It means, that, for the first time in Microsoft's history, we will get to see the man behind the mask.  We will finally be able to figure some basic building blocks of the Windows operating system that previously would have been reverse engineered.  Since they're keeping comments in the source code, they can instruct how to use that specific function/class/interface.&lt;br /&gt;&lt;br /&gt;I'm excited, because for the first time, we can see &lt;a href="http://msdn.com/"&gt;MSDN&lt;/a&gt; content integrated within the source code.  Think &lt;a href="http://docs.python.org/lib/module-pydoc.html"&gt;PyDoc&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;I probably won't be an early adopter to .NET3.5 (although I've already used it for a project) with Visual Studio 2008 (formerly Orcas), but I can't wait to use Linq and XLinq to query me some data.  I'm excited!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-4968095489621638134?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/4968095489621638134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=4968095489621638134' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/4968095489621638134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/4968095489621638134'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2007/10/microsoft-osnet.html' title='Microsoft OS.NET'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-8822559623864084799</id><published>2007-09-27T15:25:00.000-07:00</published><updated>2007-09-27T15:35:09.164-07:00</updated><title type='text'>Musics</title><content type='html'>Last night, I purchased a couple books from &lt;a href="http://www.dogearedbooks.com/dogeared/index.htm"&gt;Dog Eared Books&lt;/a&gt; on Valencia.  I've been interested recently in learning about the human brain (because of my interested in a PhD program in neuroscience and neural prostetics), and in learning French (because I'm thinking of moving to France).  I purchased my first French dictionary, and started translating a French book that they had for sale.  The first sentence on the back of the page is "Insociants amis bachelates!", which (as far as I can tell) translated to "Carefree graduates!" in English.  I'm going to keep doing this to learn words, and pronunciations (from the dictionary).&lt;br /&gt;&lt;br /&gt;After the book store, I saw the movie &lt;a href="http://imdb.com/title/tt0907657/"&gt;Once&lt;/a&gt;, which eventually captivated me into oblivion.  Music is becoming boring for me.  I've listened to all of the genres.  I know what it all means.  I understand, and I still shiver when I hear a very technical performance live.  I think my life has too many other things going on, which is very sad.  However, a rekindling due to &lt;a href="http://oink.cd"&gt;Oink&lt;/a&gt; has begun.  I'm concerned with my share ratio, but it doesn't seem to do too bad if you're on albums that people want.  I just shared a John Cage album that wasn't up there before, and received Shocking Pinks in return.  I like this new stuff...&lt;br /&gt;&lt;br /&gt;I think my nerves have been worn down regarding new music since I've been so agitated with our president and congress...that nothing else seems to matter much. &lt;br /&gt;&lt;br /&gt;But, we're all going to die someday anyway, right?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-8822559623864084799?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/8822559623864084799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=8822559623864084799' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/8822559623864084799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/8822559623864084799'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2007/09/musics.html' title='Musics'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-8411506509609199680</id><published>2007-09-26T11:29:00.002-07:00</published><updated>2007-09-26T11:44:00.860-07:00</updated><title type='text'>How to get an apartment in San Francisco</title><content type='html'>I've been looking for an apartment in San Francisco for the last 2 months.  My roommate and my budget is tight, and neither of us are willing to compromise on space and security.  There was one place that I was 2nd on the list only because I hadn't applied fast enough.  Through all of these experiences, I've learned a few tricks that should land me a place in the coming weeks.  So, I've made a list of tips on how to secure your next hipster pad across the street from Dolores Park, or your yuppie GOP heaven near Grace Cathedral.  It ain't easy, but either is livin'.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Bring your credit report.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Don't just bring your credit report, bring your resume, a cover letter telling them why you're looking and what you're looking for...and two pay stubs to prove that you've been in the city (or in a job) for a while.  Any form of proof that you exist is probably good, as most people that come to open houses don't really exist, and the home owners know this.&lt;/li&gt;&lt;li&gt;If the person there isn't the home owner (happens very often) give it to them anyway.  The worst they can do is throw it away.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Show up earlier than everyone else.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Be the first to fill our all of their required documentation.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Be interested.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;If you walk in, fill out an app, and walk out...you're screwed.  I don't care if your credit score is 850...at least shoot the shit with these people.  Can you image working like that all day?  I would need someone to make me utilize my vocal cords, or I'd go nuts!&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Set up an email or phone correspondence.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;If there's an open house with times and addresses in &lt;a href="http://craigslist.org/"&gt;Craigslist&lt;/a&gt; then...email them before the open house to let them know.  If you just show up, they won't be familiar with you, and you're less likely to get the place.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Don't bribe or be a douche-bag about needing it.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Seriously.  Are you that desperate?  &lt;a href="http://couchsurfing.com/"&gt;Couch Surf&lt;/a&gt; until they move rent to your level.  This country is run by it's citizens, not by corporations and government.  Be a damn citizen and suck it up for a bit.  That right place will fall into your lap.  My first place in the city was a result of a 2 bedroom open house with a 4 bedroom upstairs.  My roommates went to the 2 bedroom, and were surprised to find a 4 bedroom that wasn't in &lt;a href="http://craigslist.org/"&gt;Craigslist&lt;/a&gt; for $2200 in 2005.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Get a place you can barely afford.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Everyone is moving up in the world, right?  So, chance are, if you're serious, you'll get a raise in the next year.  Learning how to budget the money you do have will make that raise more important and feel good.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Don't give them too much.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;If the place isn't worth it...fuck 'em.  They can find some idiot who can pay their exorbitant rates (ah hem CityApartments).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-8411506509609199680?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/8411506509609199680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=8411506509609199680' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/8411506509609199680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/8411506509609199680'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2007/09/how-to-get-apartment-in-san-francisco.html' title='How to get an apartment in San Francisco'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-6057420971707152261</id><published>2007-07-17T11:39:00.000-07:00</published><updated>2007-07-17T11:40:50.134-07:00</updated><title type='text'>Linus Torvalds</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;I compare it with science and witchcraft (or alchemy). Science may take a few hundred years to figure out how the world works, but it &lt;strong&gt;does&lt;/strong&gt; actually get there, exactly because people can build on each others knowledge, and it evolves over time. In contrast, witchcraft/alchemy may be about smart people, but the knowledge body never “accumulates” anywhere. It might be passed down to an apprentice, but the hiding of information basically means that it can never really become any better than what a single person/company can understand.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;And that’s exactly the same issue with open source vs proprietary products. The proprietary people can design something that is smart, but it eventually becomes too complicated for a single entity (even a large company) to really understand and drive, and the company politics and the goals of that company will always limit it.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-6057420971707152261?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/6057420971707152261/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=6057420971707152261' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/6057420971707152261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/6057420971707152261'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2007/07/linus-torvalds.html' title='Linus Torvalds'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-4103204150642973191</id><published>2007-03-08T18:08:00.000-08:00</published><updated>2007-03-08T18:17:21.696-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='women'/><category scheme='http://www.blogger.com/atom/ns#' term='TCP'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='twisted'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Programming + Music</title><content type='html'>I have learned SO much in the last few weeks, it's unreal.  Here's a short list of what I've done:&lt;br /&gt;1.) set up mysql, apache, bugzilla, a cvs server, vsftpd, sshd, and twisted on a linux box (all for the first time in my life successfully and completely)&lt;br /&gt;2.) re-learned batch file scripting for an install script for my twisted Windows service.  It does the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Initialize registry values&lt;/li&gt;&lt;li&gt;installs python, twisted, pymssql, and transfers other files where necessary&lt;/li&gt;&lt;li&gt;creates a windows service and changes the type to "Auto"&lt;/li&gt;&lt;li&gt;figures out whether SQL Server 2000 or 2005 is installed and initializes all databases, tables, stored procedures, triggers, functions, and initializes data in one table based on user input...depending on which is used.&lt;/li&gt;&lt;/ul&gt;It's not a final script, but it works ok.&lt;br /&gt;3.) C++ times a million&lt;br /&gt;4.) I finally figured out what I was missing in my brain that prevented me from understanding the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;asynchronous programming using either .NET2.0 (not asyncsocket) or &lt;a href="http://twistedmatrix.com"&gt;Twisted&lt;/a&gt;&lt;/li&gt;&lt;li&gt;OSI TCP/IP layers.  I finally realize how simple and affective this is (I always assumed I knew)...it's a great advancement.&lt;/li&gt;&lt;/ul&gt;5.) I know what I want in a woman.  I just need to find her.  I'll find you, don't worry.&lt;br /&gt;6.) I've been researching cybernetics, specifically biocybernetics and bionics.  I think my next company will involve something I learn from this.&lt;br /&gt;&lt;br /&gt;I will be posting some of the amazing coding techniques and styles I've been learning recently, but don't have enough time right now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-4103204150642973191?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/4103204150642973191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=4103204150642973191' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/4103204150642973191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/4103204150642973191'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2007/03/programming-music.html' title='Programming + Music'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-3086837838407343266</id><published>2007-03-01T14:17:00.000-08:00</published><updated>2007-03-01T14:19:54.892-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opinion'/><title type='text'>Detachment from Intention</title><content type='html'>Yeah...what &lt;a href="http://name-redacted.livejournal.com/33883.html?style=mine"&gt;he&lt;/a&gt; said. It's important that we (collectively not singularly) have forgotten about our founding. We've forgotten and still use it as an excuse to freedom. Since 1999, I thought that if I were to meet Governor Bush (yes...he was actually elected to at least one political position), I would spit on him and turn my back, since he's done that to my country. However, I was thinking of a question today. "Please tell me what freedom means to you. What makes a man (proverbial) free?" It's the rhetoric that is killing us, and the fact that politicians understand what they want, and will do anything to get it. I think our founding fathers knew this would happen, and tried the best way they knew to keep politics out of politics (if that makes sense). I still wonder what would have happened had George Washington accepted the popular idea of making him "King of Columbia". He was a mean but humble man. Where are the mean but humble presidents now? Obama? no... Kucinich? maybe... me? Hell no... I think we're all out of them. Maybe Clint Eastwood? Maybe Chuck Norris? Seriously...who's mean and humble at the same time?&lt;br /&gt;&lt;br /&gt;You know, in Islam, the first 40 years after Mohammad died were the best (some say) because it was a true democracy during this time. The rulers and teachers were selected by the masses to represent those particular jobs. This doesn't work well in a large mass where no one knows anyone else, etc...but the reason it changed is because the original intent of Mohammad was mis-interpreted to mean that a descendant of Mohammad were to rule... All good things must have an end. I'm just waiting for Guam or Puerto Rico to fight for its independence from the US like Cuba did in the 60s. When will we get the picture?&lt;br /&gt;&lt;br /&gt;Anyway..ranting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-3086837838407343266?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/3086837838407343266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=3086837838407343266' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/3086837838407343266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/3086837838407343266'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2007/03/detachment-from-intention.html' title='Detachment from Intention'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-7564191270138382679</id><published>2007-02-22T10:44:00.000-08:00</published><updated>2007-02-22T10:50:29.462-08:00</updated><title type='text'>"I'm neither micro nor soft" - BG's pick up line</title><content type='html'>How nice of Microsoft's MSDN team to tell us a couple weeks before it happens that there will be a problem with every program we've written, and if we access the registry, our programs won't access the time zone data correctly....great!&lt;br /&gt;&lt;br /&gt;This is the email I received from MS today:&lt;br /&gt;"""&lt;br /&gt;&lt;span style="font-family:Arial, Helvetica, sans-serif;font-size:85%;"&gt;&lt;b&gt; Dear Valued Microsoft Customer,&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;In 2005, the United States government passed the Energy Policy Act of 2005. This act changes the start and end dates for Daylight Saving Time (DST) as of spring 2007. These changes may impact the way applications run. Microsoft is releasing an update for Windows through Microsoft Update that reflects these changes.&lt;br /&gt;&lt;br /&gt;Developers who use the .NET Framework may find their applications affected if the application uses the time zone information for historical purposes or if they have derived custom classes from &lt;a href="http://response.microsoft.com/P/v3/r.asp?r=T1_Url0&amp;e=102271%3B111233%3B29345558%3B2%3B02&amp;amp;a=1007" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt; System.TimeZone&lt;/a&gt; to provide custom time zone information. The standard System.TimeZone class provides a managed wrapper for the underlying Windows Operating System time zone functions.&lt;br /&gt;&lt;br /&gt;In addition, developers who use Visual C++ may find their applications affected if they use the CRT time functions, or the TZ environment variable. Microsoft is currently working on a fix for this issue and will post information about its availability on the &lt;a href="http://response.microsoft.com/P/v3/r.asp?r=T1_Url1&amp;e=102271%3B111233%3B29345558%3B2%3B02&amp;amp;a=1007" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt; Visual Studio Support&lt;/a&gt; page.&lt;br /&gt;&lt;br /&gt;Most applications that use these affected classes will not need to be modified as this update will ensure that the correct data is provided seamlessly to the application. However, applications that use these classes or the underlying &lt;a href="http://response.microsoft.com/P/v3/r.asp?r=T1_Url2&amp;e=102271%3B111233%3B29345558%3B2%3B02&amp;amp;a=1007" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt; Windows API&lt;/a&gt; to perform historical time look-ups will need to be modified.&lt;br /&gt;&lt;br /&gt;In most cases, developers who have extended the .NET Framework’s time zone support by creating custom time zone classes derived from System.TimeZone, or by direct access to the Win32 API, will not have to update their applications as long as the available updates to the operating system are applied. However, solutions that rely on private time zone data, or that retrieve system time zone information by accessing the registry directly, may need to be updated. Applications that deal with historical time zone data may also need to be updated.&lt;br /&gt;&lt;br /&gt;Microsoft advises all developers who make use of time zone data to test their applications against this update to ensure that their applications function correctly.&lt;br /&gt;&lt;br /&gt;For more detailed information and the latest updates please visit &lt;a href="http://response.microsoft.com/P/v3/r.asp?r=T1_Url3&amp;e=102271%3B111233%3B29345558%3B2%3B02&amp;amp;a=1007" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt; http://msdn2.microsoft.com/en&lt;wbr&gt;-us/vstudio/bb264729.aspx&lt;/a&gt;, &lt;a href="http://response.microsoft.com/P/v3/r.asp?r=T1_Url4&amp;e=102271%3B111233%3B29345558%3B2%3B02&amp;amp;a=1007" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt; Preparing for daylight saving time changes in 2007&lt;/a&gt;, and &lt;a href="http://response.microsoft.com/P/v3/r.asp?r=T1_Url5&amp;e=102271%3B111233%3B29345558%3B2%3B02&amp;amp;a=1007" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt; KB928388: 2007 time zone update for Microsoft Windows operating systems&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Further Assistance&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Microsoft values your business.  For more information visit &lt;a href="http://response.microsoft.com/P/v3/r.asp?r=T1_Url6&amp;e=102271%3B111233%3B29345558%3B2%3B02&amp;amp;a=1007" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt; http://www.microsoft.com&lt;wbr&gt;/dst2007&lt;/a&gt;, or contact Microsoft for assistance.  A list of phone numbers is located at &lt;a href="http://response.microsoft.com/P/v3/r.asp?r=T1_Url7&amp;e=102271%3B111233%3B29345558%3B2%3B02&amp;amp;a=1007" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt; http://support.microsoft.com&lt;/a&gt;.  Microsoft Premier Customers may engage their Technical Account Manager directly.&lt;br /&gt;&lt;br /&gt;Please DO NOT REPLY to this email as this is not a monitored inbox. If you have questions/inquiries please visit &lt;a href="http://response.microsoft.com/P/v3/r.asp?r=T1_Url8&amp;e=102271%3B111233%3B29345558%3B2%3B02&amp;amp;a=1007" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt; http://www.microsoft.com&lt;wbr&gt;/dst2007&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;This e-mail is intended for distribution within the United States. Please contact your local Microsoft subsidiary for similar offerings outside the US.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Thank you,&lt;br /&gt;&lt;br /&gt;Microsoft US Developer Team&lt;br /&gt;"""&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;So, if you're using .NET and System.TimeZone (not derived from though!), or Win32 (like me), you're fine....as long as you have the newest version of Windows Vista 2025 Extra Business First class snakesonaplane Superman3 Robocop Titanium edition.  Will they provide an update for Windows 2000 or NT Server?  What about 2000 Server edition?  What about Windows 98?  If not, then all of the code I wrote at my old company can be trashed :)...or at least the time zone functionality.&lt;br /&gt;&lt;br /&gt;Well, that's it.  I'm glad they told us at least before the fact, and late enough so that no one really freaks out like Y2K (why2fake i called it).  Idiots.&lt;br /&gt;&lt;br /&gt;This is more of a reason to convince my employers to switch to trusty Linux (I'm using a CentOS box at work for CVS, internet web server, and file sharing via SMB).&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-7564191270138382679?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/7564191270138382679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=7564191270138382679' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/7564191270138382679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/7564191270138382679'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2007/02/im-neither-micro-nor-soft-bgs-pick-up.html' title='&quot;I&apos;m neither micro nor soft&quot; - BG&apos;s pick up line'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-5890009937494719086</id><published>2007-02-15T10:35:00.000-08:00</published><updated>2007-02-15T10:41:51.355-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming opinion sound'/><title type='text'>Name and content change</title><content type='html'>I have a couple "blogs" throughout internetstanbul, and want to consolidate.  I kept separate blogs because some of my personal blogs are that post high school emo "woe is me" type bull, which I would rather not have mixed in with programming tips and tricks, or music recommendations, or political discussions.&lt;br /&gt;&lt;br /&gt;So what I think I might do is change the name of this blog from "The Science of Programming" to "Sounds, Opinions and Programming", which will include discussions related to the TV show I will be producing and the music related, as well as music I'm into and seeing that's not related to the show.  It will include opinions based on discussions, ideas, or inspirations that I get just living life.  These will mainly be political in nature, because it seems that most of my emotional energy is driven towards political discussion.  Finally, I want to write about programming.  I don't just want to write tips, tricks, and new algorithms, but about IDEs, the culture behind programming, compilers/languages, how to manage software and hardware projects, and other things related to my greatest passion, and what I do for a living.&lt;br /&gt;&lt;br /&gt;I have absolutely no one yet reading this blog, so I will be surprised if I get feedback on this right now, but I think I should be transitioning within the next few months.  Oh, and it will make it easy to search because I'll be labeling each post based on one of three things "programming", "opinion", or "sound"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-5890009937494719086?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/5890009937494719086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=5890009937494719086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/5890009937494719086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/5890009937494719086'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2007/02/name-and-content-change.html' title='Name and content change'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-8456829524168179350</id><published>2007-02-06T14:32:00.000-08:00</published><updated>2007-02-06T14:50:52.805-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio 2005'/><title type='text'>Visual Studio 2005 and "writing" to the registry</title><content type='html'>I've spent the last few weeks learning how to approach Visual Studio 2005.  I have no prior experience with .NET, CLR, managed code, and interop until now.  I've been digging through videos, forums, blogs, and newsgroups (mainly through MSDN) to find information relative to my goal.  My goal is to make a couple very specific client socket operations in a managed assembly (read: DLL) format.  I have to make it part of the global assembly cache, so there are minor requirements to achieve beyond learning the language, libraries, and IDE.&lt;br /&gt;&lt;br /&gt;Regardless, there is a lot to learn, and I think Microsoft is heading in a good direction with their C++ compiler group.  I also (coming from VS6.0) think the IDE has advanced in many good ways.  Least of all of these is the tabs at the top, and the tabbed toolbars on all sides (that you can hide).   The only thing I'm worried about, is that M$ will limit what each programmer is allow to use and not use.  Yeah, we can use sockets and have access to the registry...but do we really have these things? They're taking away the lowest level of abstraction, in order to provide user friendly tools, so someday they will be able to control every aspect low level access.  They will tell us when we can write to the registry, and what and where.  I'm not ready for this yet.&lt;br /&gt;&lt;br /&gt;This will relate Windows to an OS like Apple IIe... firewalled by hardware.  If Microsoft doesn't allow development beyond a certain level, they are essentially fire-walling their OS as if it were impossible to mangle anything below that level.  We could, of course, hack the assemblies, but who wants to do that with managed code?  With the program memory that will be used in the heap because of .NET libraries, there's a lot of assembly to look through before finding how to hack the registry.  We might be getting the best treatment by the Visual Studio C++ compiler and IDE past, but the abstraction and development depths are being sacrificed.&lt;br /&gt;&lt;br /&gt;What do you think?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-8456829524168179350?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/8456829524168179350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=8456829524168179350' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/8456829524168179350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/8456829524168179350'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2007/02/visual-studio-2005-and-writing-to.html' title='Visual Studio 2005 and &quot;writing&quot; to the registry'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-3699557712504121488</id><published>2007-01-11T11:47:00.000-08:00</published><updated>2007-01-11T12:08:18.957-08:00</updated><title type='text'>OS Projects that I utilize first hand</title><content type='html'>Open Source has been a sexy tech topic over the last year or more.  I think it was finally popularized because of the fact that Windows users had a choice between two decent browsers.  Well, they could choose to not use Internet Explorer is more like it.  Firefox is the open source software that I use the most, and I would recommend anyone in their right mind technologically to do the same.&lt;br /&gt;&lt;br /&gt;However, what is the real open source model about?  What are some &lt;span style="font-style: italic;"&gt;real&lt;/span&gt; OS projects?  I'll be giving a list of the most frequenty used open source projects that I use.  This is the furthest list from objective as I could make it...so it would probably help if you didn't actually read this.&lt;br /&gt;&lt;br /&gt;1.) &lt;a href="http://centos.org"&gt;CentOS 4.4&lt;/a&gt; - A linux package that is based on Red Hat Enterprise 4.  There are a couple RH ripoffs (Fedora being the other big one), but I've used CentOS since 1.0.  I like it.  I can't explain it.  It has the same visuals (GNOME, GTK, KDE, X-Windows) as RH...well...I don't know what it is.  Perhaps it's the closest thing to what you have to pay RedHat for that one can get.  I use CentOS for programming, mainly, but also use it for IRC, AIM, and to hide things from my employeer (four desktops :)).&lt;br /&gt;2.) &lt;a href="http://python.org"&gt;Python 2.4 and 2.5&lt;/a&gt; - "Object Oriented" programming language.  Why do I like Python?  Primarily, because it's flipping easy to use.  It's powerful (can use C libraries), you can write windows services just as well as linux daemons with it.  You can make love to it in the patio.  You can use it for &lt;span style="font-style: italic;"&gt;any&lt;/span&gt; GUI library interface, and in less lines of code than you would with C++.  It's clean, meaning, that if you do not indent properly, it will not run.  Also, you can compile it if you want to cut down on parsing time.  It's great.  I use Python anytime I'm able to...I just need to find the write IDE for it (read below).  Python.org has an amazing community.  The people involved are very helpful.  This goes for IRC, mailing list, local listserv's, and the documentation...Oh!  The documentation is the best I've seen related to any product so far in my life....far superior to MDSN (IMHO).&lt;br /&gt;3.) &lt;a href="http://twistedmatrix.com/trac/"&gt;Twisted Framework for Python&lt;/a&gt; - An asynchronous sockets framework that is used in Python.  I use this for writing servers.  I wrote a custom protocol (think SSH or FTP) with it...and it works...quickly.  There are some problems with using it, but the community is very helpful and always on.  They have a great IRC chat, a decent mailing list, and moderate documentation.&lt;br /&gt;4.) &lt;a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython"&gt;Iron Python&lt;/a&gt; - Python + .NET = Iron Python.  I use this in VS2005, as well as in MonoDevelop.  If you want to write Python and use your .NET libraries...you should know that this exists.&lt;br /&gt;5.) &lt;a href="http://www.mono-project.com/Main_Page"&gt;Mono&lt;/a&gt; - An open source .NET compilier.  So, you want to write .NET code, but don't want to pay M$ $500 for their shitty product?  Check Mono out.  It works on Windows, too, so don't give me that bullshit about opensource is for Linux geeks.  It works, even if you're just getting the compilier.&lt;br /&gt;6.) &lt;a href="http://www.monodevelop.com/Main_Page"&gt;MonoDevelop&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/SharpDevelop"&gt;Sharp Develop&lt;/a&gt;&lt;br /&gt; - Open source IDEs for .NET.  These can actually use the Windows version of the csc.exe if you want...otherwise, get Mono with it.  MonoDevelop is for Linux, Sharp Develop is for Windows.  Neither are as complete as Visual $tudio, but they do what I need them to.  AND...I can change it if I don't like it (beat that Mr. Gates).  I had some problems initially getting MonoDevelop to work with CentOS, but found that my icon theme was missing a file, so I changed it and now it works.&lt;br /&gt;&lt;br /&gt;That's pretty much it.  I know there's a lot more OS stuff out there that I used on a daily basis, but to know that there's free support, free software, and not as many angry people at the other end of your questions is why I got into it.  So, if you're new to programming, read a book, take a class, and find the real world stuff in OS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-3699557712504121488?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/3699557712504121488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=3699557712504121488' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/3699557712504121488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/3699557712504121488'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2007/01/os-projects-that-i-utilize-first-hand.html' title='OS Projects that I utilize first hand'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-8807935700065099702</id><published>2006-12-06T12:25:00.000-08:00</published><updated>2006-12-06T12:48:46.374-08:00</updated><title type='text'>Windows Registry</title><content type='html'>&lt;span style=";font-family:arial;font-size:85%;"  &gt;So, I've been working with the registry for the last few weeks using various languages (VB6.0, C++6.0, C#, C++2005, and Python).  The current issues I'm having with this are using the Mark Hammond win32api module for Python.  Actually, the biggest problem I have with Python is the lack of documentation.  They have an amazing documentation system, where comments in the code are automatically search-able and help files are created automatically.  This is different than Visual Studio, where a help file has to be created automatically.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;Anyway...back to the registry.  I remember when I was first learning how to program using Windows, and I started using .conf files.  All of my programs had a CONF file which had no keys or sections, but just values.  I had to write classes to read and write specific lines at a time, and ended up just parsing the whole thing, splitting on newlines, and then getting the offset.  The problems with this are obvious.  So, I read up on it, and realized there were some great INI parsing utilities with VB6.0.  Once I used those in C++6.0, I read in depth on it, and realized that the reason the functions, i.e.&lt;/span&gt; &lt;/span&gt;&lt;a name="more"&gt;&lt;code&gt;GetPrivateProfilexxx&lt;span style="font-family:arial;"&gt;, are the same, is because there used to be a windows.ini file, which all applications wrote to.  Well...how's that for inane!  I guess the idea is similar to the old school pre-DNS look-up tables.  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;So far, however, I've found that getting to the point of understanding what is necessary to even read values from the registry is to use AfxGetApp() (in C++ dialog based apps) in your MyApp class.  Then, you can read and write as much as you want in InitInstance and ExitInstance.  In Python, it's easier, but at least I understand what they want.  In VB it's a joke.  Just call "SaveSetting" or "GetSetting".  Gah, I don't even know why I had a problem in the first place or what the point of this is other than to point out that although the API calls are all different (in different languages), accessing the registry is as easy as declaring that it exists, and providing the "path" or folder list to which keys you want to read. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;It's good practice, however, to read from the HKEY_CURRENT_USER\Software folder, especially for settings related to the specific user.  It's a better idea to use HKEY_LOCAL_MACHINE\Software if you want to store settings like database names, usernames and passwords, and things that are general settings and probably used for remote connections (also for IRC server lists, etc).  Don't change HKEY_USERS, because this is the default setup for new users to the system, and HKEY_CLASSES_ROOT is just bizarre, and I don't want to get into it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Back to Python!&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-8807935700065099702?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/8807935700065099702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=8807935700065099702' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/8807935700065099702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/8807935700065099702'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2006/12/windows-registry.html' title='Windows Registry'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-8732617157152552908</id><published>2006-10-06T10:12:00.000-07:00</published><updated>2006-10-06T10:24:02.743-07:00</updated><title type='text'>Twisted Python</title><content type='html'>This will not be a tutorial or explanation about Twisted.  I plan to leave that for a later time.  This is going to be a short reflection on why I love Twisted.  &lt;a href="http://twistedmatrix.com"&gt;Twisted&lt;/a&gt; Python aka "Twisted Matrix Laboratories", is an asynchronous networking framework that works inside of Python, and works well.  When I was writing network code in C++, there was a lot of sockets, forking, etc.  Most of the techniques are either synchronous, or require multiple threads, or both.  Twisted works on one thread, and is non-blocking, so that once data is received, the thread sends data to a temporary thread, and returns to the listening loop in case more data is received.  The documentation on the site is lacking, but once you wrap your skull around it, it makes sense.  The most difficult thing for me was the absense of code.  I had to write almost nothing to get a working server.&lt;br /&gt;&lt;br /&gt;However, my favorite reason for getting into this OpenSource stuff, is the commenting.  For example, in t.p.log, I ran across the following (from release for Python 2.4):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;class EscapeFromTheMeaninglessConfinesOfCapital:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    def own(self, owner):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        warnings.warn("Foolish capitalist!  Your opulent toilet will be your undoing!!",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;                      DeprecationWarning, stacklevel=2)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    def disown(self, owner):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        warnings.warn("The proletariat is victorious.",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;                      DeprecationWarning, stacklevel=2)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;logOwner = EscapeFromTheMeaninglessConfinesOfCapital()&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Well, it goes on.  I'll leave you to find more of this humor.  In the meantime, I'll be writing my windows service in twisted with named pipes so I can control it (meaning the client part of the server..heh) from a VC++ GUI.  Also, my server is interfacing with Microsoft SQL Server (bleh), and I wrote a custom protocol for Twisted in a few hours...that will only work for my application.  All of this stuff would have taken me a few days if not weeks in VC++, but now I only have to write the GUI, and not mess with ADO, wtih threading, with ANYTHING backend, which makes me happy...and it should you and your boss too.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-8732617157152552908?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/8732617157152552908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=8732617157152552908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/8732617157152552908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/8732617157152552908'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2006/10/twisted-python.html' title='Twisted Python'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863341488780212170.post-3733226730968873837</id><published>2006-09-26T11:26:00.000-07:00</published><updated>2006-09-26T11:44:35.030-07:00</updated><title type='text'>Twisted, Python, C++, ADO, ODBC, etc</title><content type='html'>&lt;span style="font-family:arial;"&gt;Just an intro.  I'm Benry.  I'm an R&amp;D Engineer at a company that makes tracking devices in Hayward, CA.  I will discuss small elements of my designs, and found code that should be more easily distributed and for my future reference.  I am most comfortable with C++ and Python, although I can do anything in Assembly (know Motorola, PIC, Rabbit, and TI), SQL, VHDL, and the list continues.  I'm a programmer.  I'm not a nerd or a geek, but I love to see things work and to fix problems.  I write a lot of bugs, but so does everyone.  I'm open to intepretation and suggestions as I'm using this as a learning tool.  Currently, I'm writing a COM server to encapsulate a Twisted server, so that I can import it into a C++ with MFC or CLI GUI.  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;So, welcome to my interpreted world of programming!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;My first code (I'll edit the code tags later) is using INI files (obviously in Windows).  I don't know of an easier way to store settings for software unless it's directly in the registry.  When I was learning how to use Windows and write code in it, I was wondering why they didn't use .conf files.  I didn't know about the purpose of the registry, but now know that it's because Windows used to force all programs to keep their settings in windows.ini.  This was a bad idea, for obvious reasons, so they structured it a bit different, gave it an interface (regedit) and a couple COM interfaces, so now all programs should be writing to the registry.  I refuse.  I learned on a Solaris box, then a Redhat box, and was forced into learning Windows when I couldn't find a job in the Linux/UNIX world out of college.  Anyway.  I use INI files.  The example I'm going to show today is something that I came up with in VC++ with MFC to check various paths for the INI file.  I made sure to check the path of the executible, the default path used during development (i.e. C:\).  If the INI file didn't exist in either of these places, it will prompt the user for where to find the damn thing.  Once it's found, the global variable representing the path to the INI file (keys to the kingdom) is set, and program execution continues as normal.  I did this in Python this morning, but it was a lot easier and a bit different.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;So here's the &lt;span style=";font-family:courier new;font-size:100%;"  &gt;OnInitDialog()&lt;/span&gt;called when the application loads the main dialog.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;BOOL CApplicationDlg::OnInitDialog()&lt;br /&gt;{&lt;br /&gt;  CDialog::OnInitDialog();&lt;br /&gt;&lt;br /&gt;  m_pDialog = NULL;&lt;br /&gt;&lt;br /&gt;  char strTemp[MAX_ARRAY];&lt;br /&gt;  ::GetCurrentDirectory(MAX_ARRAY, strTemp);&lt;br /&gt;  m_sFilePath.Format("%s\\", strTemp);&lt;br /&gt;&lt;br /&gt;  m_sErrorPath = m_sFilePath;&lt;br /&gt;&lt;br /&gt;  CheckFilePath();&lt;br /&gt;...&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;}&lt;/span&gt;&lt;span style=";font-family:georgia;font-size:85%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style=";font-family:georgia;font-size:85%;"  &gt;Everything with an "m_" is a class member.&lt;br /&gt;&lt;br /&gt;The function &lt;span style="font-size:100%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;CheckFilePath()&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;is below:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;BOOL CApplicationDlg::CheckFilePath()&lt;br /&gt;{&lt;br /&gt;  CFile testFile;&lt;br /&gt;  CString sFileTemp;&lt;br /&gt;&lt;br /&gt;  if(!testFile.Open(m_sFilePath + "app.ini",CFile::modeReadWrite)){&lt;br /&gt;      if(!testFile.Open("C:\\app.ini", CFile::modeReadWrite)){&lt;br /&gt;          if(!testFile.Open("C:\\Program Files\\AppPath\\app.ini", CFile::modeReadWrite)){&lt;br /&gt;   &lt;br /&gt;              testFile.Abort();&lt;br /&gt;              testFile.Flush();&lt;br /&gt;&lt;br /&gt;              AfxMessageBox("Please choose the path of app.ini.");&lt;br /&gt;              m_cmnDialog1.SetFilter("INI Files (*.ini)|*.ini|");&lt;br /&gt;              m_cmnDialog1.ShowOpen();&lt;br /&gt;&lt;br /&gt;              //Check if it was cancelled first&lt;br /&gt;              if(m_cmnDialog1.GetCancelError() || m_cmnDialog1.GetFileName() == ""){&lt;br /&gt;                  return FALSE;&lt;br /&gt;              }&lt;br /&gt;&lt;br /&gt;              // Check for a valid path name, and repeat loop.&lt;br /&gt;&lt;br /&gt;              if(m_cmnDialog1.GetFileName() != ""){&lt;br /&gt;                  sFileTemp = m_cmnDialog1.GetFileName();&lt;br /&gt;                  testFile.Open(sFileTemp,CFile::modeReadWrite);    // Used to get the path&lt;br /&gt;                  sFileTemp = testFile.GetFileName();        // Get's the file name to strip&lt;br /&gt;                  m_sFilePath = testFile.GetFilePath();        // from the full path&lt;br /&gt;                  m_sFilePath.TrimRight(sFileTemp);                // and store it in sFilePath&lt;br /&gt;              }&lt;br /&gt;          }&lt;br /&gt;          else{&lt;br /&gt;              m_sFilePath = "C:\\Program Files\\AppPath\\";&lt;br /&gt;          }&lt;br /&gt;      }&lt;br /&gt;      else{&lt;br /&gt;          m_sFilePath = "C:\\";&lt;br /&gt;      }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  testFile.Abort();&lt;br /&gt;  return TRUE;&lt;br /&gt;}&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863341488780212170-3733226730968873837?l=benry-sop.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benry-sop.blogspot.com/feeds/3733226730968873837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863341488780212170&amp;postID=3733226730968873837' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/3733226730968873837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863341488780212170/posts/default/3733226730968873837'/><link rel='alternate' type='text/html' href='http://benry-sop.blogspot.com/2006/09/twisted-python-c-ado-odbc-etc.html' title='Twisted, Python, C++, ADO, ODBC, etc'/><author><name>Benry</name><uri>http://www.blogger.com/profile/09770438353538333805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lbC7eSPAxOE/SO-RtF7MEII/AAAAAAAACgo/0I_InZGI_A4/S220/IMG_4054.JPG'/></author><thr:total>0</thr:total></entry></feed>
