FindingIT

exercise for bad weak backs Article

1) The wind shifts its direction counterclockwise 2) To trim a sail to windward

Home

exercise for bad weak backs Navigation

Exercise For Bad Weak Backs
Welcome Back Kotter
Back To The Future Theme
Cher If I Could Turn Back Time


New interface design for MythTV
MythTV 0.22 will be sporting a new interface design. Features include animation, better interactivity, and faster and easier development for themers and developers...
]]>

Zap2It Labs discontinuing free TV guide service
Zap2It Labs have announced (cache) via their webpage that, due to abuse of the service, data will no longer be available after September 1st. There is no other direct source, and no option to pay for the service even if the users wanted to...
]]>

UK petition for free TV listings
http://petitions.pm.gov.uk/Free-TV-listings/ being run to make all UK television listings freely available under royalty-free terms such as a Creative Commons License....
]]>

New server
DreamHosts.

I have had to drop the mirrors, atleast temporarily, as the new site is bandwidth limited.
]]>

Sky Anytime for Any PC?
Advogato has pointed out (cache) that Sky's advertising of their new Anytime package doesn't actually run on *any* PC. It requires Windows.

lkcl suggests the advertising is in breach of the ASA guidelines and goes on to point out the many devices runing GNU/Linux Sky is now utilising, including the set-top box, and the modified/pre-configured Netgear DG834GT for the broadband service.

Under the GPL license, Sky should provide the source code free of charge...
]]>

Interview with pcHDTV Founder/CEO
Open Addict has an interview (cache) with Jack Kelliher, Founder and CEO of pcHDTV, the Linux-focused hardware company that markets HDTV cards.

Their flagship product is the HD-5500 (cache) HDTV PCI card which supports the popular MythTV Linux PVR application...
]]>

New HDTV chips announced at Consumer Electronics Show
CES show has seen the launch of a raft of new HDTV chips.

Conexant has added two video decoders for HDTV personal video recording (PVR) set-top boxes. The CX2427X is a dual-channel video decoder that can decode two HDTV programmes simultaneously, and supporting PVR applications on up to two televisions, eliminating the need for a dedicated STB receiver for each TV.

For the cable market, Broadcom has developed an HDTV Chip with a programmable security engine that has the hardware included to support all the current conditional access systems. This will avoid the need for subscriber cards, which are costly to distribute and vulnerable to hackers, and allow new CA algorithms to be downloaded to the cableboxes...
]]>

Sky+ tops 2 million mark

The rapid growth of Sky+ highlights increasing demand from customers for the ability to take control over their television viewing. With 2 million active boxes, almost 5 million viewers are using Sky+ to record without video tape, pause and rewind live TV, and record all episodes of a favourite series at the touch of a button...
]]>

KWorld introduces dual hybrid TV tuner
KWorld has announced a new TV tuner in the form of the DVB-T PE310 (cache). The DVB-T PE310 is a dual hybrid TV tuner PCI-Express card initially designed for the UK market.
The DVB-T PE310 sports two tuners, both of which are capable of displaying analog and digital signals, which means that you can tune into two analog sources, or two digital sources or even one analog and one digital at the same time.
On top of that, you can use the additional AV/S-Video input for CVBS, S-video or SPDIF connections...
]]>

MythTV developer on ExtremeTech
MythTV, has an article on ExtremeTech (cache) about his book Hacking MythTV (cache). In this article, he reviews the 'Top Plugins for MythTV' ...
]]>



Below, you'll find extensive information on leading exercise for bad weak backs articles and products to help you on your way to success.

The Discount Mortgage Loan
By Leon

They work by having for a period of time the "discount period" a set percentage discounted from the standard variable rate or the bank base rate normally off their standard variable rate or bank base rate. So if the bank of England base rate rise or fall lenders will usually adjust their mortgage rate, however the agreed discount on the product will apply to the revised rate until the end of the incentivised period. Then the rate will revert to the lenders standard variable rate.
For the discount period early repayment charges usually apply these may apply for the duration of the discount period or they might apply for a period beyond this date. Some discount deals may have steps in them so perhaps for the first year the discount rate will be very attractive then reduce the level of discount each year until the end of the total discount period. Known as a stepped discount. Many lenders for remortgaging offer free legal costs and valuation though there is generally a lender's fee which could be charge up front or added to the home loan on completion.
Discount deals potentially may help you to reduce monthly mortgage payments. Discounted mortgage deals aim to reduce the monthly mortgage payments for a determined period (i.e. the discount period) thus helping

