Jul 10 2008

When you’re a software developer…

You’ve got to work in teams, or at least you’ve got to work with the idea that someone OTHER THAN YOURSELF is going to be working with your code at some point. I’m sure there are some people out there developing some crazy proprietary stuff that will never release their code to anyone but the client.

I haven’t blogged in a bit, but today’s boiled my blood enough that I kind of had to.

If you don’t code, just wait for my next post.

And without further ado: Danny Iachini, since you’re the only one in the intersection of “reads my blog” and “codes a lot” (at least that’s apparent to me)

So I’m doing this project that was made awhile ago by some guy I’ve never met (thank goodness) and I’ve been plenty mouthy about my issues with this project. It’s a management system for a global company to keep track of their products and statuses and servicing and stuff like that. It also includes an RMA system. I inherited most of the code, which is script-based, and went to work patching things up and adding a few little functions here and there.

Sadly, no two coders are alike, but I think that most coders have common ideas about what is efficient, scalable, and elegant. I am working with code that is none of these things.

  1. First off my number one problem with this code, is the goddamn whitespace. For any non-coders reading this, whitespace is sort of like indenting your paragraphs in a word document. it makes it easy to read, easy to see where paragraphs start and end, and you’re quickly able to see the details when browsing quickly. Whitespace is a programmers best friend. This guy doesn’t use it. No tabbing inward, although sometimes random spaces are thrown in to sort of emulate the idea of whitespace without it being consistant at all.
  2. Now, I don’t know if this is a valid complaint, but I’ve always coded php using echos. So, in other words, I echo out what I need in the dynamic parts of the page, interrupting strings to concatenate variables into it where they’re needed. This means that I’ve got solid blocks of PHP embedded in whatever other code I’m working with. This guy does the opposite. He interrupts a huge big list of html (that all gets processed by the server) with multiple sets of php-openers and closers for things like end-brackets and if-statements. ugh. Not only does this make it ugly, segmented, and longer/more taxing than necessary, but coupled with the lack of whitespace, i have NO clue where one function will end and another begins. It’s horrid.
  3. This guy’s variable names are full of capital letters, underscores, and all sorts of other fun crap that I have to hit the shift-key for. Thanks for taking up my time because you want to be extra accurate in naming this column Product_Name instead of simply productname.
  4. The database. Ugh, I don’t even want to get into it. There’s more redundancy per table than I’ve seen anywhere lately. A good example is in the RMA system. There are flags for steps of the RMA (it being received, investigated, and returned), as well as dates for when these processes were completed. What I don’t get is why the flags need to be there. It’s an extra set of columns in the table used for determining if something had been done yet. YET you could just as easily have a script investigate that for you just by testing to see if the cell is empty or not. That’s just one example. There’s tons.
  5. Error messages are passed through request variables in the URL. When’s the last time you were ever at http://a-site.com/?I’m sorry you can’t view this page because you’re not logged in. ?? ugh.
  6. I don’t know the previous author’s grudge with more than one file, seeing as every file has about 1000 lines of crap that could easily be split into function-specific files. Instead of edit_products.php, why not just have edit_product1, edit_product 2, and so on…
  7. Well that’s it. I’m done ranting. I feel better now.

    Oh yeah there are california videos and stuff if you can find them ;)


Apr 23 2008

Decision Intensities.

Ugh, I just had to make a rough choice. This one will be fun to look at later in life, I think.

Two offers. Two great offers. It would have been so much less stressful if I only got one, but I got two, so be it.

Offer #1

  • With: The Honeywell Corporation
  • Location: Bangalore, India
  • Perks: I mean, it’s INDIA, Flight covered, housing covered, reasonable stipend on top.
  • Job Description: Development of a control system platform for industrial applications — setting up the whole system, and then running user-experience tests on the mockups and prototypes we’d make.
  • Number of coworkers: 6,000 (team of 4 or 5)
  • The Scoop: Honeywell is huge, which means I’d have a ton of resources at my disposal, and that oh-so-cohesive gooey corporate communication, with people who are actually reliable :) . I’d be doing work that I enjoy, fresh in my mind and applied from my course load this semester in something I feel I want to work with in the future. It also presents the chance to participate in the engineering process, applying some heavy compsci, and satisfying my thirst for details and technicality. In my free time I’d get to explore India, a beautiful land with a great new culture (we all know how much I love that). And to boot, I’d be there with 3 other IST students, two of whom I’ve known for years now. Awesome.

