Sunday, February 2, 2014

Install Rails 4 with RVM and Ruby 2.1.0 on Ubuntu 13.10

I noticed Ruby 2.1 wasn't available for Ubuntu 13.10 yet, so I decided to post this really fast set of install steps on how I did this.

It will have to build from source, so first make sure you have everything you need and are up to date.

In your shell:

sudo apt-get update
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev

For RVM:

sudo apt-get install libgdbm-dev libncurses5-dev automake libtool bison libffi-dev

curl -L https://get.rvm.io | bash -s stable



RVM tells you type this when you are done:

source ~/.rvm/scripts/rvm

You might have to add that to your .bashrc if this is your first time installing this. I did not there was an entry in my .bashrc already.

Now when I check my ruby version:

ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]


And my gem version:

gem -v
2.2.1


If you don't want to store the documentation for each gem package locally:

echo "gem: --no-ri --no-rdoc" > ~/.gemrc

I'm going to install node.js as well to support Coffeescript:
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
The last line after this install for me says:

Setting up nodejs (0.10.25-1chl1~saucy1) ...

Rails installs a lot of gems, so this could take a little while depending on your computer.

To install rails:

gem install rails

Now check the version:
rails -v
Rails 4.0.2


At this point you are done. You can use Rails with sqlite3. I personally don't do that because I use mysql, which I already have installed. But just in case you don't and you would want Mysql here are the instructions. If you have mysql but not the dev library you should run this line anyway, so you can compile the mysql2 gem.

Install mysql:

sudo apt-get install mysql-server mysql-client libmysqlclient-dev

This is optional but gets workbench v 5.2.47 which I am fine with. There is a 6.x version on the mysql website.
sudo apt-get install mysql-workbench

No compile the mysql2 gem. This isn't required here, but will make it easier to check your on track:

gem install mysql2

Now create your new app:
rails new yourappname -d mysql

You have mysql based rail application at this point. If you are really new to rails, you want to know to do these couple of things:

cd yourappname
Modify the config/database.yml for username and password
rake db:create
rails server
Your application is now running on http://localhost:3000

Without comments and shrinking the steps down to be even shorter, I think it could look something like this:

sudo add-apt-repository ppa:chris-lea/node.js

sudo apt-get update

sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libgdbm-dev libncurses5-dev automake libtool bison libffi-dev nodejs mysql-server mysql-client libmysqlclient-dev mysql-server mysql-client libmysqlclient-dev

curl -L https://get.rvm.io | bash -s stable

source ~/.rvm/scripts/rvm

echo "gem: --no-ri --no-rdoc" > ~/.gemrc

gem install rails

rails new yourappname -d mysql

cd yourappname

Modify the config/database.yml for username and password

rake db:create

rails server

done

Saturday, July 7, 2012

Mint 13 with XFCE, pretty darn nice

