Why is Technology so Easy to Break?

Just over a week ago, a bunch of news sites were talking about a new book and video focusing on 56 Broken Kindles. Sadly, this weekend I also broke my iPod touch. It dropped and the screen shattered. I’ve heard that dropping even e-readers will cause problems to the e-ink screen. So my question is:

Why are our electronic devices so easy to break now?

We used to value durability over complete functionality. I fondly remember how I could drop my Nokia without anything going wrong, which was great! Now, to get the same protection, you have to spend $50+ to get anything near the same kind of protection for a phone and that’s assuming a truly durable case is available for the model phone you have.

I’m even somewhat lucky that I don’t have one of the newest devices where the touch functionality is built into the glass, so at least mine works well enough for me to do a backup before turning it in for repairs.

WordPress Development: Lessons Learned & Downsides

After 8 months, I have finally finished with WordPress development. I definitely learnt a lot, especially in terms of how the back end works and some more PHP.

Lessons Learned

The most important one:

know more PHP than I did.

Admittedly, I knew very little. While I have some experience programming, I only took a 2 day course in PHP. Not having to look up every little thing would have saved me invaluable time.

The other big one was definitely:

know more WordPress.

The documentation is obviously written for programmers (in most cases, those familiar with WordPress). So once again, I spent a lot of time looking things up. In this case, it was even more difficult because I usually had to rely on a couple of different tutorials and piece things together, making things work through trial and error.

Of course, I didn’t have much choice. And if there is one really good way to learn something is to be thrown into it, and make it happen.

Plugins

WordPress could really use some improvements though. One area is definitely in the plugins area. There is little to no cooperation between plugin authors, so there may be anywhere from zero to fifty plugins that do similar things, but all work differently and are of varying quality.

One of the reasons I’ve been posting a lot of plugins review is not only for my own records, but in the hopes that it’ll save other people time from looking through the mass amount of plugins. Unfortunately, because plugins come and go like the wind, plugin reviews become out of date very quickly.

Search

The one other thing I wish WordPress would improve is their search. While the site search uses Google, the plugin search is pretty bad and so is the internal built-in WordPress search. For the plugin search, you cannot refine your search in any way, and the sorting doesn’t seem to work properly.

The built-in WordPress site search (and dashboard pages/posts search) is also pretty bad. It’s organized by date and there is a plugin that allows you to sort by title, but it does full text searching and does no relevance ranking whatsoever. If it even did the minimum of “do these words match words in the title, if yes, put those higher” then that alone would be a huge improvement.

Conclusion

While I think WordPress is a great platform (and it’s open source!), there is definitely room for improvement and may not be the right platform for everyone. In comparison, for example, I get the impression that Drupal has a more cooperative and supportive community with better plugin support and development. On the other hand, I find WordPress easier to teach users.

If I had to do it again, I would definitely have taken the time to learn more about the overall WordPress framework and how different parts fit into the puzzle before diving into making the theme.

The Downsides of a CMS in Keeping Up: WordPress & HTML5

As a web developer, I cringe at deprecated code and try my best to keep up to date, which right now means familiarizing myself with HTML5 and CSS3. In reflecting on how best to update our website, I realized that with a CMS, naturally some things are out of my control.

Giving Up Control & Relying on Developers

Whether it’s the core or plugins, users of a CMS are reliant on its developers to keep things up to date. Is that lost of control worth the benefits? Generally, I would say yes, but that doesn’t stop me from wishing that the technology that we use to adopt new specifications.

WordPress & HTML5

Image Tags & Properties

I think it’s interesting that in HTML5 there is now the figure and figcaption elements. If they are taken advantage of, I think it definitely helps to parse information in a webpage and to identify text that is directly related to images.

One thing that does bother me about WordPress (which actually has noting to do with HTML5) is that it forces users to have a title, and leaves alt text blank by default. I don’t know what the best solution may be, but I would propose to insert the title text into the alt text by default and then allowing the user to change it. If they want to leave it blank, then there should be a checkbox to mark it “intentionally left blank” or something. Perhaps this could be an admin option, but I would definitely want something like that since I would really like to force our users to have alt text, but I don’t want to touch the WP core obviously.

Text Formatting Tags

It’s a bit of a minor thing and while some may argue the usefulness of the different semantic tags, users of the rich text editor would have no notion that they’re using <strong> instead of <b> or <em> instead of <i>. While I admit that even I struggle on the appropriate use of each (I have to look it up every time I think about it), if we want to see widespread adoption, then we need to get users to think about their writing and what they intend to do when using any of strong, em, b, i.

Tables

