Sunday, July 12, 2009

Usability

I wanted to start doing a few posts on usability. I'm a programmer as most of you know, and this is something that I have to deal with on a daily basis. When it comes to the vast subtopics that are involved in programming, I pretty much geek out on two topics: Languages and Usability. I'm not a crazy security guy, I'm not a crazy standards guy, I'm not a crazy performance guy and I'm not a crazy encryption guy (Alex :D.) I care about these things, but I don't think about them outside of work much, and they aren't a part of my job that gets me excited. I'm glad for the people that do.

For any non-programming people out there that actually read my blog: The nice thing about usability as a subject is that you can relate to as well. Possibly even better than I can. If you've ever had the crap annoyed out of you by a program or web site that did things in a way that simply did not make sense, then you can relate. I think that this covers just about everyone who's ever used software, ever.

Most of all, I'd really like feedback on these particular posts. Tell me what you think.

I'll get the first one posted soon.

Tuesday, March 10, 2009

Change The World

I wrote a poem when I was in fourth grade. I can't recite it for you now, my memory fails me. The theme, however was about how I would change the world (if I could.) The lines bounced between being trivial and being very serious. At first that was accidental, and then it was because my teacher told me to stick with it.

What makes me sad, thinking back on it was that I mentioned the Gulf war. This makes me feel bad, because I know that if I was being honest - I didn't give a shit about the Iraq war when I was in fourth grade. I cared about video games, riding my bike and to a very small extent - girls. I feel like I was somehow pressured into mentioning the war. I felt like I was supposed to care.

I don't know why I thought of this randomly on the way home from work yesterday.

I don't like being dishonest, and I never seem to forget the times that I am.

So, sorry Mr. Ostrander. I really didn't care. I think you knew that.

Monday, October 13, 2008

Progress

The day started off like any Monday. I started working and chatting with Irina in between things. Monday is the begining of my week and so often the time that I am most aware of time passing and having passed. So it occured to me that we are still waiting on the visa to progress. I double checked my email. Still nothing from the lawyers. I was kind of in a dark mood about it. It has taken all of my energy to be patient, level-headed and non-emotional about it, and I've maintained for the most part.

Still, I sighed and checked the government visa status site. Every time I've checked it, it's said that the visa is pending, and I was fully expecting to just see the same thing. The page loaded and it said that the visa had been accepted. I read it again. "Accepted."

I stared at the word on the screen. Irina's pending messages flashed in the taskbar below...

Suddenly everything fell in on me in my mind. I choked for a second and my eyes filled with quiet tears. Tears of join, and tears of all of the stress, anger and sadness being released all at once to be immediately resolved as I stared through tear-stained eyes at that word again...

"Accepted."

I gathered my composure back and told Irina. Her webcam was on, and I could see the weight being lifted from her as well.

I ran around telling everyone at work. Whether they were people who would care or not. I didn't care. I wanted to scream.

There is still more steps, but this was a big one. I feel that we can both take a deep breath now.

Friday, September 19, 2008

Post 60

The summer is fading away. Everything blew up last month. It seems to me that this is just an August "thing."

So I've been staring at the fallout. The fall out of broken hearts and widening gaps between the souls of friends. I'd like to tell you that I've made some phenomenal use of the solitude that this has all afforded me with, but I haven't anything to show you for it. There is peace in my heart.

People ask me a lot how I'm doing lately. Not because I'm looking troubled, but because anytime anyone sees me outside of official business lately, it's the first time they've seen me in a while. I've been reclusive. I've been a bit elusive. I've been answering the phone when Ira calls, and often staring at it listlessy otherwise.

So when people ask that question, I'm forced to say "Just as you expect: work, band, Irene." This is not stated in weariness or dismissiveness. It's just that all three of those topics are what you would call "a long story." It's hard to talk about work without saying much the same as everyone else. It's hard to talk about the band without sounding a bit lost. It's hard to talk about Irene without exposing the intensity of my feelings for her and making someone uncomfortable.

And really none of any of that needs spoken about. People can read it on my face.

So this is me in September. In many ways, it's the most hopeful and pleasent time of the year. This year is no exception.

What is different is that most years this is a time of closing. And now it's just the opposite. In spite of the storm described so briefly above, I find myself anxiously awaiting the changes that come with this last quarter of the year. Irene's arrival. A change to our government that I'm hoping will be the right one. The begining of a new life for me, and the ends of the preparation for that.

I stand at the edge of it all with no regrets, but no wistfullness for days passed. A calm peace in my mind, but a quiet excitement longing to scream out in joy.

Monday, July 28, 2008

Armenia Trip Four

I'm back from Armenia. As usual, I'm feeling refreshed, happy and can't seem to get the smile off of my face.

Some highlights from the trip.

Khor Virap - We went and visited this site. It's an old church with a pit that they had filled with vipers and put St. Gregory the Illuminator in. Beautiful architecture, beautiful walls, and the pit was exciting to go down into. Irina snapped some excellent photos, which one of us will post very soon. I should be able to give you a more educated bit on the background. I fully intend to read more on this, but right now I have only to go on the sights and experience. It was awesome.