Offer #2

  • With: Ventura Marketing, Inc.
  • Location: Long Beach, California
  • Perks: Housing covered, Long beach is great, good stipend.
  • Job Description: Doing web development for numerous sites. Databases, scripting, graphics, etc.
  • Number of Coworkers: 10
  • The scoop: Working for a small Cali-based startup, flexing my creative muscles and doing small degrees of user-experience engineering. It gives me the chance to be a be a bigger member of the design community, I’ll be able to really sharpen my skills, and I’ll have a visible impact on the workings of a company that deals in my paradigm: the web.

So which did I pick?

It wasn’t easy. By far one of the hardest decisions I’ve ever had to make. I went for California. After getting council from as many people as I could, I realized that it was important for me to start plugging myself into the west coast technology scene. I’ve been abroad, I’ve done international work, and as much as I want to see India, and as great as I think I’d do at setting up that platform and studying how usable it is, it’s a process I am capable of, I already know that. Working as a designer not only exposes me to the “real”, or “professional” version of what I’ve been doing on my own, but it’s going to challenge me, I’m going to grow, and I’m going to network. Working in a web firm is going to help me get a web job, or at least I hope. People have always said that I belong in California, and I’ve had an inkling to believe them, and this is a good chance to see if the west coast is really for me.

I really wish I could have done both. Honeywell’s an amazing machine. I met one of the senior VPs last friday, as well as people that have been working in Bangalore both on and off my project. The people there breathe professionalism and skill. They’re some of the top people in the world for their respective jobs, and I am honored that they picked me for this internship, and I’m deeply sorry that I can’t be in more than one place at a time. I hope I made the right choice.


Jul 27 2006

Word to the wise

I pulled my ipod out of it’s case tonight, wanting to clean it. Since I took it to Michigan, all sorts of sand and gunk got in between the skin and the actual iPod, so I reached in for a cleaner-product that I’ve always used. Remember Goo-gone? The stuff that removes stuck-on-adhesive stuff? Well, in our house we have “Goof-Off”, which, as it turns out, is a xylene-based cleaner. What does xylene do, you ask? Well, to put it straightforwardly, it ruins iPods, and effectively at that. Xylene melts plastic slightly, so my ipod is just about destroyed. Unfortuneately, it wasn’t a ‘little’ bit of Goof-off that I used. I thought maybe it reacted with my gunky ipod crap, so I kept applying the stuff, like you would with rubbing alcohol. Thank goodness I have my skin, and that I managed to scrape enough melted-plastic off my screen to be able to read it…barely.

In that process though, I tried other things. Enough chemical fumes to wipe out a city block are floating around my bathroom/lungs. I took my dremel-tool to the plastic (I thought at first that the white melty-stuff was a residue), and I’ve tried sanding, scraping, and just about anything else you can think of that involves dragging an edge along plastic in an effort to get it off.

So, needless to say, I’m a little peeved. See, I never mind when something breaks down over time. I’d be fine if my iPod simply wore out over the course of 2 or 3 years. But when a perfectly operational something-or-other is rendered useless in about 3 seconds, with about 2 more hours of hopeless attempts to fix it, then I have problems.

Maybe I’ll post pictures when I’m done mourning. This sucks, let’s hope I can find my parts/replacement plan stuff.

Goof-off, I hate you. You did not warn me, even on the container.

argh


Jul 18 2006

The Skinny on Windows Vista Beta 2

Last Thursday, I picked up the public Beta 2 (32-bit build 5348) of Windows Vista from the fine people over at Microsoft. For those of you who have crawled out from under your rock last night to embrace technology and read my blog, Vista is Microsoft’s newest operating system. It is to Windows XP as Windows XP was to Windows 98: meaning that it’s a bigger step than just a few fixes and new logos. Vista’s a whole new redesign. One thing’s certain though, Vista will be influential, whether you use Windows, Mac, or Linux. The Vista Beta is closed now, but you can still try out the Office 2007 public beta.

I’ve heard some shady things about Vista. I remember reading a Dvorak rant (which I cannot find now) that claimed that it was created by testing chunks old XP code in a semi-new environment. If they worked, they were kept, without even trimming the extra code out of them. “Cleanup” would be done later. I learned this back when I was toying with Longhorn (Vista’s old codename) build 4008, the Alpha Preview 2; that was over 3 years now. Apparantly up until that point, nobody would stay on the project long enough to get any milestones achieved, and the process would continue. Microsoft had to usher in new coders every few months, and nobody really had a good view of what they were doing. Even now, Vista faces a delay that caused a few MS employees to demand that CEO Steve Ballmer leave the company.

Vista is crucial for Microsoft’s future. Even with the 90-some percent market control they have, they can’t afford to let the offerings of Apple and the Open-Source community gain an upper hand. The new product’s got to succeed, especially given the massive success Apple’s enjoyed since switching to Intel hardware. Since the last time I’ve played with the pre-release, I can see that Microsoft has realized just that and really kicked it into gear with hopes of delivering a ground-breaking new operating system.

