May Check-In
May was a good month. I biked on 25 days and drove on 16. Four of the driving days included a trip to Nashville, which was fun. I did the Tour de Nash, which was my introduction to
NashVegasNashville. Also had my longest ride, when I did 40 miles on Bike the Drive, including the ride to the drive. I biked 312 miles for the month, which made it a very good month. As for driving, my odometer reads 37599, which means I drove my car for 621 miles in the month. But I took my Mom’s car to Nashville, so I have to add the 1068 miles for that trip. So my total in the car was 1689. That’s quite a lot, but it was worth it for the trip.RedHat Improvements
One of the students asked me about installing python2.7 on a redhat 6 system. Since I know the operating system depends on a particular version of python, I was immediately thinking about just upgrading the system to RHEL7, which would have the version of python required. But, happily, I’ve found that RedHat has provided a way to upgrade important systems. It has created a new channel called “RedHat Software Collections”. The beauty of these is that you can still use the regular package manager and that they won’t overwrite or conflict with system files. You need to enable the channel and install “scl-utils and scl-utils-build”. Then, the command to switch/see collections is scl. As an example,
April in Review
Since the weather today is very rainy, I know I’m not going anywhere. Figured I’d take a look at April.
First Long Ride
The weather today is BEAUTIFUL! After going through the lousy weather of late, a day like today is glorious. I couldn’t wait to get outside and go for a bike ride. My plan was to ride up to Barnes and Noble to get some books for a project. The store was is just over six miles from my house and I left about an hour before it opened, figuring I’d ride around. I was enjoying the ride so much that I just decided to head up to the north side. I texted my cousin Janet and ended up riding to her house in Logan Square. I hung out with her a for a while and then head over to the bookstore. At about the 19 mile mark, I stopped at a grocery store and got some milk and donuts, which I took to Ping Tom Park (my favorite park in the city) and had a little picnic. Then, I rode home. Total ride time: 2 hours and 18 minutes. Total distance: 23.22 miles. Me: totally happy.
Citizen by Louise W. Knight
I just finished the book Citizen by Louise W. Knight. The subtitle is “Jane Addams and the Struggle for Democracy”. It’s basically a biography of Jane Addams. Honestly, I didn’t really know much about her, except that she founded Hull House and that there’s a grade school near where I grew up that was named after her. I knew Hull House was a settlement house, but didn’t really know what a settlement house was. The book was good in that it detailed the start of the settlement house and her life up to around 1899. The weird part was that Jane Addams died in 1935 or so. The years from the end of the book until she died were where she had become quite well-known and influential. I thought it weird that the author would end in the middle of her life. But I think she was trying to show how she went from wealthy little girl to one of the best-known social crusaders. I’ll have to find another biography about her to get the rest of the story.
My First Attempt
I’ve wanted to volunteer somewhere for a while and decided to give Working Bikes a try. One of their volunteer nights is Tuesday night, and I’m trying to go there every Tuesday. Tonight was my third time. It starts at 5 and I got there at maybe 5:15 or so and was basically the only volunteer for a while. This was great because Andrew (the guy in charge) asked me if I could try working on a bike solo. I think he had some things he wanted to do, so working with me was low on his list. Thus, after giving me a quick refresher on how to put the bike in the stand, I got to work by myself.
March Roundup
Pretty uneventful March. I didn’t spend a lot of money, which is good. So I had plenty to save after I paid my bills. The odometer on my car read 36,722 which means I drove 1150 miles in the month. That’s a lot more than I should have. And in looking at my calendar, I know that I drove my car far too much and biked much too little.
Reading Again
Work was fast becoming overwhelming of late, so I have taken to quitting email when I leave work and not checking it again until I get back to the office to keep my sanity. And I’ve been trying to close my laptop up more and stay offline. For a short time, I feared I was addicted to the internet, but I’m pretty sure I’m not. I just like to read and I was reading a lot of stuff online. These days, I’ve started up my weekly (or every other weekly) visit to my local library. I’ve read a number of books and it makes me happy. Now that I’ve fully accepted that I should wear reading glasses, I’m happy again reading books.
The Big Short
I had been wanting to see “The Big Short” for a while. Today, I found that it was still at a theater downtown, so I biked over to see it. Like most people, I pretty much knew the story. I’ve read a bunch of Michael Lewis books, though I can’t remember if I actually read “The Big Short” or just lived through it. Anyway, I thought it would be good and it was. How I judge if a movie is good or not is based on how much I’m thinking about the movie after it’s over. And, let me tell you, all I’ve been thinking about is this movie and I’m completely depressed.
February Check-In
I’m going to say that February was the worst month that I’ve had in a very long time. The main thing that happened is one of my favorite people in the entire world passed away. Short of something happening to my Mom, nothing could hurt as much. Along with my parents, for my entire life, my Aunt Lu was around. I will think of her on every Fourth of July (her favorite holiday) and Christmas Eve because we always went to her house. I often said she was hilariously funny, often unintentionally so. I loved going to visit her to hear about family members I never knew and what her life was like growing up. Since we knew she was sick, my siblings and I all made sure to visit her as often as we could during the month. She always loved to see us and I felt lucky to be there. If I could make people feel a quarter as good around me, as I felt around her, I’d be pretty happy. One of the last things she gave me was the dollhouse that someone made for her when she was a little girl. It has needed some work for a while and she gave it to me to fix it up. But only if I have fun doing it. If it’s not fun, I shouldn’t do it. I hope that I can get it into decent enough shape that I can donate it someplace where kids can play with it. I know she’d be happy if kids were playing with it.
10 years ago
February 25, 2016 was the 10th anniversary of my blog. Technically, it’s the 10th anniversary of my using wordpress on the blog. I believe I registered coldandheartless in 2000, when my nephew was born, though I’m not entirely sure. But since I have pictures from when he was born posted, I’m pretty sure. And I have some pictures in directories named 2003. Yay for me in naming the directories correctly. So I know I had the website before 2006. But moving to wordpress looks to have happened in 2006. So let’s celebrate that.
Producing a Lot of Crap
I was reading some notes a person took on a book and found something that I really like a lot. In the book “The Geography of Bliss” (which I haven’t yet read, but now have a hold on at my library), the author writes that in Iceland, they produce a lot of crap. I guess the idea is that lots of people there produce art. So, of course, with so much art being produced, a lot of it is junk. But instead of thinking that’s a bad thing, it turns out that all the crap produced encourages even more people to produce art. So basically, all the bad art is working as fertilizer to help make more art. And every so often, something great is produced. I think that’s great! My immediate reaction is that I should start producing more and just accept that most of it will be bad. But, hopefully, it will work as fertilizer for me as well and maybe I’ll make something great.
Uploading a File in a Rails Site to Use to Update
I want to upload a file to my rails webpage, but not store it in the database. I just want to upload it and then get the data out of it and update the database with the information in the uploaded file.
Using Ruby on XML Files
I need to copy some data from one system to another. On the first system, I can download an xml file. The second system is a ruby on rails website. So I’d like to them upload the xml file to the site and have it enter in the data. But since I’m not that familiar with working with xml files, I thought I’d work on it from the command line first.
In ruby, there’s a gem called nokogiri which works with xml (or html) files. Here’s the sample xml file that I’m using:
<AbstractBook> <Conference>TEST CONFERENCE 2016</Conference> <abstract> <Id>5</Id>
Diversity, diversity <Content>This is all about diversity.</Content> <field id="content">This is all about diversity.</field> <PrimaryAuthor> <FirstName>George</FirstName> <FamilyName>Washington</FamilyName> <Email>[email protected]</Email> <Affiliation>WH</Affiliation> </PrimaryAuthor> <Speaker> <FirstName>George</FirstName> <FamilyName>Washington</FamilyName> <Email>[email protected]</Email> <Affiliation>WH</Affiliation> </Speaker> <ContributionType>Abstract</ContributionType> <Track>Diversity and Inclusion </Track> <AcceptedTrack>Diversity and Inclusion </AcceptedTrack> </abstract> <abstract> <Id>6</Id>Higgs, higgs, higgs <Content>I've got *something to say* out the **Higgs.**</Content> <field id="content">I've got *something to say* out the **Higgs.**</field> <PrimaryAuthor> <FirstName>Abe</FirstName> <FamilyName>Lincoln</FamilyName> <Email>[email protected]</Email> <Affiliation>The White House</Affiliation> </PrimaryAuthor> <Speaker> <FirstName>Abe</FirstName> <FamilyName>Lincoln</FamilyName> <Email>[email protected]</Email> <Affiliation>The White House</Affiliation> </Speaker> <ContributionType>None</ContributionType> <Track>Higgs Physics</Track> <AcceptedTrack>Higgs Physics</AcceptedTrack> </abstract> <abstract> <Id>7</Id>Oh the Lovely Higgs <Content>Some interesting info about how pretty the Higgs is.</Content> <field id="content">Some interesting info about how pretty the Higgs is.</field> <PrimaryAuthor> <FirstName>Grover</FirstName> <FamilyName>Cleveland</FamilyName> <Email>[email protected]</Email> <Affiliation>WH</Affiliation> </PrimaryAuthor> <Speaker> <FirstName>Grover</FirstName> <FamilyName>Cleveland</FamilyName> <Email>[email protected]</Email> <Affiliation>WH</Affiliation> </Speaker> <ContributionType>None</ContributionType> <Track>Higgs Physics</Track> </abstract> </AbstractBook>And here’s the script I wrote:
#!/Users/maryh/Software/rubies/2.2.3/bin/ruby require 'nokogiri' File.open("Abstracts.xml") do |file| @doc2 = Nokogiri::XML(file) elems = @doc2.xpath("//Speaker") myfirst ='Abe' mylast = 'Lincoln' elems.each do |e| if (e.at('FirstName').text == myfirst) && (e.at('FamilyName').text == mylast) puts e.parent.at('Title').text puts e.parent.at('Content').text print "#{e.at('FirstName').text} " print "#{e.at('FamilyName').text}\n" end end end
First, I open the file and open it as an xml file with nokogiri. I then put in elems all the xml fields labelled “Speaker”. I then cycle through elems looking for the string “Abe” and “Lincoln”. If I find them both, I print out the field “Title” and “Content” which are both in the parent field from “Speaker” and then I print out the first and family names.
This is very basic and there are a lot more things that I need to do. I need to match the speaker info with names stored in a model in my rails app. And then update that entry with the title and content if I find a match.
Using Ruby on CSV Files
I’m working with some different systems for a conference I’m working on. We’re using RegOnline to handle the registrations. One of the things that I need to do is get a list of people who have registered on RegOnline and post them on our conference website. Our conference site is plain html and I don’t want to have to type in each person who registers. I can download a csv file from RegOnline. I want to write a script that reads the downloaded csv file and makes an html file for the website. I hadn’t done much with csv files before, but here’s a basic script that pretty much does what I want. (I still have to put html tags in, but that should be pretty easy.)
Paperclip with Spoof File Checks
I have a rails site that accepts pdf files as uploads. Based on previous experience, I have found that trying to validate on content-type causes lots of problems. There are many browsers that send weird content types with file names. For pdf files, they should always be using ‘application/pdf’ and most browsers do. However, this morning I got email from someone who couldn’t upload his file in one browser. He told me he used a different browser and it then worked. I searched the log files and found a bunch of error messages, but the main bit was this:
January Check-In
Normally, I only review my entire year to see how I did, but I thought I’d maybe check in at the end of each month. I may not do this again until the end of the year, but I had some time so let’s take a look at how the year is going so far.
Getting Started with Ubuntu
Just about all of the linux systems that I work on are a RedHat variant (Scientific Linux or Centos). But in the past few years, more people have been using Ubuntu, so I need to become familiar with it. And yesterday, I had to set up a system to help someone troubleshoot a board that we built. So here are some things about Ubuntu that I’ve learned recently. And just about all of this stuff is done using the command line because that’s how I prefer to work.
So far, so good
We’re three days into the new year and it’s so far, so good. Tomorrow, I have to go back to work. I’m a little bummed that I can’t wear sweatpants all day anymore, but that’s ok. It’ll be good to get back in the swing of things. I’ve taken short bike rides every day so far and am up to 11 miles. So only 2242 to go to hit my goal. 🙂 I’ve cooked some good meals (homemade pizza, eggs with pepper, onion and avocado) and some ok ones (roasted vegetables with noodles). I’ve also used up my blackened bananas by making banana muffins, which turned out pretty good. I went with Paul today to his bar and helped him clean up some wood. So while I didn’t technically do a workout, I worked there for a couple of hours and got my heart rate up. My car has only been out of the garage one day. And since the weather looks pretty good, I’m hoping that the bike will get me to work for most of this week.
To 2016
Happy New Year!
2015 Year in Review
I’m trying to come up with a one-word summary for 2015 and am having some problems. All that pops into my mind is ok, which is sort of a lousy word to sum up a year. Perhaps acceptable would be better? Anyway, there’s no need to dwell on a one-word summary. Let me look at things in a bit more detail.
Declarative Authorization attribute rules
I have a website where I use declarative authorization to determine who is allowed to do what. One thing that I need to allow is for people to change their own passwords. It’s pretty simple, my model/controller is users. Here’s what I needed to do:
It’s Funny
I’m a huge fan of YouTube for learning how to do different things. I’ve been watching tons of YouTube videos for woodworking while I try to build stuff with my reclaimed wood. Last weekend, I decided got a beanbag chair that had no cover. So I decided to make a new cover for it and in the process broke something on my sewing machine. So I was looking around YouTube for some help on fixing it. In the process, I watched a bunch of videos on sewing. It was so funny to me how the genders of the people hosting the videos just changed. For woodworking, I can think of one female who made videos. Everyone else was guys. For sewing, it’s all women. This just struck me as very funny.
Early Gift to Me
Since I had been doing a bit more work in my basement, I was continually using my old workbench and it was annoying me more and more. It’s more of a cheap worktable than workbench. But the big issue is that it was just really too tall for me. It was around 36″ tall and I think that I’d prefer a workbench that was quite a bit lower. It really hit me when I was trying to use a handplane to clean up some old lathe. Along with being too tall, it was also too wobbly, which made planing impossible. So I found a design online that didn’t look too hard. I took apart the old table and made myself a new workbench.
Making a PDF File and Automatically Attaching It
I’m writing a rails site that collects information from an applicant and references from other people that will then be reviewed by a different group of people. For the programmer, it’s easy to present the information from the database on a webpage and then provide links to uploaded documents. However, this is not necessarily the easiest way for the reviewers to read all the information. Based on other sites that do the same type of job, I’ve learned that reviewers want to be able to download a single file with all the information in it. I’ve put together various hacks in the past to do this, but have recently come up with a proper way. The following isn’t complete, but it presents the basics of how to do this.