IS YOUR CAR BRAND SPANKIN USED?
Out with the old, and in with the new. As new vehicle models are making their way out of the factories and into dealerships, many car owners will look to trade-in or resell their current one. There are numerous factors that determine a vehicle's resale value, such as the make and model of your vehicle, its age, mileage and overall condition. Although a large portion of the resale value is predetermined, car owners do have the opportunity to increase the value by taking proper care of the vehicle
Unlocking the door to safety
According to Kids and Cars, a non-profit organization that lobbies to prevent deaths and injuries of children left unattended in and around cars, 67 children have died just this year from being left in a car unattended.
Swimming Safely: What Every Pool Owner Should Know
As the Southeast's leading provider of pool equipment, chemicals and accessories, Pinch A Penny wants everyone to get maximum enjoyment from their pools, so they take the concept of safe swimming very seriously.
Out with the Old, In with the New
When appliances stop working as well as they should, consumers have two choices - repair or replace. And with so many enticing sales, it's easy to just replace it. So how does a homeowner decide what route to take
Get A Move on with Vehicle Graphics
Businesses of all types and sizes are looking for better, more affordable ways to market and it appears that they don't need to look much farther than their own parking lot for a great one, according to FASTSIGNS International, Inc., a worldwide sign and graphic franchisor.
Harley Extends A Helping Hand
To commemorate Harley-Davidson's 25th anniversary as a national sponsor for the Muscular Dystrophy Association, Chicago-area dealerships will be selling special Harley and MDA wristbands to benefit the MDA.
Stellar Award Winner Tonex Visits Jersey City NJ
2004 Grammy Nominee and the winner of (6) 2004 Stellar Awards including Artist of the Year and Song of the Year, Tonex, (pronounced, toe-nay) the Pastor of the Truth Apostolic Community Church in Spring Valley, California and musical prodigy that has mesmerized audiences in Korea, Amsterdam, London, Germany and Canada will be captivating Pastor Kevin Knight and the Heavenly Temple Church of God in Christ, 15 Martin Luther King Boulevard in Jersey City, NJ, on Tuesday, July 19, 2005 at 8:00 p.m.
Put new meaning in "dinner out"
Warm summer evenings are meant for barbecues with close friends and family outside on the deck. But before you fire up the grill, make sure your porch or deck is ready for summer entertaining with a few quick tips from the professionals.
Everyone's Favorite Holiday
Perhaps a lesser known holiday - although widely celebrated - National Ice Cream Day is July 17. Thanks to President Ronald Reagan, ice cream got its very own month in 1984 and National Ice Cream Day was declared as the third Sunday of July.
Hurricane Season started June 1. Are you Ready?
Without question, last year was one the of the most active hurricane seasons of record, and while it's hard to face, the 2005 season officially started in the Atlantic Ocean on June 1.
DAngelo hits a homerun with new sandwich
If there are two things New England loves, it's D'Angelo sandwiches and the World Champion Boston Red Sox.
Cooling Down from the Summer Heat