With all that said, I really have mixed emotions on Vista so far. Read below for:

My Peek at Windows Vista

Installation & Setup:
Installing was straightforward. I don’t have any screenshots of it though (google images?). It works in the same way as the XP install, without the ugly blue-and-white textmode in the beginning. You are actually blessed with a cursor, radio buttons, and even a browser to locate hard drives. Speaking of, I needed to burn my SATA drivers onto a CD and insert them before the installer would recognize my drive. While I appreciate that they finally included something other than floppy support, I’m a little peeved that the installer didn’t recognize my controller to begin with. I know it’s a popular controller (it’s on an nVidia motherboard for crying out loud!) and it’s been out for like three years now, so why still skimping on the SATA recognition? After all that was done, setup was a snap. It just asked me my name and a few other questions, then I was let loose onto the desktop.

First Impressions:
All I can say is that it’s like driving someone else’s car. You know exactly how to do everything, but controls are in different places, or it just might feel different when you do something. Everything from file browsing to customizing your desktop can now be done through the slick new Explorer interface. The ways that your windows behave are also nice. MS paid some attention to visuals here. Along with fading in and out, they slide, roll, squish, etc. when manipulated. Of course, minimizing your solitaire window doesn’t really need glorified that much, but it’s a nice touch. The last thing I’ll comment on is something that hit me right away: Aero. Aero is Vista’s standard theme. Each window is bordered by what looks like slightly-frosted glass. You can see whatever is behind that glass, and it’s all hardware accellerated through DirectX 10. It does a great job of bringing your attention to the content rather than the box containing it.

Start Menu
This is probably my favorite part of Vista. I hate icons on my desktop, I have 2 right now. The Start menu / quicklaunch is my little gateway to the world. Vista’s Start menu doesn’t fail to please me. Once again, Aero gives me the pleasing effect of my menu being made out of dark glass. Hovering over items changes a large, friendly icon in the upper-right hand corner. By default it’s my account’s picture. Hover over, say, “Music”, and get an image of a folder containing a CD and musical note. Integrated at the bottom is a search-bar that you can query for applications and programs, whose results turn up in the main part of the menu, which, when not searching, holds either your default/frequent programs, as well as the traditional “All Programs” items.

Windows SideBar
Sidebar is a little spot that floats on your desktop and holds various little gadgets. Those of you familiar with OSX’s dashboard, or GNOME’s gDesklets will know what I’m talking about. Said gadgets are things like calculators, RSS readers, little notepads, etc.

Flip 3d
Flip 3d is a little application chooser that you can use when lots of windows are open. When you hit Win+tab, it clears the desktop and arranges all of your windows in a fashion that reminds me of a rolodex. You then “flip” through them using your mouse wheel until you get the desired window, clicking on it to bring it to the front. Alt-Tab also got a minor facelift, showing a thumbnail preview of each application open when switching them.

Internet Explorer 7
IE7 is coming along just fine. It’s poised to be much more secure this time around. The browser is supposedly more standalone than previous versions; no more gi-normous security risks with ActiveX (hopefully). It’s going to conform to CSS2 standards, albeit not fully (this is, after all, Microsoft), and actually support transparent PNG files (finally!). Also, IE7 supports tabbed browsing, as well as the drastically new UI it’s needed for years. One more bonus, it’s capable of showing little previews of your open tabs all on one page, they call it QuickTabs. Oh, and one final thing: IE7 Beta is available for download here from Microsoft.

Windows Media Player 11
Truth be told, to me it just looks like another version of Windows Media Player. It’s got a few new animations and a smooth new UI, but it offers pretty much all the same stuff that WMP10 does, along with the URGE Media Guide. Maybe Microsoft figured that they got WMP right and opted not to change the formula much. If you want to check it out, you can download the WMP11 Public Beta here.

Windows Games
I couldn’t help it. I had to put a little blurb here about the games. Ther’s a whole button on the start menu just for games, which loads up a nice menu containing all of your installed games. Vista’s got a nice shiny 3d chess game, Mahjong, and a new game called InkBall. All the old games come back too: Solitaire, Hearts, Freecell, Spider Solitaire, and they all got major facelifts with animations, sounds, etc. There’s also a childrens (?) game called Purble Place. It’s kind of weird. Oh, and if you were wondering about MineSweeper, it’s back and about a thousand times more fun to play.