While we avoid tables and it should never be used for layouts, users will still want to insert tables to display data without resorting to an image. I’ve always wondered that WordPress doesn’t have a table insertion button even under the kitchen sink. What worries me is that then users who have a basic knowledge of HTML will insert it themselves using the HTML view with improperly formed code.

Layout & Forms

You might wonder why I’d lump the two, and that’s because, other than (using the default) comment form, both of these are dependent on a WordPress setup.

Forms will generally depend on the plugin. Similarly, whether the layout is in HTML5 is very dependent on the theme, along with many elements of accessibility.

Unfortunately, while HTML5 themes are relatively easy to find, most form plugins do not tell you whether they are using HTML5 or how much of it.

Why Not Adopt HTML5

I do realize that while there are a number of advantages to HTML5, especially in terms of structure,  it’s still in development. Working in an educational institution, it’s also more work and sometimes difficult in some cases to ensure backwards compatibility.

In particular, screen readers do not necessarily support all the new HTML5 elements and will frequently ignore whole chunks of text or have difficulty with reading links, etc. Even the newest versions of screen readers do not necessarily recognize elements and properties designed to make webpages easier for screen readers to interpret.

I would like to think that since WordPress talks about trying to be accessible that anything in the WordPress core will be updated once there is widespread adoption not only among browsers, but also screen readers. Obviously, adoption will take time though. For example, many form input types have been adopted by most browsers, but has not been adopted by IE at all (will be in IE10).

One can only hope that adoption will pick up once various part of the HTML5 specifications are ‘cemented.’

Code4Lib 2012: Conference Reflections

For those unfamiliar with Code4Lib, it is generally described as a community of computer programmers who work in information organizations, primarily libraries (2007 Code4Lib Conference Report, 2007). While geared towards programmers, the community has expanded to include many who are not coders, but have some background and a great interest in computers and technology in information organizations. To learn more: take a look at the journal, check out the website, follow the Twitter feed, sign up for the mailing list, or lurk in the IRC channel.

Pre-Conference

There were so many pre-conference sessions that I wanted to attend or at least sit in on. While some of the sessions were workshop-like where a speaker presented for (more than) half the time and there was some hands on activity afterwards, others were very much a facilitated discussion, similar to a breakout session.

The metadata session was quite interested as there were many people who were neither coders, nor cataloguers present. Honestly, I think the big takeaway at the end of the session was that cataloguers and coders need to talk to each other (not at each other) and try to understand that neither can simply work ‘magic’.

Metadata Preconference

I also got the chance to go across the river on the Microsoft Tour in the evening, where a group of us got to see prototypes of technologies they are working on and play with some of them. There were also presentations on some of the open projects they are working on, including Microsoft Academic Search, which looks like a nicer version of Google Scholar. If they get library full text linking, I think it could be pushed out fairly easily for mass use.

Washington River

Keynotes

The keynotes were so thought provoking. While Dan Chudnov’s keynote touched on his life lessons and the need for change for the conference, Bethany Nowviskie’s keynotediscussed the need for lazy consensus in our work place. Seemingly different topics, but I think they both touch on an issue that has been driving change in some organizations, or simply being ignored at others (or somewhere in between). Libraries (and other information organizations) and its people need to change and evolve in order to continually find its place among the world and how they play a role in people’s lives. Part of adapting is to attempting to keep up with the world as it changes – technological, culturally, socially, economically – but also being flexible enough to accommodate our own changing organization and work environment. While change is rarely easy, we can become so much better by embracing it.

Dan Chudnov - Keynote #1

Conference Presentations

While some of the presentations were honestly too code-centric or technical for me to truly comprehend, I learnt about new tools and got a lot of great ideas. I also realized that I should really acquire more programming knowledge and skills. I have as a result started CodeYear though I’m a bit behind.

Lightning talks are probably my favourite part of the conference since we get to hear about so many new ideas and projects that we might otherwise not hear about. As part of that, I think many will agree that the Code4Lib Japan team presented some of the most impressive projects especially surrounding the disaster relief efforts, and creating a meta-OPAC to search and provide information on all of Japan’s libraries. They also showed great courage in presenting in English (as many of us have enough difficulty presenting in our native language).

While completely nervous, it was also fun to get an opportunity to do a lightning talk myself on Processing.js, which I’ve honestly never used but am excited about having seen some of the projects made with it. Maybe next time I should do it on Popcorn Maker (if they get it into beta) or one of the projects I expect to be working on this year.