I'm a long time Ubuntu fan, but 12.04 had me concerned.  I just don't like the new UI.  I'm sure its great for a thousand reasons, but I don't like it.  I'm still on 10.04 with XFCE and Compiz effects.  It was my dream UI, customized the way I like it.  But now 10.04 is getting retired and I need to move on.  Since Ubuntu 12.04 no longer looked like a great option with the defaults, I have started to try some other installs.  I installed 12.04 standard which had some issues right away.  They seem to be going away with updates, but I'm not totally ready to make the switch.  Several times I was forced to stop working and send in crash reports.
I swapped out unity and tried enlightenment, which I have always liked the idea of, but just can't commit to.  The project is always interesting to me, with the right goals and ideas, but somehow, I just can't make it work for the way I want to work.  Then I tried Cinnamon, which has some real promise.  I'm not sure what I quite didn't like about it, other than it just didn't feel like home.  I might get used to it.  I was looking for a little more Compiz out of it.  Some easier ways to switch desktops and some cool effects.  I also wanted my standard right click get all my applications and I haven't quite found that yet.  I also don't have a doc with it, to replace my old conky dock.  I setup a floating panel, but its sort of a nuisance.  Concky floats out of the way when I'm trying to use the space and is generally pretty nice.  I'll keep that install as a dual boot option for a while to see if I like it.  I also tried XFCE on Ubuntu 12.04.  It was just fine.  I think I could play with getting some sort of Compiz features installed and make it fun, and it could work.  The problem was really the 12.04 crashes.  I haven't figured out the root cause of that so I decided to try something new.
I booted Mint 13 with XFCE RC on old computer, where I am typing this now.  The process was really painless.  I also installed it as a VM on my mac with 2gb of ram.  That install went easily as well. I can't say I have to many hours of use in with yet, but no crashes.  That seems odd since its based on Ubuntu 12.04, so I expected the same issues.  The odd thing too is that XFCE 4 looks so different to me from my version on Ubuntu 10.04, that I have a hard time recognizing it.  It has my trusty right click applications menu and the XFCE settings manager.  Its running quite fast as well considering I'm trying this on an Intel Pentium M with 500meg of ram laptop.  Go lenovo, Thinkpad.  This thing should be buried by now, but its very usable so far.  We will see how it goes, but it looks pretty darn good so far.

Sunday, July 1, 2012

Android tablet market needs help

In the last three months the table market has seen a lot of headlines from the Adnroid tablets will take over iPad sales to "Is the Adroid tablet dead".  Both of those were from Forbes in nearly a two month period.  I own and Acer tablet and we have an iPad in the house as well.  My Acer tablet is my Android product but otherwise I'm Apple owner in general and I'm a Linux user at heart.  I think Google releasing so many products has apparently not understood the Tablet market very well, or just not made it a priority.  That is also seen by their latest OS release which hardly does anything good for the tablet, and focuses their efforts on winning the phone war with Apple and now Microsoft.  But there are things Google can do to really attack the tablet market and not just hand it over to Amazon and Apple.

Amazon has nearly 50% (depends on time you count the numbers) of the Android tablet market.  The strategy could be a great one if you make money selling content, which Amazon does, but they sell these tablets at a loss.  So if you are an OEM tablet manufacture this approach isn't going to work for you.  It makes hard to enter the sub $200 market.  And Amazon has heavily discounted content to get people using the content service.  Google's answer is the Nexus 7 built by Asus.  The good news is that Google is vested in getting this right and Asus is a good partner.  Google also has beefed up their media & content.  The bad is that this could easily develop into a price war on hardware and content with Amazon leaving no margin for either player and killing all other entrants.  Its also does nothing to attack Apple's position as the superior experience in the market.  The Nexus is small and doesn't have many of the open features that other Android tablets have, like HDMI out and a superior display.  So the bottom end of the market is now taken by Google and Amazon (maybe some Nook) serving people who want to surf, read and watch show on something bigger than their phone.  At this price point consumers could easily own a laptop, a gaming console as well as a smart phone.

