Towards the Horizon Further

It seems there’s nothing wrong with how I did the previous semester. I’m now expecting at least decent grades to keep my status in the program safe. No worries unlike the previous semester in short.

Having IS295a as my only major subject this coming semester, I have to start thinking about the final project required of MIS students before graduating the program. I have some ideas in mind already and I thank the people at the UPOU kapehan for leaving the trails from previous discussions there. For now, I’m reading on related stuff to give me an idea on how much I would score on innovativeness, creativity and usefulness.

As for those MIS classmates from IS201 who have been asking what to expect from the next semester, I gave a rather vague answer in the forum. That is, IS215 is a lot like IS214 in terms of the requirements–4 FMA’s and a 170 multiple choice type of final exam–and IS226 is a web programming crash course. With that said, I discouraged people from enrolling in 9 units again if they already took up 9 units the past semester and found it too difficult to manage their studies among their routines.

To anyone who might find that still unclear, here’s an attempt to explain what’s in store for the student further without getting me in trouble.

While the requirements for IS215 and IS214 seems similar, the resemblance ends there. I can say that while there were tons of concepts to be remembered in IS215, there are even more concepts in IS214. However IS215 outdoes IS214 in terms of the requiring the student to think analytically. Sure there are a number of algorithms discussed in IS214 too but even those taken collectively doesn’t beat having to think of coming up with stuff given just a sequential storage and crude assembly-like language.

So if one were the I-can-remember-tons-of-information kind of person, then IS214 would be easier. If one were the I-hate-having-to-memorize-because-I-was-made-to-analyze type of person, then IS215 would be easier.

I find no point in contrasting IS201 with IS226 however. Taken per se, one is entirely different from the other. The former deals with computer ethics while the latter with Web Technologies. Sure there may be times when both disciplines overlap, (e.g. “How do I go after someone who lifted of my content?”, “How would I be liable if I use this graphic?”) but the amount of time and effort to be spent in either subject depends on the ability of the student involving different skills. IS201 is more on writing and interaction on issues while IS226 is about putting those technologies to use.

So I would imagine someone with the intention to shift to the field of IT having more difficulty learning a whole bunch of technologies and making use of them to come up with the requirements. On the other hand, I wouldn’t be surprised that the student who is almost exclusively a programmer at work would somewhat find IS226 somewhat to his or her liking.

A caveat is in order here though. I’ve been a web developer for many years prior to taking up the course but still had my share of difficulties in managing time in the subject. I may have done web applications in the past but none of those were cross-browser compatible. That’s because businesses tend to limit browser support to the most popular browser, IE, especially when a cross browser compatible site carries a heftier price tag with it or given an idea of the composition of its user base. I’m not complaining though, it makes life easier at work really.

The inexperience on web standards took its toll when I was a student of the subject though. While I already knew of the soup that’s XHTML, CSS and Javascript, it took a more rigid approach and more refinement before my deliverable passed the HTML and CSS validator at W3C. Before I forget, don’t even think of passing off that obfuscated tabled layout.

Someone new to the whole programming-the-web thing will definitely find Firefox and these plugins helpful though. Personally, I’ve used Firebug and Fireshot over there and I can say it works like a charm. Note though that it was still Firefox 2 for me then. I’m having trouble keeping my Firefox 3 sessions last long enough without crashing them so I can’t say that I’m recommending that record-setting attempt for now.

So should someone from the IS201 people find this post, (as my dashboard seems to suggest,) I hope that was more of help.

Advertisements

A Software a Day

Because of my recent crash course with the LAMP mix for a real project, I got to add another duo of softwares in my computing sleeves.

Notepad++

notepadpp.jpgI never went out of my way looking for a trusty Notepad replacement because I didn’t use it much then. When I ended up opening different file types for different scripts and file formats among others however, I knew I had to start searching.

I encountered Notepad++ in a forum back then so I decided to try it out. Among the things I liked about it compared to Notepad are:

  1. It simply has lots more functionalities. Editing’s definitely easier because of more advanced find and replace allowing the user to specify regular expressions. Another plus is the ability to split the window to allow two views of the contents of the same file.
  2. It supports various syntax of different programming languages. As a Developer, I don’t even wanna think about how much time and effort the software’s creator put into including such functionalities as reserved word highlighting and collapsible blocks of code. Luckily for this one, I’m the end user needing something for PHP, HTML, CSS, DB scripts, INI and log files.
  3. It supports a lot of plugins. Since I was very busy to install Hiew back then, the Hex Editor plugin was sure helpful.
  4. It allows me to open various files in different tabs in the same window. Ever since I have always preferred different files to be opened by the same application opened using minimal number of windows. That was one reason why I switched to Firefox years ago when I had to put up with such behavior of IE6.