Ask Anything was also a great session where I got to ask about how others are implementing a wayfinding tool as we would like to do. Of course, the mailing list is also a great place for that, and I now have lots of reading to do (in addition to the CSS3 book I won!). Some of the presentations have also given me further ideas on what might be done (better) at our institution, and I hope to have to the chance to implement at least some of them.

Social Events


I can’t talk about Code4Libcon and not mention the social events. As a first timer, it can be tough to feel like you belong, especially when you’re the only one from your institution, so it was great that there were organized dinners/groups, especially the newcomer dinner. There was lots of great food that was eaten and awesome company to have interesting discussions. Hopefully with having chosen slightly farther places, I walked it all off! I also enjoyed the after dinner socials including the beer drink up (even though I don’t drink beer), which was a great opportunity to talk to people since there’s usually too many things going on during the day to truly have the chance.

Connections

While the presentations were great, the socials were fun, and the backchannels (Twitter and IRC) provided links and laughs, what I have taken away from the conference of the utmost importance are the connections I have made with people, whether it be to learn more about tools we would like to build, to stalk follow them because of their interesting tweets, or simply to keep in touch because I had an interesting conversation with them. Dan hit the nail on the head when he said that we come for the people. (We love you too, Dan.)

On an interesting side note, while it was not intentional, my blog saw a major spike in activity due to my blogging on the conference (peak of 590 in a day!). I honestly primarily did it for myself, but I am glad that people have found it useful and its flattering to see so many people visit. I have edited them and added as many links and presenter slides/videos as possible to help those who could not attend (and would prefer not to sit through the video archive).

Acknowledgements

This was my first Code4Lib Conference and only my second conference. I am very happy that I got the opportunity to attend, which I could not have done without the support of my supervisor and institution, and especially the Oregon State University and the Digital Library Federation who sponsored five Minority and Gender Diversity Scholarships, one of which I received. I was particularly grateful of the fact that the scholarship was not geared for students, but for those in need of funding, which frequently applies to new graduates or term employees (or both, which is where I fit in).

(Some of the) C4L12 Organizers

Thanks again to all the hosts, organizers, volunteers, speakers, A/V guy, social event leaders, and everyone else who made the conference possible. I look forward to 2013 in Chicago!

Aerial view

The Whirlwind of Getting and Starting a New Job

I got a job! Mind you, it’s a contract and not a permanent job, but I think any new graduate will agree that even that is a feat when looking only within Canada, and being at least somewhat particular about what job to accept. In light of the whole process, I thought I would reflect a little on various aspects of getting and starting a job.

Prioritizing

I think it’s important for every person to decide on what they want in a job before applying to everything. Totally common sense I’m sure, but strangely for me, it took some time to really figure out what I wanted in terms of:

  • type of position – willing to take anything? including non-professional positions?
  • location – willing to move? what regions? urban or rural?
  • type of organization – libraries only or other information organizations?
  • salary – is there a minimum amount?

I’ll not spend time on the application and interview parts of the process as I’ve covered them before in other posts. I will only say that while it’s important to be flexible, you might think about whether you’re willing to spend money on flying somewhere if the organization will not pay for you.

My Interview

My interview was a particularly interesting situation as due to the available times, I ended up doing my interview after a 10-hour flight which I was sick on, 1-hour train ride, 20-minutes car ride, and a few hours to prepare and feel better. We also had a couple of technical difficulties, but I took them in stride (always have a back up plan!) as well as I could.

I also got asked a lot of questions about things that I honestly just did not know about. JAZZ? REST? Huh? Others I knew, but had absolutely no experience in, like AJAX, ColdFusion. I admitted to being unfamiliar with them and tried to emphasize that I am willing to learn (though I felt like a little bit of a broken record by the time I was done). Still, I think the important lesson is not to be daunted by the questions, since the questions are asked of all the interviewees.

Negotiating a Contract

As a new graduate, I was very nervous about negotiating my first professional contract. Thankfully, I had just finished my management class, so I took the advice of my instructor and inquired about:

  • benefits
  • relocation
  • vacation/sick leave
  • professional development
  • higher than minimum salary by considering my student work

Some things were a simple ‘no’ as mine is a contract and not a permanent position, but then I would never have known without asking. I think the last is especially important since many graduates may think that their work as a student will not count towards their salary, and while at some organizations it may not get the same level of consideration, that does not mean it will not be considered at all.

Starting a New Job

It’s important to know where you’re going and what time you’re expected the first day (oh and knowing what to bring for HR form filling), but beyond that,  I think it’s okay to just take your time getting into it. Certainly, I’ve been a little worried especially since there are various technical things to take care of, but thankfully, people seem very understanding of needing some time to settle in.