The iPad is competing not only for the media market but its taking laptop sales.  For people who don't want the extra laptop and are not hard core PC gamers, the iPad fits the bill.  The competitor in terms of sales volume in this space is only Samsung.  I like my Acer, but it just doesn't have the sales the Samsung Galaxy Tab has.  Here is what I think Google, Android, and the OEM's need to do to make a dent in this space.

  1. The OS just needs to stop crashing.  Stability is an issue.  Its all over the web, so the denials just aren't worth listening too.  Make it work.
  2. A great feature of tablets are their larger size, but at this time, most apps are still scaled phone apps.  I know iPad had this too and Apps aren't made by Google, but.. and oh wait Apps are made by Google, so at least make those Tablet size with improved features.  Because the Apple apps are improved.  Demonstrate to the market what can be done.
  3. Store apps on the SDCard.  I have 12Gig of memory and I'm out of space.  My son has the acer too, and he is out space.  It doesn't take long.  Even if the Data for the apps could be on the SD Card it would make a big difference.  The SDCard is nice, but not really worth having with out this, and so there is no advantage over iPad.  With this working, its a selling point to compete head to head.
  4. Keep the open hardware features.  The Nexus 7 has a mini usb and no HDMI.  But that was a great selling point over iPad.  I plug my Acer into an HDMI video source add a keyboard and its like desktop on the go.  No more full laptop when flying, no hassle at the airport and the full keyboard and normal screen is great.  With a VNC or variant, I'm connect to my computer and work on that.  Its a great mobile option.
  5. Smart Multitasking - If I'm playing a game, don't start auto updates and certainly don't stop my game to tell me.  Yes, I can turn off auto updates, and stop the messages.  I want smart updates, if I'm doing something, its not the right time.  But there is plenty of time my Tablet is doing anything, or I'm just surfing.  Update then.  But don't interrupt my Netflix or Hulu with that stuff.    
  6. Mobile Gaming.  Acer supports some real gaming options.  These are FPS shooters with great graphics and game play.  One reason the space is an issue, they have a lot of data.  This a great segment for Acer.  My teen son loves it.  Its a mobile game platform, when it works.  Plug hdmi into the TV, add a PS3 controller and its great affordable and portable game play.  The problem is limited game controller support.  I understand that part of this is the game maker, but Android could make controllers easier to support by building that into Android.  The problem is stability again.  Who wants to start the game over after the crash?  The multitasking updates take away from the experience as well.  In this area, the Acer kills the iPad.
  7. Content - Apple has more and Amazon has more - at least according to their users.  I know Google recently reported having more content, but it needs to be a market reality to mean something.
  8. DLNA - Support of this open standard in an ongoing way makes the device attractive.  At the time, I can really only send my music to my PS3.  Could be because I don't know better, but helping wireless connect to devices in the house and compete in an Open way against Apple is a winning strategy.  AppleTv doesn't have the market penetration of XBox and PS3 as the Tv connector of the future.  My Xbox is even a Cable box with AT&T, so why not stream my music too it, connected to my stereo.  I don't have to buy yet another product.
  9. Price - The Android has to be cheaper and better.  Trying to cost the same as the iPad, and I just buy an iPad.  For a while, Android is going to need to win on price.  There needs to be a reason to risk using it.  OEM relationships work when a higher quality product can be delivered at a cheaper price because each partner can specialize in what it does.  Single source engineering works when the over quality and experience needs to be controlled by single source to ensure a superior product.  What wins changes over time.  For the last few years this has favored Apple and not Microsoft and Google.  Google needs to make this work if Android is going to work.
  10. Third party hardware support - DLNA and open hardware connectors sort of get you there, but there are just more third party add on products that make it easier to do stuff with the iPad.  Of course the OEM strategy makes it difficult to make this happen on a mass scale.  Apple would win this one for a while, but now they are reportedly changing their standard connector which could cause the market a lot of pain and be a positive selling point for the standard approach of Android talbets.
  11. Jelly Bean doesn't get you there on the tablet.  I don't care about the better camera on my tablet.  Most of the features in this minor release have no benefits to tablets.  Changing the user interface again is not the problem.  Crashing is, multitasking that brings the system to a halt is a problem.  So while new features are exciting for a minor release, lets get things working smooth.  This release doesn't really address anything I talked about here.  There needs to be a release that is stable and has features people with Tablets want, not just phone improvements.
See something you think would help Android in the tablet market, let me know.



Thursday, September 8, 2011

Training just not blogging

I have continued to train, but just haven't had time to blog. The days are pretty full when you train twice a day and work. That should let up now that we are closing in on race day. I have a few more days of doubles, and then I'll ease up on everything to get rested and try not to gain to much weight.
I was doing good on weight, but Labor just killed me. I gain 6lbs that weekend. I don't know how anyone could eat that much, but I did it. It took 2 months to loose that weight and two days to get it all back. Since then I've dropped a 2lbs out that, so water, etc. But really disappointing. Either way, I feel faster and ready to go.