Jack Grill & BBG Grand Opening and Community Block Party July 9, 2005
Jack's Grill and Barbecue, located at 587 South Orange Avenue in Newark's West Ward is having its Grand Opening Saturday July 9th, at noon, continuing with their 3rd Annual, 5-hour, "Give Back to the Community" Block Party, which ends at 7p.m.
Beware of the Rusty Trucks
Buying a new home can be a scary and sometimes intimidating event -- from choosing a home and school district to finding professionals to help you find the right home, you could have second thoughts all along the way.
Even Stars Need A Handyman
Mr. Handyman has recently been invited by ESPN to contribute to the 2005 ESPY gift bags for the presenters and nominees of the prestigious sporting awards.
Even Stars Need A Handyman
Mr. Handyman has recently been invited by ESPN to contribute to the 2005 ESPY gift bags for the presenters and nominees of the prestigious sporting awards.
Brooke Corporation to Host National Franchise Convention in New Orleans
Robert D. Orr, Chairman and CEO, announced that Brooke Corporation (Nasdaq:BXXX) will host its 2005 Annual Franchise Convention at The Fairmont New Orleans in New Orleans, Louisiana, October 16th -19th. Orr noted, "The theme of this year's convention is 'Marketing Wins' which reflects our emphasis on making Brooke franchisees more successful." Johnny Bench, legendary Hall of Fame baseball catcher, is among the scheduled speakers.
Peace of Mind: Six Home Electrical Safety Tips to Prepare for Vacation
Let's face it: we work hard and vacations are a precious commodity--a time of rest and relaxation. The last thing you should think about while on vacation is whether your home is safe.
Jameson Stock Awards Registration Statement Declared Effective By SEC
Jameson Inns, Inc. (Nasdaq:JAMS) today announced the company's frequent stay program, Jameson Stock Awards, will be launched on July 1, 2005.
KidzArt gets high marks and stamp of approval
KidzArt's report card looks good - very good, according to FranSurvey, an independent auditor of franchise opportunities and certified by the Franchise Research Institute.
National Companies raises over $40,000 for Great Lakes Burn Camp
More children are headed off to a special kind of summer camp this July thanks to National Companies, Inc.
Fact vs. Fiction: Dispelling the top five myths of hiring an interior decorator
Decorating your home can be daunting - whether tackling a whole new project, or simply trying to breathe new life into a tired space. The sheer number and variety of choices to make can be downright intimidating. That's when it makes sense to get some professional guidance.
IDE, DRIVE, AND EVEN BIKE TO FAIR SAINT LOUIS 25TH ANNIVERSARY
Take the train, ride your bike, drive your car, or take the bus to enjoy Fair Saint Louis and commemorate its "25 Years of Celebrating Community." Team up with and take advantage of this year's Parking Partners in supporting the free fireworks, concerts, and air shows that Fairgoers love and enjoy each year.
On the Hunt for a Home Inspector
The rapid rise in housing prices and the popularity of interest-only loans has fueled talk of a housing bubble.
COMMUNITY SUPPORT MAKES FAIR SAINT LOUIS POSSIBLE
This year, Fair Saint Louis is offering several unique ways for Fairgoers to enjoy the festivities and give a little back at the same time. At various levels of donation to the Fair, individuals can receive an entertainment and limo package, VIP concert seating, or a wristband good for downtown discounts.
Wage war against fleas, ticks!
The annual battle between fleas and ticks and your pet has begun. If you're taking sides, then bet on the fleas unless your dog has the right ammunition to win the war.
Macayos Event Donates $5,000 to Home Base
Macayo's Mexican Kitchen donated $5,000 to Home Base Youth Services raised with entrance fees from a Cinco de Mayo Event.
Kean Universitys GEAR UP Closing Ceremony
Kean University's Gaining Early Awareness and Readiness for Undergraduate Programs (GEAR UP), will be celebrating its Annual Closing Ceremony on Friday, June 17, 2005 at The Forge in Woodbridge, 6:00 p.m. to 9:00 p.m.
Nationwide Floor & Window Coverings teams up to help Real Estate agents grow
Nationwide Floor & Window Coverings has recently developed national partnerships with real estate agencies including Prudential, Realty Executives and Help You Sell because the services Nationwide Floor & Window Coverings offer "are a natural fit for the real estate community," according to John Shinkle, national account manager for Nationwide Floor & Window Coverings.
One hundred million people can't be wrong
Over 100 million people in the U.S. play in some kind of organized sport according to the National Sporting Goods Association, and many of them are enrolling in amateur sports teams and leagues that are popping up around the country.

clients with their monthly budget. Caution should be taken as rates with this product are not protected from going up.
Though caution should be taken if the borrow is stretched and could not afford a rate rise for example a first time buyer if they decided to move they may find the early repayment charges high and they may be tied into a deal with an uncompetitive interest rate for some time. There can also be a high jump in monthly payments when the discount period ends and reverts to the lender's higher standard variable rate.

Article Directory: http://www.articlecube.com

www.guitarscale.co.uk/ www.musicinstrument.biz/ www.mortgagehome.co.uk/ and www.mortgagebestrate.co.uk/ www.effectivebusiness.info/


We strive to provide only quality articles, so if there is a specific topic related to back that you would like us to cover, please contact us at any time.

And again, thank you to those contributing daily to our exercise for bad weak backs website.

