Posted by Doug Hays on the 14th of January, 2008 at
1:28 pm under Rails. This post has 2,098 comments.
A client of mine let me know today that the Excel spreadsheets I was generating for them had data truncated at 255 characters. I didn’t find anything on the web that gave a reason or offered a fix so I decided to dig into the code myself. I am using the Ruby Spreadsheet-Excel gem.
Sure enough, on line 289, of workbook.rb (v0.3.5.1), there was this:
# Truncate strings over 255 characters
if strlen > StrMax
str = str[0..StrMax-1]
length = 0x0008 + StrMax
strlen = StrMax
end
No idea why this was done and I wasn’t going to waste anytime considering the downsides of not truncating, so I commented this block out and it works fine.
Maybe it has something to do with an older version of Excel? Who knows.
Posted by Doug Hays on the 15th of December, 2007 at
12:35 am under Rails. This post has 86 comments.
I just solved an issue that I couldn’t find an answer for on the web, so I thought I’d just put it out there so that maybe it could help someone else. I am creating a simple CMS tool for one of my clients and always like to use the FCKEditor for CMS tools. I hadn’t built such a thing in Rails before, nor had I used ActiveScaffold before today. But Rails + ActiveScaffold + FCKEditor seemed like the perfect combination. And it is, once you get it working. Here’s what I had to do to make this work for a table called content_items and a field called content.
After installing the FCKEditor and ActiveScaffold plugins, I created, for the content column, a form column override file in my views/content_items directory called _content_form_column.rhtml. After some trial and error, I landed at this solution:
<%=column.name.to_s.titleize %>:
<%= fckeditor_textarea( :record, column.name, :toolbarSet => 'Simple', :width => '100%', :height => '400px') %>
<input name="commit" type="submit" value="Save" class="submit"
onClick="var oEditor = FCKeditorAPI.GetInstance('record_<%=@record.id%>_<%=column.name%>_editor');
document.getElementById('record_<%=@record.id%>_<%=column.name%>_editor').value = oEditor.GetXHTML();" />
Now, this is my 15-minute solution. What I’d like to do is get that onClick JavaScript to fire on the form’s onSubmit event and remove this secondary submit button altogether. But, since it’s late, I decided to remove the ActiveScaffold Update button and make this column the last on the page. How’s that for an I’ll-deal-with-it-later hack!?
Posted by Doug Hays on the 14th of December, 2007 at
11:23 am under Apple. This post has 5 comments.
Just a quick note on a surprising feature of Apple Mail and iCal. After I upgraded to Leopard, I noted that some items in my email (addresses, dates, times, etc) had contextual menus appear when you rolled over them. The menus let you create a contact or an iCal event from the data in the email. But, again, Apple surprises with attention to the smallest details. For example, I was emailed this simple confirmation for an upcoming meeting:

When I rolled over the 6:00, the menu appeared and selected Create New iCal Event…. A little pop-up appeared and I began filling it out. When I went to choose the date, to my surprise, it was already selected:

It scoped out the rest of the message to find the mention of Thursday to select the 20th.
The ability to add an iCal event from an email message isn’t what makes a Mac fantastic. It’s the fact that the functionality does not get in your way and when you choose to use the feature, it works as you’d expect… and better.
Posted by Doug Hays on the 26th of October, 2007 at
10:57 am under Uncategorized. This post has one comment.
I was publishing PositiveWare’s first AIR application (PositiveWare time card now on your desktop!) and got this helpful error message:
Error creating AIR file: 105: ERROR, application; 105: ERROR, application
After Googling it, I could find nothing of use. So I decided to start from scratch with the app.xml file and found it there.
It’s my guess that 105: ERROR means malformed app.xml file.
Hope that helps someone out there.
Posted by Doug Hays on the 27th of September, 2007 at
3:20 pm under Flex. This post has no comments.
Now that I have my little AIR application, I need to follow through to the point where it can be added to my client’s internal toolset.
Here’s a rough shot at how I’ll do that (this is really for my client only but feel free to play along):
- Enable Flex-side login into the application via SOAP (if necessary)
- Add an image browser to allow for easy selection of thumbnail and detail image
- Take the key pieces of activity data and create an activity with an exsiting web service call
- Shoot the user over to the Activity Wizard. (Interesting hurdle here… how do I send the user from my AIR app to a URL inside of a browser?)
- Reset the Scaper to allow for the creation of the next activity
Once that is in place, the following features can be added
- Selection by the user of additional activity fields to scrape off the page
- Full integration of the Activity Wizard. So the user doesn’t actually exit the AIR app, the AIR app contains the ‘Wiz
- Addition of some versioning for the AIR utility (would allow for easy software updaets). This is more as a proof-of-concept since this tool is an internal tool.