Bionic vs iPhone 3gs Speedtest - Verizon vs ATT

The Bionic looks impressive so far. I got to speedtest one against my AT&T 3GS and I was shocked. To get right to it, Speedtest on the Bionic 7Meg download, AT&T iphone 3GS, only 3.4Meg. The Verizon network just killed AT&T. And it was off the same speedtest server. I tried the same test using my corporate wifi with my phone and did get 11meg. I just wanted to make sure the phone could go that fast.
That said, I watch Netflix on my phone at 3.4M, so what else do I need to do? I skype out and video chat all with good quality. My web pages and apps load fine, so how fast do I really need to go. Twice as fast sounds impressive, but the movie will play at the same speed. I'll be interested to watch and see what people really use that bandwidth for.

Tuesday, July 26, 2011

PS3 - Doesn't recognize external hard drive formatted in FAT32

I searched everywhere on the internet.. clearly not enough, for my hard drive wasn't recognized by my PS3. The most common issue was not being in FAT32 format. Which everyone says every modern OS supports, but clearly they do not support it enough, because the most common response to formatting the drive was to buy new windows software.
I tried many approaches that did not work, but maybe they did and I didn't know it, its still not clear why my eventual solution did work. After trying to format on Linux, Windows vista, Windows 7 and even putting the drive in the PS3 and then back in the USB, plugging it into the PS3, it was still not recognized.
I connect the drive to my Mac and formatted it in FAT filesystem. In 10.6 it doesn't say FAT32 but it is. Don't try exFAT either, that doesn't work. Then I created some folders, based on this article. I plugged it in and it was instantly recognized. I'm not sure if the Mac got the formatting right, or it was the folders. It seems hard to believe the PS3 couldn't get the formatting right.
Not a single article in the dozens I read said anything about making these folders to do a backup before swapping out a drive, or trying to get an external drive to work. Everyone seemed to format in FAT32 and it just worked. If you think your drive is in the proper FAT32 and it still isn't being recognized, you might give the folders a try.

Mac Battery - Replace Now - Then good??

After my upgrade to Snow leopard my battery suddenly died for good. Lots of suspicion on the internet about why that happens. I'm sure Apple didn't want to up the stock price or anything more accessory sales, but who knows. I needed a new battery so I braved the Mac Store at lunch time no less, stupid, but I did it. It was packed. The mall was empty, it was packed. I snagged a geek and in drive by, rude, interrupting question and found what I needed. Seamless check out from another geek and I was on my way. On the way out I realized they were actually having a camp for kids there, teaching kids to make videos. Who knew. I was just happy to escape in less than 20 mins. I get the battery home, swap out the old one and boot up. Then the anger sets in when its says replace now on my battery status. I finished the charge and still no luck. Before scheduling time with the geek I did a reboot, and it appears to be fully functional. Hopefully that continues to be the case. Many people online complained the new battery only lasted about a year. My first battery lasted 5 years, before snow leopard killed in a week.

Saturday, July 16, 2011

Ubuntu 10.4 only had 3.2GB instead of 4gb

I noticed my Ubuntu box only had 3.2GB of RAM the other day when I was using RStudio for something. I was a little shocked. I went to the Ubuntu site which says it installs the PAE enabled kernel by default, but it clearly had not done so. The fix was easy enough:

sudo sudo apt-get install linux-headers-server linux-image-server linux-server

Then reboot and now I have 3.9 GB. I recently upgrade a windows laptop to Ubuntu 10.04 and it did install the PAE support just fine. I'm not sure why mine was not enabled, but its worth a 30 sec check to find out if you are using all your memory.

Tuesday, May 24, 2011

Baristas Coffee Inc - BCCI to open stores in NJ