Firebug

firebuglogo.jpgThe code’s there but the functionality’s not. Not surprising as it’s oftentimes been told that a rule of thumb in programming is that things don’t always work properly the first time.

Prior to Firebug, debugging web applications was so much a pain in the neck. The Firefox extension however has proven to be helpful in going about with Javascript and most especially CSS that I’d be sharing the sentiment of those guys from the review who wouldn’t be doing web development without Firebug anymore.

Another List of Development Stuff to Think About

I’ve came across several stuff which I’ve decided to collate into a whole list for the interested seasoned developer.

  1. Here’s a list of what not to do when building a website. Josiah Cole gets candid yet ruthless in his quest against web development show-offs. While I don’t agree with everything there, it still presents a pretty comical stab at some web development practices we still commonly see.
  2. Next is something seemingly trivial yet commonly neglected in web development: explicitly setting the bgcolor CSS attribute of a website to white. Here is the link to Jeffrey Zeldman’s cents as he writes in favor of doing so. Ironically, I got there from Andrew Tetlaw’s blog entry expressing the authors disapproval. As for me, while I think it is still correct to do so, (despite sounding OC’ish,) I don’t hold it against the programmer of a site if he or she does neglect to do so.
  3. AJAX is a buzz word only a web developer hiding in caves shouldn’t have at least heard of. For those interested in finding out where it’s generally accepted to try it out, you might want to check Mat Henricson’s corresponding blog entry for the 12 perfect cases.
  4. We’ve all seen that nifty snapshots of the typical life at the Googleplex, (from Time magazine if I remember it right.) Here is however a dose of stuff that somewhat doesn’t really paint the same picture, (to say the least,) inside the company’s confines. Amusingly it even had to brand itself as a “Microsoftie perspective.”
  5. Completing the list at 5 would be an interesting read for all IT players out there who want to gauge more or less how long it should take before their bread and butter line up in the IT museum. From ComputerWorld, here’s a list of the top 10 dead, (or dying,) computer skills. I wonder how long it would take before Lotus Notes and Domino gets queued up for obsolescence though.

Programming Quotes

Y2K Bug

Much as I would have wanted to pick one from the list of quotes found somewhere in Jeff Atwood’s blog entry a month ago, (or somewhere else among the pages in the links there,) I just can’t. I encountered the said blog from Jake‘s blogroll and is definitely worth a longer look.

What can I say, all the persons there prominent or unfamiliar were all astute. I guess the least I can do is to mention a few:

  • On Ethics: It should be noted that no ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would instead require him to write a DestroyCity procedure, to which Baghdad could be given as a parameter. (Nathaniel Borenstein)
  • On Whining: There are only two kinds of programming languages: those people always bitch about and those nobody uses. (Bjarne Stroustrup)
  • On Leisure: Computer language design is just like a stroll in the park. Jurassic Park, that is. (Larry Wall)
  • On Sex: Software is like sex: It’s better when it’s free. (Linus Torvalds)
  • On Natural Language: Projects promoting programming in natural language are intrinsically doomed to fail. (Edsger Dijkstra)
  • On Hacking: First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. (George Carrette)
  • On Compromise: You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time. (Bertrand Meyer)
  • On Class Struggle: Classes struggle, some classes triumph, others are eliminated. (Mao Zedong) – Note: yup, this one qualifies folks!
  • On Hell: There is not a fiercer hell than the failure in a great object. (John Keats) – Note: refer to the previous note…
  • On Orgasm: Memory is like an orgasm. It’s a lot better if you don’t have to fake it. (Seymour Cray)
  • On Buildings: If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilisation. (Gerald Weinberg)
  • On Telepathy: Computers are good at following instructions, but not at reading your mind. (Donald Knuth)
  • On Passing The Blame: Any inaccuracies in this index may be explained by the fact that it has been sorted with the help of a computer. (Donald Knuth)
  • On Happiness: You’re bound to be unhappy if you optimize everything. (Donald Knuth)
  • On Measurement: Measuring programming progress by lines of code is like measuring aircraft building progress by weight. (Bill Gates)
  • On The Rat Race: Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning. (Rich Cook)
  • On Gun Shooting: I did say something along the lines of “C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows your whole leg off.” (Bjarne Stroustrup)
  • On Simplicity: I have always wished that my computer would be as easy to use as my telephone. My wish has come true. I no longer know how to use my telephone. (Bjarne Stroustrup)
  • On Virtue: Most of you are familiar with the virtues of a programmer. There are three, of course: laziness, impatience, and hubris. (Larry Wall)
  • On Response: When someone says, “I want a programming language in which I need only say what I want done,” give him a lollipop. (Alan Perlis)