Presenting for Presenters
<p style="padding-left:3em;"><em>If you are speaking at RubyConf this year, we have a special opportunity for you.</em></p> <h2>Are You Speaking at RubyConf 2008?</h2> <p>If so, congratuations! And have we got a deal for you &#8230;</p> <p>Wednesday evening, Nov 5, at 6:00 pm, (that&#8217;s the night before the conference) we are inviting all speakers to a special training session. I&#8217;m going to be sharing some ideas for putting together and delivering a good presentation.</p> <p>After my talk, Patrick Ewing and Adam Keys are geared up to do some Powerpoint Karaoke with everyone there. I&#8217;m not even sure what Powerpoint Karaoke is, but it sounds like fun.</p> <p>I hope to see everyone there.</p> <h2>Update (4/Nov/08)</h2> <p>I&#8217;ve talked to Adam today. He says that Patrick isn&#8217;t going to able to make RubyConf this year, but we will be ready to roll with Powerpoint Karaoke anyways.</p> <h2>Update (5/Nov/08)</h2> <p>It looks like the speakers training will be in the Olympic Room tonight. The Olympic Room is on the same floor as the registration desk. Go to the left past the elevators and turn right down that hall (or ask someone who looks like they know what they are doing).</p>
Articles are Back!
<p style="padding-left:3em;"><em>I&#8217;ve received a lot of requests for my old articles &#8230;</em></p> <h2>The Article Section has been Restored</h2> <p>When I changed to my new hosting machine, I moved all my blog posts but didn&#8217;t move any of the articles. Of course I <em>intended</em> to move them eventually but never got around to it.</p> <p>A lot of people have been asking for this article or that presentation, or pointing out that a number of old bookmarked links are no longer any good. So due to popular demand the <b>Articles and Presentations</b> section of onestepback.org is now restored.</p> <p>Enjoy</p>
Comments Are Now Enabled
<p style="padding-left:3em;"><em>I&#8217;ve gone without comments on this blog for a long time &#8230;</em></p> <h2>Comments via Disqus</h2> <p>I&#8217;ve gone through several commenting systems for this blog over time. First was the really cool <a href="http://onestepback.org/index.cgi/Tech/Web/MoreWebApps.rdoc">TagSurf</a> application that allowed commenting on about any web page on the internet arbitrary tags. Unfortunately, TagSurf died a (in the words of its creator) &#8220;well deserved&#8221; death.</p> <p>Then I tried a wiki for comments. That worked pretty good (aside from spam issues), but setting up a new page for comments for each new post was just too much hassle.</p> <p>Now I&#8217;m trying <a href="http://disqus.com/docs/about/">Disqus</a> for comments. It only took an hour or so to integrate Disqus with my ancient blogging engine (anyone else still using Rublog?).</p> <p>Kick the tires and see how it works. If you have feedback &#8230; well, just leave a comment.</p> <p>I guess this means I&#8217;ll have to start writing some <em>real</em> content here so there will be something worth commenting on &#8230; let&#8217;s see if there is anything I feel like ranting about &#8230;</p> <p>(Oh, and a hat tip to <a href="http://brionesandco.com/ryanbriones/">Ryan Briones</a> for pointing out Disqus when I was ready to go out and implement something from scratch.)</p>
RedMine For Rake
<p style="padding-left:3em;"><em>The is now a RedMine setup for Rake, FlexMock and Builder.</em></p> <h2>RedMine</h2> <p>As part of an effort to get better control of changes to the my open source projects, I&#8217;ve setup a RedMine issue tracking site for Rake, FlexMock and Builder. You can find it at <a href="http://onestepback.org/redmine">http://onestepback.org/redmine</a>.</p>
Moving Blog Host
<p style="padding-left:3em;"><em>I am changing host for the One Step Back blog.</em></p> <h2>It&#8217;s Time to Move</h2> <p>This is just a quick little post to let you know that the One Step Back blog is moving. In fact, it has already moved. But don&#8217;t worry, we aren&#8217;t going far.</p> <p>Originally this blog was hosted on a shared co-op system run by <a href="http://www.n2net.net/">N2Net</a>. It was dirt cheap and easy to maintain. The down side was that support was sporadic. As the hardware has aged, the Co-op has decided to let the current system run until the hardware dies, and then disolve the co-op.</p> <p>Today there are tons more hosting opportunities available than there were when the co-op was first formed. I&#8217;m now leasing a Linode <a href="http://www.linode.com/">node</a> and running the blog and other associated software from there. Its almost as inexpensive and the co-op and uptime <em>should</em> be better.</p> <p>Write now the blog has been moved. As time passes I&#8217;ll move the article archive as well. Let me know if anything looks amiss.</p> <p>&#8212;Jim Weirich</p>
How did you get started in software development.
<h2>Tagged</h2> <p>Looks like <a href="http://objo.com/2008/6/7/how-did-you-get-started-in-programming">Joe O&#8217;Brien</a> tagged me for answers to the following questions. He, in turn, was tagged by <a href="http://joshholmes.com/">Josh Owens</a>, who in turn was tagged by <a href="http://www.jeffblankenburg.com/index.html">Jeff Blankenburg</a>. It looks like <a href="http://www.codinggeekette.com">Sarah Dutkiewicz</a> and <a href="http://michaeleatonconsulting.com/blog/archive/2008/06/04/how-did-you-get-started-in-software-development.aspx">Micheal Eaton</a> started this.</p> <p>OK, sounds like fun. Here goes.</p> <h2>How old were you when you started programming?</h2> <p>I was introduced to programming in high school by reading a book on the topic. The book taught me how to write machine code for a strange decimal-based machine. Unfortunately, there was no actual computer involved in the process. Shoot, who had computers back then? Certainly not our high school (the personal computers? not invented yet!)</p> <p>In college, I learned a smattering of <span class="caps">FORTRAN</span>. Just enough to drive a Calcomp plotter to plot data from my undergraduate physics courses. But didn&#8217;t really get into programming until my junior year in college. (Story continued in next question)</p> <h2>How did you get started in programming?</h2> <p>So, I was planning out the courses for my junior year in college and I had a hole in my math courses. The math class I needed was not offered that semester, so my adviser suggested taking a computer programming course. He said it would be useful and, who knows, I might enjoy it.</p> <p>So I signed up for an introduction to <span class="caps">FORTRAN</span> course, figuring it would be easy because I already knew a little bit of <span class="caps">FORTRAN</span>. I show up on the first day of class and after a few preliminaries the instructor jumps right into some code, that looked like this:</p> <pre> (de member (pip deck) (cond ((null deck) nil) ((eq pip (car deck)) t) (t (member pip (cdr deck))))) </pre> <p>I remember scratching my head and thinking this was the strangest <span class="caps">FORTRAN I</span> had ever seen. I was totally confused for about three days, then something clicked on the third day of class. I suddenly &#8220;<em>got</em>&#8221; what the instructor was trying to get across and it all made perfect sense.</p> <p>If you haven&#8217;t figured it out yet, the instructor taught us Lisp as part of an introduction to <span class="caps">FORTRAN</span>. The instructor turned out to be Daniel Friedman, the author of <a href="http://www.amazon.com/Little-LISPer-Third-Daniel-Friedman/dp/0023397632"><em>The Little Lisper</em></a>, and was well known in the Lisp community. That small exposure to Lisp hooked me on programming from that point on. I took as many CompSci courses as I could in my remaining year and a half in college. I eventually graudated with a BS in Physics, but had a strong background in Computer Science as well.</p> <h2>What was your first language?</h2> <p>Technically, <span class="caps">FORTRAN</span> was my first language. But Lisp is the language I fell in love with and is what got me hooked on programming.</p> <h2>What was the first real program you wrote?</h2> <p>I have a very clear memory of the very first program I wrote professionally. The reason it is so clear is that this was the first program I wrote that was intended for actual use by someone who wanted it. Everything else up to that time was done for my own personal enjoyment or to satisfy some course requirement.</p> <p>The program calculated the &#8220;critical angles&#8221; of &#8220;pieces&#8221;. I was given the requirements by Anne Exline, a senior programmer, and proceeded to write the program to spec. It took a few days, but when I was done I showed the result to Anne and she was pleased with the result.</p> <p>The funny thing is that I had no idea what a &#8220;piece&#8221; was nor what was so critical about the angles I was calculating. I was so excited about writing an actual program that I did not ask until the software was done. When asked, Anne just looked at me funny and said &#8220;Rocket Pieces&#8221;. When Cape Canaveral lauches a rocket, they track it very carefully to make sure it stays on course. If it strays, the range safety officer is required to activate the self destruct. The critical angles are those angles that would cause the &#8220;rocket pieces&#8221; to land outside the safety area of the flight path.</p> <p>So, my very first professional program was not only useful, it might actually save lives.</p> <h2>What languages have you used since you started programming?</h2> <p>Languages I have used as part of my professional career (in roughly chronological order) include <span class="caps">FORTRAN</span>, various assembly languages, <span class="caps">FORTH</span>, C, PL/M, C++, Java, Ruby.</p> <p>Languages I have used in addition to those mentioned above: Pascal, Perl, Eiffel, and Lisp/Scheme.</p> <p>Languages I can read, but never wrote anything significant in them: Ada, Python, Erlang, Smalltalk, <span class="caps">SNOBOL</span>, Algol, Pascal.</p> <h2>What was your first professional programming gig?</h2> <p>I was hired by the <span class="caps">RCA</span> Missile Test project in Cape Canaveral, Florida as a Near Real Time Analyst. Duties included programming various launch related software (e.g. the critical angle program mentioned above) and working launch support.</p> <p>The launch support was the &#8220;Near Real Time&#8221; part of the job description. From the moment a rocket is launched until it reaches orbital velocity, any malfunction could cause it to fall back to earth. During this initial portion of the launch, the launch is monitored in &#8220;real-time&#8221; so that we know exactly where it would land if the engines were to cut off <span class="caps">NOW</span>. Trajectory calculations had to be done in fractions of a second and updated constantly in real time.</p> <p>After the rocket reaches oribital velocity (usually somewhere between 8 and 14 minutes into its flight), it won&#8217;t fall back to earth. At this point the real time trajectory program is shut down and the near real time program is started. The near real time program can take a few minutes to calculate a more exact orbital prediction and then send that prediction to downrange radars (e.g. the the <a href="http://en.wikipedia.org/wiki/Ascension_Island">Ascension Island</a> station) that won&#8217;t see the rocket until about 20 minutes after launch. It was the job of the Near Real Time analyst to run that program and provide oribital predictions for downrange station.</p> <h2>If there is one thing you learned along the way that you would tell new developers, what would it be?</h2> <p>Find something that you enjoy and do that. Life is too short to work in a job that you dislike.</p> <h2>What?s the most fun you?ve ever had ? programming?</h2> <p>Oh, the fun I have had. This story still makes me smile.</p> <p>My first computer was a single board <span class="caps">Z80</span> microcomputer with 4 KB of memory. I wrote a small <span class="caps">FORTH</span>-like interpreter for it and hacked a version of the animal game in <span class="caps">FORTH</span>. The animal game is a program that plays 20 questions to figure out what animal you are thinking of. It constructs a binary tree where each node is a question and the subtrees are the yes and no answers to the question. To play the game, all the program does is walk the tree, ask the question at the current node and follow either the <span class="caps">YES</span> branch or the NO branch as appropriate.</p> <p>If the program guesses wrong, it will ask you for your animal and a question that will distinguish your animal from the one it guessed. It then adds your question to the tree. By this extremely simple mechanism, it is able to expand its knowledge base. (see <a href="http://www.rubyquiz.com/quiz15.html">Ruby Quiz #15</a> for more details).</p> <p>I had just finished the program and had seeded it with a single animal, a mouse. I turned to my wife and asked her to play the game. She thinks of an animal and starts the program, which immediately asked her &#8220;Is it a mouse?&#8221;. She turned to me with surprise and said &#8220;How did it know?&#8221;. Of course, the animal she picked was a mouse.</p> <p>I don&#8217;t think I have ever impressed anyone with my programming skills as much as she was impressed with that game.</p> <h2>Who&#8217;s up next?</h2> <p>I&#8217;m tagging the following people. Remember, this is entirely voluntary so don&#8217;t feel obligated to answer. But I&#8217;m betting the answers are interesting:</p> <ul> <li><a href="http://mysterycoder.blogspot.com/">Chris Nelson</a></li> <li><a href="http://clarkware.com/cgi/blosxom">Mike Clark</a></li> <li><a href="http://gilesbowkett.blogspot.com/">Giles Bowkett</a></li> <li><a href="http://railsstudio.com/">Mark Windholtz</a></li> <li><a href="http://www.vanderburg.org/Blog">Glenn Vanderburg</a></li> </ul>
Rails Conf 2008 Summary
<h2>Conference Summary Video</h2> <p>Wow, what a great conference! There was a lot of energy flowing at RailsConf this year. Overall I&#8217;d rate this year as head and shoulders above last year. I&#8217;m not going cover much here, but will direct you attention to a <a href="http://www.railsenvy.com/2008/6/2/Railsconf-videos">Rails Envy VideoCase</a> that Greg Pollack put together. The video is a series of very short interviews with a number of presenters giving summaries of their own talks. The only downside with the video is that I wish it was available <em>before</em> the conference. I see there were a number of interesting talks that I missed.</p> <h2>Followup on the &#8220;Modelling Dialogue&#8221;</h2> <p>Joe O&#8217;Brien, Chris Nelson and myself did a dialogue style presentation on the difference between object modelling and data modelling. The most common question I got after the talk was requests for book titles to learn more about object oriented modelling. Here are the books that Joe, Chris and I have recommended:</p> <ul> <li><em><a href="http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215/ref=pd_bbs_sr_1?ie=UTF8&#38;s=books&#38;qid=1212463473&#38;sr=1-1">Domain Driven Design</a></em>&#8212;Eric Evans</li> <li><em><a href="http://www.amazon.com/Software-Development-Principles-Patterns-Practices/dp/0135974445/ref=sr_1_1?ie=UTF8&#38;s=books&#38;qid=1212502027&#38;sr=1-1">AgileSoftware Development, Principles, Patterns, and Practices</a></em>&#8212;Bob Martin</li> <li><em><a href="http://www.amazon.com/Refactoring-Improving-Existing-Addison-Wesley-Technology/dp/0201485672/ref=pd_bbs_sr_1?ie=UTF8&#38;s=books&#38;qid=1212465268&#38;sr=1-1">Refactoring: Improving the Design of Existing Code</a></em>&#8212;Martin Fowler</li> </ul>
Artichoke Music Rocks
<p style="float: right; padding: 0.5em;"><a href="http://www.artichokemusic.com/index2.htm"><img border="0" src="http://www.artichokemusic.com/LogocommUnity-sm.jpg"/></a></p> <p>The Musician&#8217;s Birds of a Feather gathering at RailsConf was great. We had a room full people, two guitars, a ukulele, a flute, several harmonicas and an improvised drum set. Unfortunately, one of the guitars was an electric travel guitar which had a dead battery, therefore no way to really hear it.</p> <p>However, the other guitar was a nice Epiphone accoustic which was passed from player to player. It became the quickly became the basis for most of the music performed that night.</p> <p>I want to thank <a href="http://www.artichokemusic.com/index2.htm">Artichoke Community Music</a> for supplying the guitar. Travelling with a guitar by plane is a big pain, so I arrived with nothing to bring to the music <span class="caps">BOF</span>. I called several local music stores looking for a guitar that I could rent for an evening. Artichoke music said they had a &#8220;not-for-profit&#8221; guitar that they would let me borrow for a day. Not many stores would do that for an out-of-town stranger.</p> <p>So, if you&#8217;re in Portland looking for a good guitar store, check out the great people at <a href="http://www.artichokemusic.com/index2.htm">Artichoke Community Music</a>.</p>
Test Driven Studio in June 2008
<p><em>Joe O&#8217;Brien and I will be leading another Test Driven Studio in Denver, June 9-11.</em></p> <p style="float: right; padding: 0.5em;"><a href="http://pragmaticstudio.com/images/studio/tdd-with-rails-icon.jpg"><img border="0" src="http://onestepback.org/images/pragstudio/studio-medium.gif"/></a></p> <h2>Testing, Colorado, June &#8230; What&#8217;s not to like?</h2> <p>About 8 years ago I come upon a technique that radically changed the way I developed code. I was reading Martin Fowler&#8217;s &#8220;Refactoring&#8221; book and came across this paragraph:</p> <p style="padding-left:3em;"><em>&#8220;Whenever I do refactoring, the first step is always the same. I need to build a solid set of tests for that section of code. The test are essential because even though I follow refactorings structured to avoid most of the opportunities for introducing bugs, I&#8217;m still human and still make mistakes. Thus I need solid tests.&#8221; </em>&#8212;Martin Fowler</p> <p>Chapter 4 of &#8220;Refactoring&#8221; was my first introduction to JUnit and got me interested in &#8220;Test First Design&#8221; (what we now tend to call &#8220;Test Driven Development&#8221;). Although I wrote <em>good</em> code before, the confidence I had in my code took a dramatic leap forward after I started adopting <span class="caps">TDD</span> practices.</p> <p>On June 9 through 11, <a href="http://objo.com">Joe O&#8217;Brien</a> and I will have the pleasure of leading the next Pragmatic Programmer&#8217;s <a href="http://pragmaticstudio.com/testing-rails">Test-Driven Development with Rails Studio.</a> in Denver. We will have an opportunity to share with you some of our experiences in using <span class="caps">TDD</span> with Ruby and Rails.</p> <p>There are still seats available, so its not too late to sign up. More information is available <a href="http://pragmaticstudio.com/testing-rails">here</a>.</p>
Lisp in Ruby
<p style="padding-left:3em;"><em>I stumbled across <a href="http://bc.tech.coop/blog/080101.html">this</a> and it got me thinking &#8230;</em></p> <h3>Update</h3> <p style="padding-left:3em;"><em>I&#8217;ve updated the Textile formatter on the site and the code for this entry is now displaying correctly. The previous version was swalling the == operators in the code.</em></p> <h2>Lisp 1.5 Programmer&#8217;s Manual</h2> <p>I stumbled across <a href="http://bc.tech.coop/blog/080101.html">this</a> in Bill Clementson&#8217;s blog and remembered using the Lisp 1.5 Prgrammers manual from the college years. I have strong memories of pouring over that particular page in the manual and attempting to understand all the nuances.</p> <p>If you&#8217;ve never read the Lisp 1.5 Programamers Manual, page 13 is the guts of a Lisp Interpreter, the &#8220;eval&#8221; and &#8220;apply&#8221; functions. It is written in Lisp, although the notation used is a bit funky. The entire interpreter (minus two utility functions) is presented on a single page of the book. Talk about a concise language definition!</p> <h2>In Ruby?</h2> <p>I had often thought about implementing a Lisp interpreter, but back in the &#8220;old days&#8221;, the thought of implementing garbage collection and the whole runtime thing was a bit daunting. This was in the day before C, so my implementation language would have been assembler &#8230; yech.</p> <p>But as I was reviewing the page, I realized that with today&#8217;s modern languages, I could problably just convert the funky M-Expressions used on page 13 directly into code. So &#8230; why not?</p> <h2>The Code</h2> <p>Here is the complete Ruby source code for the Lisp interpreter from page 13 of the Lisp Programmers manual:</p> <pre> # Kernel Extensions to support Lisp class Object def lisp_string to_s end end class NilClass def lisp_string "nil" end end class Array # Convert an Array into an S-expression (i.e. linked list). # Subarrays are converted as well. def sexp result = nil reverse.each do |item| item = item.sexp if item.respond_to?(:sexp) result = cons(item, result) end result end end # The Basic Lisp Cons cell data structures. Cons cells consist of a # head and a tail. class Cons attr_reader :head, :tail def initialize(head, tail) @head, @tail = head, tail end def ==(other) return false unless other.class == Cons return true if self.object_id == other.object_id return car(self) == car(other) &#38;&#38; cdr(self) == cdr(other) end # Convert the lisp expression to a string. def lisp_string e = self result = "(" while e if e.class != Cons result &lt;&lt; ". " &lt;&lt; e.lisp_string e = nil else result &lt;&lt; car(e).lisp_string e = cdr(e) result &lt;&lt; " " if e end end result &lt;&lt; ")" result end end # Lisp Primitive Functions. # It is an atom if it is not a cons cell. def atom?(a) a.class != Cons end # Get the head of a list. def car(e) e.head end # Get the tail of a list. def cdr(e) e.tail end # Construct a new list from a head and a tail. def cons(h,t) Cons.new(h,t) end # Here is the guts of the Lisp interpreter. Apply and eval work # together to interpret the S-expression. These definitions are taken # directly from page 13 of the Lisp 1.5 Programmer's Manual. def apply(fn, x, a) if atom?(fn) case fn when :car then caar(x) when :cdr then cdar(x) when :cons then cons(car(x), cadr(x)) when :atom then atom?(car(x)) when :eq then car(x) == cadr(x) else apply(eval(fn,a), x, a) end elsif car(fn) == :lambda eval(caddr(fn), pairlis(cadr(fn), x, a)) elsif car(fn) == :label apply(caddr(fn), x, cons(cons(cadr(fn), caddr(fn)), a)) end end def eval(e,a) if atom?(e) cdr(assoc(e,a)) elsif atom?(car(e)) if car(e) == :quote cadr(e) elsif car(e) == :cond evcon(cdr(e),a) else apply(car(e), evlis(cdr(e), a), a) end else apply(car(e), evlis(cdr(e), a), a) end end # And now some utility functions used by apply and eval. These are # also given in the Lisp 1.5 Programmer's Manual. def evcon(c,a) if eval(caar(c), a) eval(cadar(c), a) else evcon(cdr(c), a) end end def evlis(m, a) if m.nil? nil else cons(eval(car(m),a), evlis(cdr(m), a)) end end def assoc(a, e) if e.nil? fail "#{a.inspect} not bound" elsif a == caar(e) car(e) else assoc(a, cdr(e)) end end def pairlis(vars, vals, a) while vars &#38;&#38; vals a = cons(cons(car(vars), car(vals)), a) vars = cdr(vars) vals = cdr(vals) end a end # Handy lisp utility functions built on car and cdr. def caar(e) car(car(e)) end def cadr(e) car(cdr(e)) end def caddr(e) car(cdr(cdr(e))) end def cdar(e) cdr(car(e)) end def cadar(e) car(cdr(car(e))) end </pre> <h2>An Example</h2> <p>And to prove it, here&#8217;s an example program using Lisp. I didn&#8217;t bother to write a Lisp parser, so I need to express the lists in standard Ruby Array notation (which is converted to a linked list via the &#8220;sexp&#8221; method).</p> <p>Here&#8217;s the ruby program using the lisp interpreter. The Lisp system is very primitive. The only way to define the function needed is to put them in the environment structure, which is simply an association list of keys and values.</p> <pre> require 'lisp' # Create an environment where the reverse, rev_shift and null # functions are bound to an appropriate identifier. env = [ cons(:rev_shift, [:lambda, [:list, :result], [:cond, [[:null, :list], :result], [:t, [:rev_shift, [:cdr, :list], [:cons, [:car, :list], :result]]]]].sexp), cons(:reverse, [:lambda, [:list], [:rev_shift, :list, nil]].sexp), cons(:null, [:lambda, [:e], [:eq, :e, nil]].sexp), cons(:t, true), cons(nil, nil) ].sexp # Evaluate an S-Expression and print the result exp = [:reverse, [:quote, [:a, :b, :c, :d, :e]]].sexp puts "EVAL: #{exp.lisp_string}" puts " =&gt; #{eval(exp,env).lisp_string}" </pre> <p>The program will print:</p> <pre><code>$ ruby reverse.rb EVAL: (reverse (quote (a b c d e))) =&gt; (e d c b a)</code></pre> <p>All I need to do is write a Lisp parser and a <span class="caps">REPL</span>, and I&#8217;m in business!</p> <h2>The Example in Standard Lisp Notation</h2> <p>If you found the Ruby-ized Lisp code hard to read, here is the reverse funtions written in a more Lisp-like manner.</p> <pre> (defun reverse (list) (rev-shift list nil)) (defun rev-shift (list result) (cond ((null list) result) (t (rev-shift (cdr list) (cons (car list) result))) )) </pre>


Additional Related Resources      
Don't Sweat The Small Stuff
By Marilyn Bohn
I was reading in the book "Don't Sweat The Small Stuff…and it's all small stuff" by Richard Carlson, PH.D. I have read the book before but not everything always sticks so I like Read more...
Forex System Traps - What To Look For
By Jon Provencher
There are a number of things you should think about when performing a forex system comparison. There are a lot of forex system providers out there, this top 10 list will help Read more...
The Ebook Production Myths
By Ron Barrett
As the market for ebooks has grown over the past few years, there have been several major myths developed that could hinder your enthusiasm for creating that book idea you have. Read more...
Take Control Of Your Future And Start Your Own Business!
By unsecuredloan
New businesses are the backbone of the American economy. They provide new innovations, new jobs, and fresh concepts to the business industry. And owning a business is the dream Read more...
© 2008 Back. All rights reserved. exercise for bad weak backs
 
Google
 
     

exercise for bad weak backs

Information
Autoversicherung: When Is It Better To Pay Your Own Accident Costs?
By M Lauterwein
A traffic accident is always unexpected and always leaves those involved with insufficient time to react. In Germany whoever is responsible for causing the accident should Read more...