I like technology, I like coffee and I enjoy trading stocks. I was recently in Seattle and we were talking about Starbuck and coffee when someone mentioned a little sexy version of the baristas. When I got back to Indy a friend also mention the stock BCCI. So I had to check it out. This stock has been all over the map. Its less than 1 dollar. Somewhere around .30 today. In the last 13 days its been anywhere from .11 to .84 cents with some interesting volume for a stock that small. So I have started to accumulate some of this stock. Then yesterday they announced they will open 5 more stores in NJ, with the first in the next 120 days. So in May, that's 10 locations in TX, a location in Tacoma and now 5 new stores will be in NJ. My hope, is people don't stop drinking coffee anytime soon.

Monday, May 23, 2011

Myslq2 on Ubuntu 10.04

Tried to get mysql2 adapter installed on Ubuntu 10.4 today. I just found out this existed. Its been a little while since I have coded some Rails. I'm working on 3.0.1. I also had an issue updating my gems, but I let that slide for today. I Thought that would be as easy as 'sudo gem install mysql2', but that didn't really work out.
I get an error:
ERROR: Could not find a valid gem 'myslq2' (>= 0) in any repository

I first installed libmysqlclient-dev:
sudo apt-get install libmysqlclient-dev

Then I realized I needed to change my Gemfile, which is totally new to me. I added this line and removed sqlite:

gem 'mysql2', '< 0.3'

Then I ran:
bundle install

That got it to start working.

Sunday, April 24, 2011

Ubuntu 11.04 Beta my first look

I finally installed Ubuntu 11.04 Beta. The install went well using VirtualBox. Then lots of updates as expected for a Beta and I was up and running.
Lets cut to the chase - Unity instead of Gnome. This is going to be love/hate for different people and I hate it. My first impression of how it looked was very positive. The idea behind it, even seemed positive, but I won't upgrade to 11.04 at any point in the near future with Unity. I have to recognize that Unity is different and sometimes we don't like things because they are different.

What didn't I like about Unity and the desktop environment? First it simply takes longer to find simple applications. The easiest way seems to be to search for them by name. If I wanted to do that I would just launch everything from terminal. Terminal, BTW not on the unity launcher. Who is using this thing, its Linux after all, where is the quick launch for terminal. So I get my icons already in the Unity launcher, but there are nothing that I would use. Firefox and LibreOffice are nice, but I don't use them all that much. Customizing Unity is sort of a pain. Its not like any quick launcher you have used before. It was easy to remove LibreOffice from the laucher, just right click and uncheck "keep in Launcher". What about adding stuff. This took a little bit to figure out but simple enough, launch the program you want, probably by searching for it, and the right click it and check "keep in launcher". I personally don't like this method. I'd rather just load a tool to customize the launcher and put what I want in it. Oh and then be able to reorder the list as I wanted. With Unity this feature has still eluded me. What's the big deal anyway? Well its sort of annoying and Gnome isn't that annoying. In fact Gnome lets you customize a lot more so far as I can tell.
Then it has bugs as you would expect. I ran Chrome, somehow the top of the window jumped off the screen. In Gnome you would right click the window toolbar icon and select move to get it back. Unity didn't seem to have this feature.
There desktop also didn't have an obvious or easy way to add applets like in Gnome. I right click the top toolbar but I get nothing. In Gnome I have my weather on the toolbar and my activity monitor. There must be some answer for that, but it wasn't obvious. I also didn't have multiple desktops by default. That seemed odd too. If they were easy to add I couldn't find it.
The look and feel customization, is also weak. From screenshots around the web, it looks possible, but I don't know how long that would take to figure out.
It was surprisingly stable for a Beta, but I had several crashes with different applications, from Unity itself, to Banshee and other applications. That wasn't the worst part of the experience.
After my Unity experience, I logged out and logged back in, using the Ubuntu Classic. This seemed to work as I expected. To me I wasn't ready for the switch to Unity, but the easy option to use 'Classic', I was very happy with Ubuntu 11.04. My only concern about upgrading is about what will happen to my current desktop and its options already in place. I have it working the way I want right now. There really isn't anything, I'm dying to have in a new OS. Ubuntu 10.4 is really a great operating system. Stable, fast and easily customized, I'm not sure there is a good reason yet to try something new.
If you know something in 11.04 you are dying to try out let me know, so I can give it a look. I'm waiting for the excuse to upgrade.

