My brother and I just made this YouTube video of a Mac and PC ad where the parts are played by Smeagol and Gollum. Take a look!
My brother and I just made this YouTube video of a Mac and PC ad where the parts are played by Smeagol and Gollum. Take a look!
I learned the hard way: do NOT go overboard on programming projects. It is way too much work.
I spent probably seven to eight hours programming my recent C++ assignment that was supposed to be a simple menu-driven command line application. I had to overcomplicate it hower. I made a menu controller, and made it allow registering of command objects. Then, I made each of the eleven (I think...) commands as separate classes, inheriting the base command class. In addition to that, I created the model for the application (a phone book of students and staff). Further, I allowed removal of items added (not a requirement), and saving of the entries to a file in a machine-readable format, and reading of that same format (again, neither one a requirement - though writing to a human readable file was). I added support for quotes to allow values to take up more than one word. I added support for backslashes within those quotes to escape quotes.
I could have used a simple switch statement for detecting menu commands. I could have made it completely straightforward, with none of the bells and whistles I added. I didn't. It was a big mistake. Not only was the project 37 files instead of the 7 files, but it was much more complicated than it needed to be (though, much more modular and, perhaps, well-written).
This seems like an obvious and easy-to-implement feature to me. Why can't QuickLook be used from open and save dialogs? As all of the (non-Adobe) open/save dialogs are created by the OS itself, this doesn't seem like it should be too difficult to implement. Indeed, even CoverFlow could be there!
It seems like an obvious enhancement to me - in fact, I'd almost consider the lack of it as a bug. I've already submitted it to bugreport.apple.com as an enhancement.
This is weird: the Little Brown Handbook mentions, several times in a row, People Magazine. Though this may be a random choice for use in their examples, something about it struck me as odd, especially the sentence "Do your own critical reading of People or another magazine." Though the Little, Brown Handbook suggests "another magazine," they specifically mention People there. Why? (page 164, tenth edition)
Further, on page 198 (tenth edition), they specifically state, as part of an assignment, to go to groups.yahoo.com. Again, why?
These two instances look a bit like mild advertising to me. I do not know, as I have no knowledge of any deals Yahoo or People may have made with the makers of The Little, Brown Handbook. However, it is interesting (and, if these are indeed advertisements of a kind, ironic) that they occur in chapters dedicated to analyzing sources for, amongst other things, that kind of content.
Words have meaning, but music has feeling. Music is thus unattached - it is free to be interpreted in any way.
Writing usually cannot accomplish such a feat.
Some people get all worked up about computer science. I can understand to some extent - I am very into computers. But I see computers as tools to accomplish tasks, not as tasks unto themselves.
Though sometimes subjects such as compilers, etc. catch my attention, I am predominantly interested in solving problems. As I use computers a lot, these problems are often computer-based. So, I write programs and websites to fix these problems. During the course of writing these programs and websites, I find things in programming languages, database techniques, etc. that can be improved.
Thus, my goal is not computer science itself, but improving things. And computer science is a means to that end.
Sometimes I want to ask colleges: "What is it about your school that will make me not have nightmares?"
After a singularly unhelpful phone call to a college (I won't name names) I am feeling extremely depressed. The person who I talked to probably wasn't trying to be rude, but that's how they came across.
One problem is that I will be majoring in Computer Science (most likely). As of right now, I have learnt all that I know about computers on my own. As such, I am extremely good at teaching myself computer science-related fields. I do not have confidence in any college's ability to teach me better than I can teach myself. Why should I have confidence in any given college to do so?
Why should I trust any university's computer science department at all?
I have been taking a C++ course at my local community college and it hasn't been overly helpful (though the teacher is good). It has not been helpful because I already knew the language. Further, I can usually learn a language in one or two days - I do not need a course to teach it to me!
I want to retain the ability to teach myself instead of be taught. Colleges and universities should expand my current resources so I'd be better able to conduct research. Colleges and universities should guide me to produce useful and innovative technologies and products. Colleges and universities should not restrict me, force me into classes whose subjects I would learn faster and better on my own.
That is, apparently, not how colleges work. At this point, I'm more worried about finding a college I'll accept than finding a college which will accept me.
On a side note, these are courses that might be of interest to me:
Drag-and-drop is evil.
You may ask me why this is. The answer is simple: you have to keep holding down your mouse button until the drag is finished. That is unacceptable. It is too easy to let go of the button and too difficult to maneuver the mouse while holding the mouse button down.
And thus, drag-and-drop (for anything but very short ranges is evil. As is copy-and-paste.
Copy-and-paste help alleviate some of the problems of drag-and-drop, but you have to epress Command-C (or Control-C on Windows), navigate Edit > Copy, or right-click (or control-click) and press copy.
I'm a little young to have any nostalgia for anything, but nonetheless, I've got it. Awhile back, I used to write programs that created AFP (IBM printer code) and PDF (I assume you know what that is). These programs sometimes even had interfaces which allowed one to add text boxes and such to a document, and so on and so forth and such like.
Though I never finished any of these programs, looking back at them I can't help but wonder at how advanced I was. This is not easy stuff: I was aligning each character of each word while using font kerning and text formatting, and then aligning each word into lines (left, right, center, and justify) and then, sometimes even applied 3D transformation to vectorized versions of the text.
That is extremely advanced stuff. And now I'm coding websites. And that doesn't sound as advanced. And it doesn't feel as advanced. And, therefore, it doesn't feel as rewarding. I want to make a powerful program again... I haven't done so in over a year, and I'm just drooling for the opportunity... yet no opportunities come.
So which came first, the chicken or the egg? Or, in this case, the rumor or the announcement?
It seems to me like Apple tends to create products which satisfy the most popular of rumors. But are the rumors simply accurate, or does Apple actually create products based on the rumors? Is it some of both?
Perhaps the endless speculating on iDevices isn't so bad after all...
I'm Big Brother... to my programs. I'm a vicious draconian ruler over them. I'm forcing them to be simpler, to lose their complexity and become all neat and organized... is this a bad thing, actually?
I suppose making programs simpler inside is not so bad as forcing an entire civilization to begin speaking in ever-simpler words, as in Orwell's 1984. But I can't help but think - am I not being just a little bit cruel to my poor, poor programs?
Perhaps I'm not. Perhaps the comparison isn't so valid. It isn't that my programs are simple, but that the individual parts of my programs are simple. Humans are much the same way; the concepts of how the human brain works (neurons interacting) are much simpler than the actual result.
I think that this is the problem with many pieces of software. They are designed in complicated ways. I can tell, I can feel it when I run the programs: they feel clunky, old, abnormal. Some examples: Mac OS X Tiger's Finder, the entirety of Microsoft Windows, Adobe CS software... the list goes on.
Why are these big pieces of software so, so complicated? Because they are still using the same codebase as they stared with, for some of them, over a decade ago.
Rewrites (complete and total rewrites) are the best things that can happen to software. Each full version upgrade of a piece of software should be completely rewritten. Sure, programmers should be allowed to copy and paste some code here and there, but they should always redesign from the ground up the software. Only if they come up with the same design as the time before should they keep their old code base.
On a side note, I hope Apple's Finder is rewritten for Leopard. I think it might be, since it shows some signs of being implemented in Cocoa (I couldn't care less whether it is or isn't, but it should at least be rewritten). The current Finder feels clunky and slow, and is in desperate need of an update.
Wow! I've just posted a video onto YouTube. This is the first time I've ever done such a thing.
The video is about global warming. It has two basic parts. The first part simply shows several clips from various movies basically showing opinions on global warming. The second part uses Star Wars Episode III (specifically Order 66 and thereabouts) as a metaphor for global warming.
This is it:
I was reading this post by Andrew Watt, after finding it on Daring Fireball.
Andrew Watt mentions that he can't force the entire web to change their stylesheets to make certain characters appear correctly. He resorted to changing the entire font which was causing the issue.
I think I have a mostly complete solution, however. A simple stylesheet included in Safari's preferences should be able to solve the problem. Here is the stylesheet I came up with and tested on his demo:
body * {font-family: "Myriad Pro", "Helvetica", "Hiragino Kaku Gothic Pro", "Osaka", "Zapf Dingbats" !important;}
Note that this is not as complete of a solution as Andrew's, as a few situations could probably cause the "!important" to be ignored. Even so, it has the benefit of allowing me to change most of the internet to use Myriad Pro, my favorite font.
Too many programs are complicated. The prevailing viewpoint seems to be that the programs need to be complicated to have a wide feature set. Why, however, is it not possible to have both simplicity and complexity? Or rather, why is it not possible to have simplicity and flexibility?
The truth of the matter is that everything can be simple. A program might be terribly complicated and use tons of super-advanced formulas, but that program can always be broken down to one of the simplest (if difficult to use) languages: assembler. Assembler has a very small command set. How is it possible for such a language to allow so much flexibility?
The key, in my opinion, is for applications to be layered. This is already true for the frameworks for most applications; high-level elements are based on lower-level ones. The higher-level elements, however, usually lack some of the flexibility of the lower-level elements.
Thankfully, possible to expose all levels simultaneously. Use the top level, and it will be easier to accomplish the task. Use the bottom level and it will be more flexible.
Too many GUIs don't seem to understand this. They either expose hardly any options, restricting the user greatly, or expose all features at the same time, overwhelming the user with options.
Why not layer the features? Why not allow both high-level and low-level features? Use keyboard shortcuts to quicken the lower-level tasks for advanced users, and make the shortcuts modifiable. Expose the more complicated features through intuitive methods if possible - perhaps they aren't actually as complicated as they seem. Most things aren't.