Fountains - We went and saw the fountains at Republic Square in Armenia. Again, photos are forthcoming. It's hard to do justice to just how amazing and cool this was. Basically there was a series of independently operated fountains shooting at various rhythms and heights with colored lights illuminating them to make the water appear in different colors. Somehow it seemed like a visual music to me. I was kind of lost in it all for a bit. We were with Irina's friends Avag, Niko and Gabriel. Cool guys. It was great :)

Karaoke - We went out to a karaoke bar. It was pretty fun and a good time. Her friends sang beautifully. I did my old stand-by "Sweet Caroline" but it didn't come out to great as the backing music was MIDI and it seemed to me was in a different key than the original piece. Also the microphone wasn't on for the first half of the first verse. We were basically the only ones there as well. There was a separate bar area with some other patrons, but no real stage or anything. You just kind of stood in the middle of a room and read off of an overhead screen. That aside, the general ambience of the place was fantastic. Dark and comfortable. I liked it a lot. Irina had a bit of a buzz coming out of there from one big strong drink. It was funny :)

Cactus - A mexican restaurant. Good food there, and very authentic. The Jalepeno poppers are not to my liking though. They keep the seeds in and it makes the whole thing way to hot to even enjoy. Even for my tastes (and I like it HOT!) Not a great time there this time. We were rushed and we both left overfilled and kind of sluggish.

Opera House - We watched a really awesome dance show. Much of it was Armenian dances and some traditional things. To be honest, I thought that it would be marginally enjoyable. Much of the older european classical music is boring to me, and kind of predictable and derivative. As a student of music and theory, I am blasphemous to say so, but I'm being honest. The music and dance here were anything but boring and predictable. The music was rapturous, had *strong* and fantastic beats, and the dancing was with complete abandon and was both expressive and impressive in technique. My eyes were glued to the stage. I kind of missed the first half of the show as I was tired and was feeling a bit sick, but I was better after a break and a drink, and from the first song of the second half, I was entranced. Like the fountains, it's hard to explain this experience. We have some videos, which we should post. Even as I write about it, the music and dance from the first few pieces haunt me. I plan to find out what the songs were and where I can get recorded performances of them.

Goharic's - I probably just butchered the spelling on this poor woman's name. Irina will correct me on it later. We visited there, and it was very cool to see another Armenian family. There is a closeness and a respect and love between them that was something that I haven't seen around here in a long time. The husband was funny and in good spirits. The wife was charming and a great hostess. There little daughter was quiet, but attentive and smiling. The older son was his own guy, but seemed to maintain a respect and a love for his family. While I was there, I played a five game series of backgammon against the husband (and won.) Not bad for my first time at the game, but in fairness, he was giving me tutorial through the entire thing. It's a fun game, and I liked it very much. Irina joked that I would stay in Armenia then not for her, but to play countless games of backgammon with this man.

Sveta and Hovik's work - It was interesting to see where they worked. To see an office building and a pair of offices in Armenia. One really nice thing was that her mother had up some drawings that Irina had done, and some photos, etc.

Amazon - We went to this restaurant on Irina's birthday. The food was excellent. I ordered a long island iced tea that was kind of lackluster, but otherwise a good experience. Irina brought the laptop that I got her and showed a video that she had made for me (more on that later.) Good conversation, and it was nice to see her so happy and smiling and surrounded by her friends. I felt very lucky to be with her. I always do, but somehow especially at one moment there.

Vernisage - We didn't hang out for long. It was really hot and the middle of the last day. Still, it's neat to go there. This time was no exception. It's like an outdoor flea market with passionate sellers. I got a flute/recorder type instrument from an old man there, and we got a few other gifts for people back in the US.

Bass - We spent some time just hanging out back at the hotel. I love that place. For a very reasonable price you can get a nice suite with all the ammenities you would want. The staff there is all very nice and very accomodating. We spent many afternoons relaxing there in the air conditioning between our adventures. It started to feel very domestic and nice. Like we were living together. Irina said it afterwards and I realized how true it was. We watched several episodes of Scrubs, which Irina loved and made me leave the DVDs for the first six seasons :D She's been watching them since I left.

Irina's House - Obviously many visits here. It was nice. Great food, and her ever-hospitable and ever-kind family. The only sting was that her grandmother mentioned that I should learn Russian better. She's right of course, and I was sad and a bit disappointed in myself for not having grown much in my russian since my first visit. Later, Irina was out of the room and her mother was sitting and seemed to be talking about how her feet were hurting. I kind of agreed with her and it seemed that she said something in russian about me not understanding what she was saying. I might have been wrong on that one, but it made me think of it again. I need to get back to it. I'm going to get Rosetta Stone as soon as I get back caught up with things.

Gifts - Irina got me a *really* cool new phone that I'm still playing with to figure out. I need to get a new charger for it with a US adapter. She also made me a very special present :) A video montage of our photos together and some of her lip synching to "The One" as it plays throughout. I keep watching this evening and thinking of how great everything is with her. I got her a notebook, and she's having fun with it. One funny moment was when I was giving her the specs and I said that it had 3 gigs of memory. Something was lost in translation and she thought that I meant disk space and kind of said "oh well it's okay...I'll keep photos on another drive or on the main computer..." :) As you can imagine, she was happy to hear that the hard drive was actually 160 Gigs.