Wednesday, April 20, 2011

Ubuntu with RStudio - Upgrading to R 2.13.0

Its been a while since I posted. Mostly because there are no readers :)
(BTW - I still have my iPhone. iOS4 is pretty darn good, not sure about that AT&T)

I run Ubuntu 10.4 still. I have a VM with 11.04 on it for testing purposes, but I'm not ready to leave 10.4. However there are new versions R and RStudio available. I checked the Ubuntu repositories, but they were stuck on R2.10. I considered the OS upgrades, even to 11.04, but that had R 2.12 which meant I was going to have to upgrade something anyway. I considered not upgrading but my current version of R was having some issues. The biggest issue for me was that I could not install ggplot2 successfully with my installed version. As graphs are important part communicating the data I review I chose the upgrade as the required option. Besides, I like new stuff. So went ahead a downloaded the R source.

If you only want to use R on the command line, then its a build like any other build and you can stop reading. Remove the synaptic version, then unpack, build, and install, have fun.

I followed the online instructions for R and then installed the latest version of RStudio(93.84). It reported no errors during the installation, but when I tried to start it, I got a rather cryptic error message.
It said something like did I enable enable-R-shlib? But it didn't say if I should or should not have enabled it. Turns out you should if you want to use RStudio.

Simply do the include the --enable-R-shlib in your configure statement:
./configure --enable-R-shlib
then
make
sudo make install
Now RStudio runs, which is good but there is more.
If you want to run the byte code compiler, you have to compile that as an extra step, which is in the docs.
One the reason I wanted to upgrade RStudio was to use the library Manipulate. The documentation for RStudio says it comes with Manipulate which lets you do interactive plotting. It also says RStudio with with any version R compiled from source. However, I get this error message now:
Warning in install.packages :
package ‘manipulate’ is not available (for R version 2.13.0)

I guess I will not be using this feature for now. I did get ggplot2 to work with this setup.

I'll follow up on my future use of R with RStudio.

Friday, October 16, 2009

iPhone OS3.1 ruined my iPhone

I can't believe after so many good things with the iPhone os3.1 has totally ruined my iPhone to the point where I am considering selling it as soon as any decent alternative exists.
I'm too angry to provide to many details, and the disgust is all over the Internet.
Battery life.. great sucking sound. Doesn't get recognized by iPhoto anymore.
Itunes account, messed up, can't upgrade any apps because it iTunes doesn't "respond".
Data connections drop all the time. The phone hangs on phone calls now too.

The Apple puts out 3.1.2. So far it has solved none of these problems.

Whatever you do, do not upgrade to this release.

Sunday, June 14, 2009

IPhone 3.0

I'm typing this on my iPhone 3G with 3.0 on it. It's working pretty good so far. Ok I love it. This is way late, so I'm just pressing send - New one shipped today, comes tomorrow!

Horizontal keyboard in email is great, along with email search. Features long overdue. The spotlight all phone search is better than I thought too. It searched contacts and all my email as well app names etc. Everything worked as expected except for a few applications.
I did upgrade early so hopefully moat of these things will be fixed by Thursdays release.
The first killer was etrade pro didn't work but they put out an update and that's working now.
Skype called out an os error and didn't seem to work.
Camera zoom just crashed when opened. That was a bummer too.

Text free is having crash trouble but has worked a little. (Updated: They released a new version and its working great with push service, no more receiving the emails.)