The image’s from here btw.

Random Icons Anyone

Domino LogoWhile I was finding a “cool” icon for a database I was working with, I encountered an online article from Breaking Par Consulting. It was basically about changing the database icon of a Notes database programmatically and the method applies to either a scheduled or user-triggered approach. Both are also implemented in the sample there.

When asked if “this is stupid?” The article proceeds:

I can tell you from experience that implementing this makes users want to go into the database. They want to see what the “icon of the day” is, and then they end up reading information in the database.

So in the true spirit of one successful design criterion in Web 2.0, (the design should make users want to pay attention to content,) which I’ve seen defended so many times by other web designers, I’m getting this done soon. I’m also looking forward to reading the other interesting-looking articles too.

The image here is from Jake Howlett’s blog entry, Fancy Notes Icons, btw.

Rich Text Frenzy

Lotus Notes logoI’ve been a Notes/Domino Developer for almost 4 years now yet there are still some things in the hodgepodge of Notes/Domino development that makes me sit down and take a closer look at the situation. Sure there’s notes.net but just the same I’d still nudge the old cliché in saying I’m still not perfect.

Take for instance the recent requirement for something I was working on. Given a Notes UNID of a source document, I was to copy attachments to a destination document. It seemed pretty much a straightforward coding strain for the fingers but somehow after a couple of hours tweaking the code I was able to come up with so far, I knew I had to look elsewhere so that I can enjoy the rest of the day like the typical yuppie does.

What made it somewhat difficult was that changes to the rich text field don’t show up in Notes until after it was saved, (or at least what I was made to believe in.) This and the number of times I’ve had to wrestle with that “Do you want to save” Notes prompt and getting the attachment to appear on the RTF itself got me looking at the forum. My initial search at IBM’s developer forum yielded stuff which threaded the path to where my initial output went through: copy from the destination RTF, save the document, re-open the document. What if after successfully getting the attachment in the RTF, the user doesn’t wish to actually save the document?

Thank God for Andre Guirard post after looking further subsequently long enough, (and for Stan Rogers (who if I remember it right, linked to that post somewhere in the same forum,) I came across a code that not only performs what I needed but also works from version 5.0.2 up and doesn’t require the saving of the destination document.

So from the said post:

Dim wksp As New NotesUIWorkspace
Dim session As New NotesSession
Dim uidoc As NotesUIDocument, uidocNew As NotesUIDocument
Dim doc As NotesDocument
Dim rti As NotesRichTextItem
Dim strFieldname As String
Set uidoc = wksp.CurrentDocument
uidoc.Refresh True ' do this if the rich text field is editable, to get the current contents in case user has modified them.
Set doc = uidoc.Document ' get the back-end document for the document open on screen.
strFieldname = uidoc.CurrentField ' remember the current field if any
Set rti = doc.GetFirstItem("fieldname") ' insert your fieldname here, generally "Body"
' Make your rich text changes here, for instance:
Call rti.AddNewLine(1, True)
Call rti.AppendText(Now & ": log entry.")
If session.NotesBuildVersion >= 190 Then
rti.Update ' ND6 only
Else
Call doc.ComputeWithForm(True, False) ' caution, as this may erase some field values if you have @Db functions in formulas.
End If
doc.SaveOptions = "0" ' make it possible to close the document without a "do you want to save" prompt. If this is a mail-in doc you may need to set MailOptions="0" also to avoid being prompted.
Call uidoc.Close(True)
Set uidocNew = wksp.EditDocument(True, doc, , , , True)
Delete uidoc
uidocNew.Document.RemoveItem("SaveOptions")
If strFieldname <> "" Then uidocNew.GotoField(strFieldname) ' return focus to field that was current before.

Do remember to check the important points there however.

Btw, the image was taken from wikipedia.org.