I have been following along with the latest iteration of the Coursera Machine Learning class this week and it’s been a little frustrating so far. The audio on the instructional videos isn’t very good. It’s been a while since I have done any structured course work rather than just teaching something to myself so it’s taking a little time to get back into the swing of things. I am enjoying learning something outside of the web developer area of my expertise.
Improvements Twitter for Mac Should Make
I just spent some time looking at third party Twitter clients for the Mac because Twitter for Mac froze on me again. I use a MacBook Pro for work and whenever I disconnect the external monitor I use the Twitter for Mac client becomes totally unresponsive and I have to quit the program. This problem has been around for a long time and today I finally got fed up with it.
I decided to check out third party Twitter clients and see if there was anything that would be acceptable. The third party clients I tried either don’t support good keyboard shortcuts or look awful with bad colors and fonts and all them scrolled poorly. So it seems what I really want is for Twitter to add a few improvements to their Mac client.
Suggested improvements for the Mac Twitter client
- Fix the external monitor issue
- Add in-line image previews an option
- Allow customization of the font size
If twitter would invest some time in developing these features then I would be a lot happier when using the desktop client.
A Bibliophile Learns to Love Ebooks
I have been a book lover since the third grade when I read my first sizable book. I remember it was a novelization of Disney’s “The Fox and the Hound” and it was a whopping two hundred pages long. I remember being proud to have read such a long book. Then in middle school I read “The Hobbit” and discovered Fantasy and Science Fiction. I became a voracious reader of the those genres. For much of my life there was nothing I liked better than to have a book in my hand and spend my time reading. I loved to go to the bookstore and wander through the isles looking for my next book. I have accumulated so many books over the years I was starting to drown in them. So after some thought I made the decision to get a Kindle and migrate some of my reading to it.
This has worked well for me over the past fifteen months. I think I have even saved money because there are a lot of sales on ebooks and I have read a bunch of self published authors whose books are usually only a couple of dollars at most. I have enjoyed the large selection and for the most part the reasonable pricing of Amazon’s ebooks.
Over the past year aside from buying a few books from my favorite authors in hardcover most of what I have bought have been ebooks on my Kindle. This trend accelerated once the Borders Books chain shutdown. Borders was my favorite bookstore and I was truly saddened to see them go out of business. Now that my primary bookstore is Amazon I either buy an ebook or I throw the book in my wish list as a way to keep track of it for possible purchase at a later time.
Unfortunately as my buying habits become common across the public it means the end of physical books. Even though I still buy some physical books the economics are against that publishing model. I fear that my kids will have a totally different reading experience than I have.
Ruby Sort a Subset of Array Elements
Here is a little trick I came up with for sorting a subset of array elements in Ruby.
I needed to sort a subset of elements in an array while leaving the other elements in the positions they occupied.
The algorithm I used was to create a new array with just the items I want to sort. Sort the new array’s elements. Then you have the original array that contains all the elements and a second sorted array with just the items you are interested in. The original array and the sorted array both contain the same subset of items then you want sorted. So go through the original array and whenever you find one of the items you wanted to sort replace it with the next item from the sorted array.
1 2 3 4 5 6 7 8 9 10 | |
Stubbing Out a Method Implementation in RSpec
I needed to have a method call return different results depending on the argument passed to it in RSpec today so I am putting a write up here on how this is done.
When stubbing a method in RSpec you can pass a block to it to determine the return value based on the input to the method.
I needed this because I needed to test the result of the nth invocation of the method.
1 2 3 4 5 6 7 8 9 10 11 | |
Wunderkit Evaluation
I used Wunderkit as my task manager for a week and here are some points that really stuck out for me. At this point Wunderkit is an immature platform that needs built out before it will be useful for managing anything but a few very simple projects.
However I have hope for Wunderkit as the Wunderkinder the company behind it have raised some money and I am hoping they use it to develop native applications for the platforms it runs on. If Wunderkit was native and had a few more features and emphasized tasks more than the social aspect I would be willing to reevaluate it.
Wunderkit Pro’s:
- Multiplatform, web/desktop/mobile
- Sync works well
Wunderkit Con’s:
- Slow and it uses a lot of memory
- It takes two clicks to get the tasks area.
- The default font is to small and there is no option to change the size on any platform.
- There are no smart lists of tasks such as Due Today or This Week.
- The desktop and web application versions don’t support setting reminders only the mobile versions do.
- The task list area needs to support either the native window background of the platform wunderlist is being used on or they need to provide an option to set a solid color background.
Searching for a Task Solution
I have tried many task management solutions and I haven’t found any that I really like. I have a few criteria for an acceptable solution but nothing I have tried so far meets them.
- Multi Platform
- I need to be able to access my tasks from the web, my iPhone, and if possible a Mac.
- Many solutions hit 2 out 3 of the platforms. I can accept not having a desktop app if the web app is available but I don’t like it.
- Effortless Syncing
- I want to be able to enter/close tasks on one device and have those changes propagate within a couple of minutes across clients.
- Due Dates/Times
- I want to be able to set a due date and time on a task.
- Reminders
- I want to be able to set a reminder time on a task and preferably be notified on my iPhone.
- Cheap
- I am willing to pay for task management software as evidenced by the numerous iPhone task managers I have bought in the last few years. However I am not willing to let a company siphon money from me indefinitely and I find the companies trying to charge extra for syncing particularly distasteful.
I have tried OmniFocus, Things, The Hit List and none of them have kept me using it for more than a few days. OmniFocus is to expensive and has no web app. Things has been promising sync forever and aside from a limited beta test hasn’t produced it. Cultured Code the make of Things also doesn’t seem to updated their website since last August. The Hit List was presumed dead for a long time until it’s developer popped up with a new version and added syncing for an extra monthly charge. So I have encountered show stoppers with all the big Mac task managers that preclude me from using them.
I have tried many web applications however most of them aren’t available on any other platform. I have been sporadically using iPhone clients that store their data in the Toodledo web application. This gave me the 2 platforms I needed the most web and mobile. However I haven’t been particularly pleased with any of the iPhone apps and Toodledo’s UI is ok but not great.
I am currently giving Wunderlist another try because it’s available on practically every platform Mac/Windows/Web/iOS I would want to use it on. Wunderlist is very simple however it does support multiple lists, due dates and times, syncing, and reminders on the iPhone. Wunderlist is free which isn’t actually a good sign in my book because they have no revenue to keep them in business.
I am going to try and stick to using Wunderlist for two weeks to really evaluate it. There is one thing that annoys me already and that is the custom backgrounds they use everywhere, I would prefer that the app use the native window background on iOS and Mac/Windows. I also wish Wunderlist would use black text in order to increase the contrast and make the test easier to read.
Web App Administration Responsibility
I had a very frustrating experience today where I suggested a very simple automated solution to a problem that would take the responsibility of dealing with a whole new category of customer support issues away from the company. My idea was to escalate the issue from one class of user to another and have them be able to quickly address the issue thus avoiding any need to have one of our employees spend time on it. This solution would be relatively simple to implement and would be done fairly quickly. Unfortunately I was shot down in favor of having developers handle these issues manually.
There are so many things wrong with this that I just had to write about it. I am venting in this way because I had to refrain from saying something I would regret after this decision was made.
First we are software developers not clerks in the 1950’s doing everything by hand. Our job is automate business processes not make them more inefficient.
We want to empower the users to address any issues they have rather than having to contact us. We want users to feel capable and that our product meets their needs.
The only way developers can fix this support issue is to go into the database and delete records since we have no superuser capability in the system. This is exactly what you never want to do unless it’s an emergency and then you better think twice before touching the database.
I believe once this solution is in place and the extra work is factored in we will end up developing a different solution to the problem so we won’t save any time overall and I wish we were doing it right in the first place.
Git Go Round and Round
When git is working it’s a dream however when I get outside the regular workflow it is easy to get lost.
I have two projects where I have the need to pull commits from an upstream github repo and then push to my own github repo. I kept finding myself with a detached head after pulling from the upstream repo. I could resolve any conflicts, commit my changes, and merge them back into HEAD but pulling from upstream would just result in a detached HEAD again. I went around and around with this issue until I was ready to cry uncle. I tried resolving this both through the command line and several Mac Gui git clients.
Fortunately this project contains my files in a couple of isolated directories. This let me copy those directories out of the repo and then delete the repo and start over with a fresh clone of the upstream repo and then add my files back in.
This shows me that I need to spend more time using git or stop trying to do oddball things with it.
Steve Jobs
As I was sitting on the couch last night I checked Twitter on my iPhone and one of the first tweets I read said Steve Jobs had passed away. I quickly pulled up Safari and checked CNN and Steve Jobs passing away was the lead story. I was greatly saddened by this news. Steve Jobs helped to create the personal computer as an idea. He drove the entire industry to create better hardware and software and to make computers more intuitive and easier to use.
My mom bought a version of the Apple II around the time I was starting high school at the time I didn’t get into it that much. Since my mom was teacher she had older model Macs for several years. My first real exposure to a Mac was when I was working for a publishing company and we used Quark Express on really old Macs running System 7 as the operating system. By this time in my life I loved computers of all kinds and was learning everything I could about computers and operating systems of all types.
It wasn’t until years later when I was attending college and that I was able to buy my first Mac. With the release of Mac OS X I had developed a real interest in Apple. I was studying computer science in college and I wanted a laptop computer to use for school so I bought a 12” PowerBook. I loved everything about that computer the portability, the aluminum enclosure, the joy I got from using it. From that day forward I primarily used a Mac at home even as I was a Windows developer at my day job.
A few years after I got my first Mac I bought an iPod Mini. I had a long commute for years and having my own music in the car made it so much more tolerable. When the iPhone 3G came out I bought one and fell in love it. I had a hand held computer straight out of science fiction that just blew my mind. When the iPhone 4 came out I upgraded from my 3G and bought my wife one as well. The products Steve Jobs designed have made our lives better and I think that is what Steve was always trying to do.