Several games just don't work anymore. Still waiting for updates on those.

Wednesday, May 20, 2009

select field with default value in rails

I wanted to make a select box from a list in the database, and I wanted the default value for a field to be the person logged in. Should be simple and it was, but the api didn't have any example, so here is what I used.
I'm using form_for so my code was different than the docs too, maybe this is in there somewhere..
<% form_for(@task) do |f| %>
<%= f.label :user_id %>
<%= f.collection_select(:user_id, User.find(:all), :id, :name, {:selected => session[:user_id]})

If there is a better way let me know.

Tuesday, May 19, 2009

Rails - Dealing with nil in views

I've been working on the task management application and after creating my initial databases and views started to make the UI more friendly. Each task in the application has an owner. I'm doing this with two tables, one called tasks and one called users. The task table has a reference to the user called user_id. When you pull the task index view you end up seeing the ID reference instead of the person's name. That's not too helpful.
My first attempt was to put code like this in the view:

in view/index.html.erb


Owner:
<%=h User.find(@task.user_id).name %>



The problem is when the user_id doesn't have a value or the value is not valid. Lots of ways to solve this, like add a validation when a task is created that says it exists, but what if you want to make the task but don't know who should own it yet? And what if you delete a person, because they leave the company. Need some routine to reassign their tasks. But in any case, index shouldn't crash.
My first thought, and I think a bad one was to put exception logic in the view. As soon as I started typing, I knew that was bad.
So I came up with this simple solution in the model:

in model/task.rb
def owner
begin
User.find(self.user_id).name
rescue
"None"
end
end

Regardless of the reason for the crash its caught and index will keep working. It doesn't depend on other routines to make sure this piece of code doesn't fail. Best of all, you could write a test on this too. Not a big deal here, but if it got more complex you might want it.
The view is much more readable like this:
<%=h @task.owner %>

One last thing I think I should do is log something in the exception. That assumes someone would notice a problem in the log, but its not a bad practice.

If you have a better way to resolve this, let me know.

Saturday, May 16, 2009

New Project

I've tried basecamp and actionmethod and these are pretty good tools. They are free and you should check them out. I use Microsoft project every day. Its not a good tool. I hate to say that, but its just a pain. There are other tools for sprinting all that, which are neat. If you have a good one, let me know, but either way, I'm writing a new one. We aren't selling tool, but it needs to do some things we want to do - basic stuff.
We want to track tasks, but we also need to report on tasks for the project. Actionmethod didn't have the team reporting we wanted. We also need to track the time spent on each item. The time reporting key for us. Basecamp had most of the features we wanted, but didn't have the time reporting. We looked at time reporting tools, but they were focused on tracking time and reporting it, but not really the task management.
The final straw was when using MS Project I tried to sort a plan by start date. Couldn't make it work in MS Project 2003. We have groups of tasks, that have summary tasks and a few columns of data. The report features in MS Project kept pushing the print out to two pages side by side. That is too much of a pain too. But the big deal was the sort was actually wrong. The summary tasks kept creating problems.
We just wanted an easy way to log in and see, what work do I have to do today. Then for the manager, what work got done this week and what is not getting done. So we can communicate with clients who might be impacted. Of course we need to bill hours so we need to track the time and we want to be able to analyze the time to make better estimates next time. Sounds so simple.
If you have a great tool for this, let me know. For now I'm building one in Ruby on Rails, I'll let you know how it goes.

Wednesday, May 13, 2009

Upgrading Ubuntu 8.10 to 9.04

I finally pressed the button. It kept calling to me day after day, upgrade available. Finally I pushed it. Everything was running great in 8.10, so I'm not sure what I really hoped to gain, but two things that I wanted were OpenOffice 3.0 and better dual monitor support. Things I could probably live with out, but I did it anyway.
It really did seem to go well. After the reboot the system came up, just like I expected and I was off and running. I quickly installed CouchDb using apt-get which I'm not sure was available in 8.10. It might be, but its not in 8.04. That's another story.
I went to use Skype today and no mic. ouch. I haven't found the fixes yet, but when I do, I'll try to post them here.
Other than that, seemed to be so painless, I hardly noticed the change.
If you read this, let me know your favorite features in 9.04.