That's it for now. I'm sure that I'm missing some things (probably some really important things.) It's hard to put it all together in my brain right now. I always come back with memories hard to put into words, and more of a feeling and a state of being than a story.

It's hard to imagine that it's possible for me to be so, but I'm more sure than ever that I'm marrying the perfect girl.

I love Irina.

Sunday, June 29, 2008

Advice to the Young Developer Pt. 1

This is my advice to the young developer. This is targeted to pre-college age people who are interested in programming.

Choose a language and platform that will deliver results quickly.



Unfortunately, I think this is missed in a lot of other similar advice. You need to pick a platform that's going to give you useful and fun results to play with. This will maintain your interest, encourage you to quickly expand your knowledge, and most importantly be fun.

A lot of other lists/articles to the same effect will advise that you should learn C first because it's a necessary and fundamental language. A lot of people will advise that you should learn Lisp first because it's theoretically beautiful and teaches many language concepts in a pure way. This is fine and good, but for your *first* language, I think that it's more important to choose something fun and something that will excite you. Lisp and C are fun, but they are fun in a way that is easier to appreciate later.

My advise for a first language is Visual Basic.NET. Microsoft offers a free and complete IDE with everything that you need to get going in one easy to install package. Importantly, they include a designer for creating desktop and web applications visually and quickly without having to learn an entire graphics toolkit just to get a working application. The learning curve is very small, and they will both give you skills that you use later in learning other languages. Contrary to previous versions of Visual Basic, VB.NET is not particularly poisonous in terms of teaching bad habits. It's fun, easy, and you can make a usable and useful program within a week.

As an alternative, download python. This language has many of the same qualities as VB.NET, with a slightly terser syntax. The only reason why it is my second choice is that it has a smaller built-in library and does not offer a solid and standard designer and framework for creating desktop or web based applications. It can be done with separate downloads and toolkits, but it is not immediately obvious, and without a designer, you will spend more time getting up and running.


Participate in Forums and Online Communities



You can learn a lot by participating in these communities. Ask questions, read articles, and participate in discussions. Always be mindful of where you stand knowledge-wise and be respectful of others when asking or answering questions, or simply engaging in discussion.

Do not be sucked in to politics



As you participate in communities and forums about your language of choice, do not fall prey to religious arguments about programming. Many programmers have strong opinions about their craft, including those with a great deal of experience. Most of these arguments really come down to personal preference and applicability to different fields, skill sets and levels of expertise. Wasting your time arguing about opinions takes away time that you could be learning or writing software.

Be Patient, Self Aware, and Humble



Know what you know. Know what you do not know. Never feel bad about what you do not know. As long as you are improving and learning, you can only get better.

Learn Technologies as you Learn Programming



Learn about databases, learn about XML, learn about network protocols, learn about specific APIs offered for writing plugins for your favorite game or application. Use your first language as a tool to explore these technologies where possible. Try different things without worrying that your code isn't perfect.

Don't Ignore Theory



Focus initially on getting things done and making fun applications, but in doing so, do not skip over making sure that you have an understanding of what you are working with. Learning the fine details of the language and of the associated technologies is very important.

Don't buy "For Dummies" books



I'm not just talking about the "For Dummies" series. This generally includes anything with the words "For Dummies", "Idiot's Guide", "In 21 days", "Quick Start", etc. These books teach very little and give a very shallow view of the technology that they are written about. Generally, the same content that they offer can be found quickly and for free on the internet. Most damaging is the tone and attitude of these books. Programming is not something for "dummies" and "idiots" to "learn in 21 days" and "quickly start" doing professionally.

Do Buy Other Language Books



Those bigger books that look scary and out of your league actually aren't. They are what you should be buying. They generally start at the same place as the books mentioned previously but they go farther and offer a lot more insight into the workings of a language. When you are looking for a book to buy, make sure that it is a book that offers a good balance between explaining how to do things and what you are actually doing.

Buy General Programming and Technology Books



At this stage, you shouldn't be buying anything that's industry related and teaching you how to be a "professional developer," but you should be buying books on best practices, books on programming as a craft/artform, etc. I strongly advise you to buy the book "Code" by Charles Petzold. It is informative, inspirational, accessible, and will teach you a lot about what you are doing.

If You Can, Find a Mentor



Find a programmer who is smart, passionate and has some experience. Even if they can only afford you a small piece of their time to occasionally answer questions, this will be extremely valuable to you as you learn. Be respectful of their time, and always be sure to only ask questions that you can not easily find the answer to elsewhere.

Tuesday, June 24, 2008

3.5 Weeks

I'm heading back to Armenia in three-and-a-half weeks, and I couldn't be more excited. Irina's 21st birthday is coming up as well and I'll be there for that :)

I can't wait to see her. It's been six long months apart and I'm so excited have her run into my arms at the Zvartnots airport again.

I guess that I don't have much to say, I'm just sitting here looking through the tickets and itinerary for the thousandth time.