Saturday, December 11, 2010
Drupal image file upload - can not select any images
Attempting to upload an image file to my Drupal site this morning, I encountered one of those bugs that brings an early Saturday morning of productive coding to a grinding halt. Despite already having successfully uploaded a handful of images, the files were suddenly greyed-out and inactive. I ran through 20-30 minutes of troubleshooting my user permissions and file directory settings to no avail. It felt like one of those strange issues that only I had run into, so I didn't have much hope for finding the answer on Drupal.org (spoiler alert - I did find the answer, and you will too!).
Lucky for me, there had already been a great deal of discussion, and the issue was apparently caused by an update to Google Chrome 8 (8.0.552.11 dev, to be specific). It's important to note that it wasn't technically a bug on Chrome's part, rather the fact that it updated the way it implements HTML5 file uploads. Instead of accepting file extensions (which is what the Drupal ImageField and FileField modules provide), the browser (correctly, according to the HTML5 specification, BTW) now expects mime types.
I suspect this issue will be affecting a lot of Drupal developers over the next few days, and while the issue is directly related to an update with Google Chrome, it would be very easy for a developer to go search Drupal.org for problems with the image file upload before thinking to check it in another browser. I'm simply creating this page as a gateway to the solution that might more closely match the search terms of a bewildered developer.
If you are having the problem of not being able to select files to upload to your Drupal site using Google Chrome, you will want to take a look at this article on Drupal.org. If you're in a real hurry, I'll give you the solution (that worked for me) right now, but I strongly suggest reading up on the issue before implementing this fix, especially on a production environment.
After all the patches and workarounds suggested over the past few weeks, the true solution surfaced, and it involved an update to the two affected Drupal modules: Filefield and Imagefield. Go grab the latest versions of those (6.x-3.8 for both), or run this command through Drush:
pm-update filefield imagefield
Let me know if you found this solution helpful; and by all means head on over to Drupal.org and give those guys some love for the quick, solid solution. Once again, I am amazed by the effective collaboration in the community of Drupal Web builders.
Lucky for me, there had already been a great deal of discussion, and the issue was apparently caused by an update to Google Chrome 8 (8.0.552.11 dev, to be specific). It's important to note that it wasn't technically a bug on Chrome's part, rather the fact that it updated the way it implements HTML5 file uploads. Instead of accepting file extensions (which is what the Drupal ImageField and FileField modules provide), the browser (correctly, according to the HTML5 specification, BTW) now expects mime types.
I suspect this issue will be affecting a lot of Drupal developers over the next few days, and while the issue is directly related to an update with Google Chrome, it would be very easy for a developer to go search Drupal.org for problems with the image file upload before thinking to check it in another browser. I'm simply creating this page as a gateway to the solution that might more closely match the search terms of a bewildered developer.
If you are having the problem of not being able to select files to upload to your Drupal site using Google Chrome, you will want to take a look at this article on Drupal.org. If you're in a real hurry, I'll give you the solution (that worked for me) right now, but I strongly suggest reading up on the issue before implementing this fix, especially on a production environment.
After all the patches and workarounds suggested over the past few weeks, the true solution surfaced, and it involved an update to the two affected Drupal modules: Filefield and Imagefield. Go grab the latest versions of those (6.x-3.8 for both), or run this command through Drush:
pm-update filefield imagefield
Let me know if you found this solution helpful; and by all means head on over to Drupal.org and give those guys some love for the quick, solid solution. Once again, I am amazed by the effective collaboration in the community of Drupal Web builders.
Labels:
chrome,
Drupal,
file upload,
filefield,
imagefield
Tuesday, November 30, 2010
Should we outlaw Lorem Ipsum?
After replying to an intriguing discussion started by Karen McGrane regarding the use of Lorem Ipsum text in layouts (or more accurately, the growing mob of angry Latinistas), I wanted to help spread the sentiment in defense of "Greeking," a simple, age-old technique that has helped bridge that gap of designer/client communications in many fields, not just designing the Web (And yes, "Greeking" involves the use of a Latin-language passage. We're past that).
First, a brief example of the offending text known as "Lorem Ipsum" you will likely recognize:
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
After first hearing about the argument, I really wanted to get aboard the "Outlawing Lorem Ipsum" train (Choo! Choo!). Like many designers, I have to work hard not perpetuate a bias toward bashing a technique you no longer hold elitist knowledge over - in other words, as soon as something's no longer just for the cool kids, it's deemed no good for anyone - and naturally, we must make an example of mid- to late-adopters.
But once I read the main arguments against using Lorem Ipsum, it completely lost value. Doing away with the technique offers no solutions over the real concerns being pointed out, most of which involved designer/client communication.
Why they hate Lorem Ipsum
To give fair attention to some of Lorem Ipsum's most outspoken opponents, I found a very compelling statement in this adaptive path essay/interview by Kate Rutter. The concept is that clients should think more strategically about their content up front. I don't know any designer who wouldn't benefit from that, but if life was easy, everyone would be doing it, right? So, for those times where your client has thought strategically up front, I would probably use their "strategic" copy, rather than Lorem Ipsum. I think we can agree on that, but for the other 99% of the time where your client needs to see something before they can finalize enough approved copy for you to design around, the standardized method that has worked for years, might just work for you.
That's a very high road to take, and as designers, we do have a responsibility to encourage our clients to become more effective, improve their process and write better content. At the same time, heavy-handed, elitist attitudes are what brand designers as hard-to-work-with snobs who care more about typography than human interaction, not a likely road to successfully winning hearts and minds of business owners. So, the outcry doesn't end there.
One recurring example is a strawman-type argument whereby painting a picture of a designer being cornered with that deer-in-headlights gaze as a room full of clients get confused and angered by this never-before-seen block of sample text beginning "Lorem Ipsum." The scene suggests lighting of torches and zombie-like board-roomers approaching the designer chanting something like, "Don't understand... must eat brains."
Back to reality (for a second) -
Honestly, to anyone who has experienced this unbelievably confusing moment with clients who think the lorem ipsum is actually intended for production… was it really that hard to clarify the misunderstanding? Did you seriously walk away from the meeting not having educated them with a ten second explanation? I’ve actually found it more confusing and distracting to try and input semi-dummy text that the client didn’t provide… “Where did you get that copy? Why would we say that? We haven’t used that word in two years, etc.”
First, a brief example of the offending text known as "Lorem Ipsum" you will likely recognize:
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
After first hearing about the argument, I really wanted to get aboard the "Outlawing Lorem Ipsum" train (Choo! Choo!). Like many designers, I have to work hard not perpetuate a bias toward bashing a technique you no longer hold elitist knowledge over - in other words, as soon as something's no longer just for the cool kids, it's deemed no good for anyone - and naturally, we must make an example of mid- to late-adopters.
But once I read the main arguments against using Lorem Ipsum, it completely lost value. Doing away with the technique offers no solutions over the real concerns being pointed out, most of which involved designer/client communication.
Why they hate Lorem Ipsum
To give fair attention to some of Lorem Ipsum's most outspoken opponents, I found a very compelling statement in this adaptive path essay/interview by Kate Rutter. The concept is that clients should think more strategically about their content up front. I don't know any designer who wouldn't benefit from that, but if life was easy, everyone would be doing it, right? So, for those times where your client has thought strategically up front, I would probably use their "strategic" copy, rather than Lorem Ipsum. I think we can agree on that, but for the other 99% of the time where your client needs to see something before they can finalize enough approved copy for you to design around, the standardized method that has worked for years, might just work for you.
That's a very high road to take, and as designers, we do have a responsibility to encourage our clients to become more effective, improve their process and write better content. At the same time, heavy-handed, elitist attitudes are what brand designers as hard-to-work-with snobs who care more about typography than human interaction, not a likely road to successfully winning hearts and minds of business owners. So, the outcry doesn't end there.
One recurring example is a strawman-type argument whereby painting a picture of a designer being cornered with that deer-in-headlights gaze as a room full of clients get confused and angered by this never-before-seen block of sample text beginning "Lorem Ipsum." The scene suggests lighting of torches and zombie-like board-roomers approaching the designer chanting something like, "Don't understand... must eat brains."
Back to reality (for a second) -
Honestly, to anyone who has experienced this unbelievably confusing moment with clients who think the lorem ipsum is actually intended for production… was it really that hard to clarify the misunderstanding? Did you seriously walk away from the meeting not having educated them with a ten second explanation? I’ve actually found it more confusing and distracting to try and input semi-dummy text that the client didn’t provide… “Where did you get that copy? Why would we say that? We haven’t used that word in two years, etc.”
I’ve found it a very powerful way to show clients that my role is to design, while theirs is to provide content. It very clearly communicates the much more confusing division of labor, and how their new CMS will give them the control over their site they so desire.
To the angry mob – your goal of creating a purely strategic content-driven society is a noble one, but you are ironically distracted by the lorem ipsum text itself! Focus on the real issues that plague designer/client communication, and more useful (and usable) solutions.
Finally, here's something we can all agree on: Lorem ipsum dolor sit amet... [ Note to self: replace placeholder text with actual thing we can all agree on as soon as possible. ]
Friday, September 24, 2010
Don't settle for the iPad, competition is coming soon
For anyone thinking the "single camera, no USB, can't print, can't run flash" iPad is the only game in town, the tablet market is about to get pretty interesting, hopefully before the end of the year. Don't get me wrong, with four million units sold, the iPad has certainly blazed the trail for tablets, and somehow achieved the self-proclaimed status of first-to-market. But like many consumer-facing technologies, first doesn't guarantee best. And from what we're hearing about upcoming tablets from companies like RIM, Samsung and HP, the best is truly yet to come.
While RIM will be releasing a Blackberry tablet targeting business folks, the one to watch is probably anything running Google's Android OS. This should include a Samsung Galaxy which I personally expect to rock the tablet market, or at least my cubicle's market.
Palm and Windows are rumored to also have a tablet OS, but honestly, who cares? (Sorry Microsoft, we do appreciate you inventing the technology, and Steve Jobs stealing it to get us to this point, though).
Finally, if you are still set on the iPad, be sure to follow their chatter about its next generation, also due out by the end of the year - probably to compete with the aforementioned heavy hitters running Android.
This article filed under: tech news, google tablet, Apple and What to get Ben for Christmas.
While RIM will be releasing a Blackberry tablet targeting business folks, the one to watch is probably anything running Google's Android OS. This should include a Samsung Galaxy which I personally expect to rock the tablet market, or at least my cubicle's market.
Palm and Windows are rumored to also have a tablet OS, but honestly, who cares? (Sorry Microsoft, we do appreciate you inventing the technology, and Steve Jobs stealing it to get us to this point, though).
Finally, if you are still set on the iPad, be sure to follow their chatter about its next generation, also due out by the end of the year - probably to compete with the aforementioned heavy hitters running Android.
This article filed under: tech news, google tablet, Apple and What to get Ben for Christmas.
Labels:
Apple,
tablet,
technology,
What to get Ben for Christmas
Wednesday, March 31, 2010
Top 10 Improvements for Basecamp (according to me)
Disclosure: I didn't quite get to ten, but it makes for a good title. Plus, I'm hoping for some additional suggestions from you.
Now, let me first say that Basecamp is an excellent tool helping developers and freelancers across the world create and do business more efficiently and productively (I think even happier, too). In fact, Basecamp has encouraged extensions, plug-ins and additional tools to accomplish the types of improvements we all think about. As I work in Basecamp throughout my typical work day (very efficiently and productively, I might add), I try and limit my wish lists to functionalities that truly might belong in the core app.
And as you know, I never point out a problem without offering up a solution; so you'll see those listed here, too. You are more than welcome to offer your own suggestions (in fact it is my hope that you will), so that as a community, we'll encourage 37 Signals to make some improvements to one of the best, fastest-growing collaboration & project management apps available.
1) Create Templates from Existing To-Dos.
Is there anyone first using Basecamp who ventures into creating templates before they have mastered the art of ToDo lists? Granted, you are up and going within minutes, but the likelihood is that you could have spent a great deal of time thinking though and creating a very detailed ToDo list, only to find out you have to repeat all that work (read: typing, copy+pasting) to develop a ToDo list. Suggested Solution: offer a "Create Template from this ToDo list" link on the ToDo page.
2) Allow "Who's Responsible" to be set on ToDos.
Speaking of ToDo lists, there's additional information you very well could know at the time you are setting it up - specifically, who's responsible for a given task (after all, it's a template, right?). Of course, I'm not asking to be able to set a due date at the template level (although, some not-so fancy math could allow you to set the due date of the first item on a ToDo list, then cascade due dates down to all the other items based on how much time they might take). Anyway, often times it will be the same person performing the task, and it could be changes later on the fly. It would be a time-save, especially for larger ToDo lists. I kind of get the feeling the developers at 37 Signals didn't anticipate particularly large, detailed ToDo lists, so maybe on my team, we're overachievers!? Probably. Let's move on, though.
3) Ability to create a calendar of ToDos.
Seriously, you get a calendar for Milestones, why not one for ToDos? It would be just as helpful, if not more so to the developers.
4) Switch which Milestone or Project a ToDo is associated to.
This just happens sometimes, and you need to switch. It's strange with such a flexible system, you're locked in. This would also be helpful if you had a hot idea and just wanted to get a project started without having to create a brand new category to make sure it will stay there forever. If you knew you could switch where your new list would live in the future, you might be more likely to get your ideas out quickly, and while they're on your mind - knowing you wouldn't have to re-enter them later when your team reorganizes projects. Suggested Solution: allow ToDos to be moved to a different milestone.
5) Time Tracking and Creating Reports
The Create Report functionality is not as quick as it could be. First off, it would be supremely helpful to save the state of your report criteria as you swap between dates or people. Secondly, move the "Create a Report" link from the right side, to the left. Since it's not stateful, your mose makes a two-way trip all across the screen each time you want to change days. In fairness, I think I'm being nit-picky here, but it's an area that is so useful, it makes the frequency of these annoyances ever-present. Suggested Solution: tighten up "Create a Report" interface.
6) Use a calendar control for creating Time Tracking Reports.
This one could have gone with #5, but I believe it's such a no-brainer, it deserves its own number. Instead of using TWO drop-downs that slowly do a very repetitive job, drop a nice calendar control (how about the one from the ToDo screen?) on that screen. I'd be able to spend less time looking at where I spend my time, and focus that time on the actual work! Suggested Solution: replace drop-downs with calendars when picking a date.
7) Time tracking for individual projects, ToDos or Milestones.
It's crazy how close you can get, but just can't quite make it happen. On each item of a ToDo list, you can see how much time you've tracked by clicking the clock next to it. That's obviously very useful information. So why isn't it obvious that it would be nice to see a total without breaking out a calculator and opening/closing each Todo down the list? Perhaps our group is unique in how we categorize our projects, but since the system offers the flexibility to do it that way, the report functionality should be as flexible. Suggested Solution: drill down one more step to total up time tracked on a specific ToDo list or milestone.
8) Set up multiple-person groups.
Since it's hard to report ToDos on projects where more than one person has ToDos, this would be useful. It would allow you to print one calendar of ToDos (assuming you've implemented request #3), for a project that two or more people can use. It would also alleviate the possibility of forgotten or missed ToDos since they were on someone else's list. For a quick example of this, simply go to your dashboard, then milestones. What if you wanted to coordinate two or more peoples' work for the week, but could only see one person's milestones? Suggested Solution: create multiple-person groups for tracking and reporting purposes.
9) Open attached files in a new window.
When collaborating on a project, attaching files is a great feature Basecamp already has. Launching in the same window, however, takes you away from the conversation and keeps you from easily toggling back and forth between the discussion and the file. On top of that, you may be tempted to close the window instead of use the back button - not to mention, what if there are two or three attachments to compare? It may seem like a minor annoyance, but if there is not a compelling reason to open in the same window, I'd like to see it launch a new window. Suggested Solution: open attachments in a new window/browser tab.
Now look at that, I only made it to nine!
I told you titles are just a gimmick. Again, my hat is off to the developers at 37 Signals for the fantastic suite of light-weight, yet productive tools they've created. It's a testament to their work that a conversation like this one is generated around their developer-focused tool set.
Now it's your turn. If you feel I missed anything, or Basecamp already has a solution for my complaining, please post it here.
Now, let me first say that Basecamp is an excellent tool helping developers and freelancers across the world create and do business more efficiently and productively (I think even happier, too). In fact, Basecamp has encouraged extensions, plug-ins and additional tools to accomplish the types of improvements we all think about. As I work in Basecamp throughout my typical work day (very efficiently and productively, I might add), I try and limit my wish lists to functionalities that truly might belong in the core app.
And as you know, I never point out a problem without offering up a solution; so you'll see those listed here, too. You are more than welcome to offer your own suggestions (in fact it is my hope that you will), so that as a community, we'll encourage 37 Signals to make some improvements to one of the best, fastest-growing collaboration & project management apps available.
1) Create Templates from Existing To-Dos.
Is there anyone first using Basecamp who ventures into creating templates before they have mastered the art of ToDo lists? Granted, you are up and going within minutes, but the likelihood is that you could have spent a great deal of time thinking though and creating a very detailed ToDo list, only to find out you have to repeat all that work (read: typing, copy+pasting) to develop a ToDo list. Suggested Solution: offer a "Create Template from this ToDo list" link on the ToDo page.
2) Allow "Who's Responsible" to be set on ToDos.
Speaking of ToDo lists, there's additional information you very well could know at the time you are setting it up - specifically, who's responsible for a given task (after all, it's a template, right?). Of course, I'm not asking to be able to set a due date at the template level (although, some not-so fancy math could allow you to set the due date of the first item on a ToDo list, then cascade due dates down to all the other items based on how much time they might take). Anyway, often times it will be the same person performing the task, and it could be changes later on the fly. It would be a time-save, especially for larger ToDo lists. I kind of get the feeling the developers at 37 Signals didn't anticipate particularly large, detailed ToDo lists, so maybe on my team, we're overachievers!? Probably. Let's move on, though.
3) Ability to create a calendar of ToDos.
Seriously, you get a calendar for Milestones, why not one for ToDos? It would be just as helpful, if not more so to the developers.
4) Switch which Milestone or Project a ToDo is associated to.
This just happens sometimes, and you need to switch. It's strange with such a flexible system, you're locked in. This would also be helpful if you had a hot idea and just wanted to get a project started without having to create a brand new category to make sure it will stay there forever. If you knew you could switch where your new list would live in the future, you might be more likely to get your ideas out quickly, and while they're on your mind - knowing you wouldn't have to re-enter them later when your team reorganizes projects. Suggested Solution: allow ToDos to be moved to a different milestone.
5) Time Tracking and Creating Reports
The Create Report functionality is not as quick as it could be. First off, it would be supremely helpful to save the state of your report criteria as you swap between dates or people. Secondly, move the "Create a Report" link from the right side, to the left. Since it's not stateful, your mose makes a two-way trip all across the screen each time you want to change days. In fairness, I think I'm being nit-picky here, but it's an area that is so useful, it makes the frequency of these annoyances ever-present. Suggested Solution: tighten up "Create a Report" interface.
6) Use a calendar control for creating Time Tracking Reports.
This one could have gone with #5, but I believe it's such a no-brainer, it deserves its own number. Instead of using TWO drop-downs that slowly do a very repetitive job, drop a nice calendar control (how about the one from the ToDo screen?) on that screen. I'd be able to spend less time looking at where I spend my time, and focus that time on the actual work! Suggested Solution: replace drop-downs with calendars when picking a date.
7) Time tracking for individual projects, ToDos or Milestones.
It's crazy how close you can get, but just can't quite make it happen. On each item of a ToDo list, you can see how much time you've tracked by clicking the clock next to it. That's obviously very useful information. So why isn't it obvious that it would be nice to see a total without breaking out a calculator and opening/closing each Todo down the list? Perhaps our group is unique in how we categorize our projects, but since the system offers the flexibility to do it that way, the report functionality should be as flexible. Suggested Solution: drill down one more step to total up time tracked on a specific ToDo list or milestone.
8) Set up multiple-person groups.
Since it's hard to report ToDos on projects where more than one person has ToDos, this would be useful. It would allow you to print one calendar of ToDos (assuming you've implemented request #3), for a project that two or more people can use. It would also alleviate the possibility of forgotten or missed ToDos since they were on someone else's list. For a quick example of this, simply go to your dashboard, then milestones. What if you wanted to coordinate two or more peoples' work for the week, but could only see one person's milestones? Suggested Solution: create multiple-person groups for tracking and reporting purposes.
9) Open attached files in a new window.
When collaborating on a project, attaching files is a great feature Basecamp already has. Launching in the same window, however, takes you away from the conversation and keeps you from easily toggling back and forth between the discussion and the file. On top of that, you may be tempted to close the window instead of use the back button - not to mention, what if there are two or three attachments to compare? It may seem like a minor annoyance, but if there is not a compelling reason to open in the same window, I'd like to see it launch a new window. Suggested Solution: open attachments in a new window/browser tab.
Now look at that, I only made it to nine!
I told you titles are just a gimmick. Again, my hat is off to the developers at 37 Signals for the fantastic suite of light-weight, yet productive tools they've created. It's a testament to their work that a conversation like this one is generated around their developer-focused tool set.
Now it's your turn. If you feel I missed anything, or Basecamp already has a solution for my complaining, please post it here.
Tuesday, January 19, 2010
Additional Web sites in my Portfolio
A few more samples of my work:
http://www.advisoronefunds.com
http://www.orionadvisor.com (worked as a team on this site)
Subscribe to:
Posts (Atom)