Saturday, May 9, 2009

Pentaho Kettle doesn't cut it - update

Admittedly I'm a Pentaho newbie, trying to evaluate the software and to some 'simple' tasks. The demo's and samples worked well, but the put the test Kettle just didn't add enough value as an ETL to warrant its use. To be fair, I have used WebMethods and some other tools but have usually found it more simple to just write the code. There always seems to be something unique enough that the tool just can't handle where writting the code work, or worst yet a defect that you can't work around.
In the case of Kettle, I just have a problem I can't work around. Its open source so in theory I can debug the original code and create a patch. Unfortunately I was trying Kettle because I thought it would be simple and I was in a hurry. So I don't have time to debug at that level, since writing the code might take as long as writing the blog entry. Because I didn't buy the Pentaho version, I don't have a support option.
Here is what I wanted to do. Open a file that included a single string that was compressed with gzip. That string contained XML and I wanted to put that XML into a database. Seemed simple. I used the load file and gzip decompress, did a preview of my decrypted string and seemed to look good. I had to sent it to Javascript to make a modification to the XML before I could parse the XML. That is where the trouble started. The resulting string was not whole, it had parts missing. I couldn't figure out why, but Kettle is truncating my string at 4600 char when it really has closer 8600. I tried setting the length of the field to 10000, but that did not work. I gave it 4 hrs of debugging and some time on IRC but there is no obvious solution yet.
Reading the 'documentation', I use that term loosely, did not help with this problem. In fact even for open source documentation, there were a lot of issues. I understand that the wiki is going through some changes, so stuff is moving around in an attempt to make the documentation better. Clearly the code is moving faster than the documentation. So for now I'm going to post the issue to the forum, and write my own because I have a job that needs this done!

Update:
I wanted to update this post based on what I did to resolve the issues I was having. I did join the IRC Channel, which I would recommend, but that did not solve the problem. The string problem so far as I can tell is truly there. What I did to solve my particular challenge is make the make the XML well formed via a bash script before loading it into kettle and then use the XML input functions. That worked like a champ in under 5 minutes. That said Kettle was easily able to deal with the XML and create the output I wanted.
Looking forward I will continue to work with the Pentaho toolset. Hopefully the work on the documentation by community will continue to pay off for the tool. I have for my part tried to update the Pentaho wiki when I could. I will continue to do that when I can, or post what I can here. This is not a simple project to document, it changes quickly and getting started is considerable undertaking.
To summarize, I'd say if you are working on a straight forward task the tool performed well. The debug features and the documentation are two areas that require improvement in order to be commercial class tools in my opinion. The debug features and improvements would probably be the most helpful if I had to prioritize them.

Tuesday, February 17, 2009

Dashboards (CDF) with Pentaho

My first day trying to make a dashboard with Pentaho. There is a lot in this project and the documentation could certainly use some work, even from just navigating it. The IRC group ##pentaho has been extremely helpful in getting me started.
Before you start you need the Pentaho bi-suite installed and working. I'm using version 2 stable on Linux.
Then you download the CDF. That link goes to the wiki and has a link to the download. There are directions to use the installer, which is a jar file. Stop your server before you start this process.

I did the java -jar CDF.installer.jar and followed the directions.

When it asks for your solution directory, they mean pentaho-solution directory.

It says you finish and you restart the server. Then log in to localhost:8080 and you might see the CDF directory available in the browser on the left of you web browser window. I did not.

What I to do was go to the tools menu -> Refersh -> Refresh data sources.

Then everything showed up for me and I could run the examples.

Let me know if you start using CDF.