Other Applications
Vista comes with a bunch of other applications. Most of them are pretty self explanatory. These are just a few:

  • Windows Calendar
  • Windows Collaboration
  • Windows Contacts
  • Windows Defender
  • Windows DVD Maker
  • Windows Mail (Outlook Express basically)
  • Windows MarketPlace (Launches windowsmarketplace.com)
  • Windows Movie Maker
  • Windows Photo Gallery
  • Snip Tool (Image Cropping/Screenshotting)
  • Paint
  • Sync Center
  • Notepad/Wordpad

One Final Screenshot:
Click here to see a nice High-res shot of Vista in action.

Final Verdict:

The Good:
Microsoft made this OS more user friendly without particularly leaving seasoned Windows-veterans behind. My best example of this is in explorer’s address bar normally showing something like “Tim -> Documents -> Pictures”, when clicking on it reveals “C:\Users\Tim\Documents\Pictures”, meaning that I can navigate to things easily, or see the real directory that my files are in, while others get just a logical progression of where files are rather than a Hard-drive path.

Also, they’ve included tons of useful features into the core of their OS — searching, updates, and general computer management are all more tied in with the experience, rather than separate tasks that you might run “every now and again”. All of this spells a lower learning curve for inexperienced users.

Design-wise, Vista is pretty stunning. The Aero Glass interface gives windows a signature look beyond the gray/cartoony-blue boxes of yesterday. The user experience is now much sleeker, and your desktop feels like an actual place.

Finally — it just seems easier. All the File/Edit/Help menus seem to be gone now. The top of program windows is now just an address bar and search bar. Below that are tasks customized for each window. It just feels so much better. Windows is now asking us what we want to do with what we’ve been presented with: Burning photos, Playing games, Adding Music files to playlist queues. Best of all, it’s not being annoying about it. I haven’t had to see one stupid paper clip suggesting things to me.

The Bad:
Vista is definately still in beta form. Starting solitaire can be like loading an entire Oblivion level. I sit there and listen to the pitter-patter of my harddrive clicking away for 20 seconds before I see results. Installing some programs was either impossible or extremely arduous. Microsoft needs to fix this, because if they don’t, Vista’s lack of compatible software (esp. our favorite older programs from XP/2000) will be a huge deterrent to buying it.

Vista’s also a little annoying sometimes. To delete a shortcut on my desktop, my screen flashes a warning message and asks if I (the administrator) will allow the operation to complete. While user-rights-based-operations are fine, the whole thing could use a bit of tweaking. I turned off that feature, only to recieve a baloon later from the Security Center telling me that my computer might be at risk since I turned off that permission-control system. I shut up the Security Center by telling it not to alert me for anything, yet the icon persistantly stayed in my system tray.

The Ugly:
Unfortunately, I have one huge gripe about Windows Vista: It doesn’t innovate. Nothing that Microsoft has been saying about Vista is unique. Flip 3d was just an attempt to combat OSX’s Exposé system. The little program thumbails were also borrowed from Apple, along with the spotlight-like search functions, and a few UI features such as progress bars within address bars. Sidebar gadgets are just a ripoff of OSX dashboard widgets. Windows Calendar takes a shot at iCal. Even some of the wallpapers look like re-hashed OSX ones. Worst of all: none of them are as well implemented. For example: Flip 3d just doesn’t provide the same type of functionality as Exposé, and the sidebar/gadgets take away from desktop real-estate since you cant make them fade out or away.

Even Aero, Microsoft’s biggest noticeable improvement in Windows Vista, was obviously spawned by the ideas of others. Animations are OSX-esque, while the concept of the 3D desktop has been in development by Sun Microsystems for quite some time now. It just seems like everything that Vista’s touting as far as graphical improvements have been around somewhere else before.

It’s acceptable for Open-Source software makers to do this, but when a major software corporation has nothing better to show for years of work besides a few tricks that they picked up from other operating systems, you have to start wondering why it is that they still control over 90% of the market they participate in. Speaking of that 90% — that’s what’s going to keep Vista alive. Even if the final product is terrible, riddled with more issues than can be dealt with, the fact that Microsoft has such a tight grip on the industry will ensure Vista’s longetivity. It will come standard on nearly all PCs, and stay there because people refuse to try the alternatives.

Hopefully though, this is not the case. Functionally, Vista is looking good. The finished product will be a logical progression for Windows, and the UI, while borrowing a lot from other parties, will be caught up with today’s graphical demands. It’s now up-to-date with our software experience needs. That is, of course, provided that Microsoft isn’t just lulling us into a false sense of satisfaction by using lots of eye-candy.


Jul 18 2006

Testing something

Ignore this.
Image!


Jul 6 2006

Hold up

The blog’s going to be undergoing some changes today. I’m really fed up with the current theme so I’m making my own, hopefully it’ll be mostly done today at some point. Then I can tell you all about my trip.