Thursday, September 27, 2007

we need a Fog Creek in Hawaii

we need a Fog Creek in Hawaii. if you don't know about fog creek, um where have you been? you better read up on them and joel right now. for those of you that know of them, i know you guys are thinking, "duh, everyone would love to work there". well, i'm young and naive enough to think that every company could run like theirs. why not? i'd like to here why you think it isn't possible.

anyway, the following are quotes from their website that prove to me that they understand software development:

  • Good software development talent is scarce. The really great developers — the ones who change the world — are hard to find, attract, and recruit.

  • We have one priority at Fog Creek Software: building the company where the best software developers in the world want to work.

  • That means management, not coding, is the support function. Management is not here to make decisions, but to get all the furniture out of the way so that software developers can do great stuff.

  • That means the nicest work environment we can get. We recently moved into a new office that was custom-designed by a top architect to be the ideal programming workspace, with private offices, windows everywhere, a lounge with a big plasma TV, and every feature a programmer could ever want. We even have twenty power outlets at each desk, at desk height. That's how fanatical we are about catering to programmers. Oh, and really comfortable chairs. We never hesitate to buy the tools we need to get our work done (dual LCD monitors are standard issue, for example).

  • We are focused on continual learning, mentoring, and education. We're not writing the same old code again and again; we're not using the same technologies for year after year, and we have plenty of time and opportunity to learn new things.


  • haha. if you are not a hacker you are probably thinking that they are spoiled hackers. well, thats how you get the best hackers. joel is doing a great job of creating a mystique. so, part of them saying all this is a marketing strategy. (ignore that for now) anyway, the thing is that they are focused on doing the best work possible. if you have the best and brightest then you are going to have the best products. i'm not sure there is an argument against that.

    anyway, fog creek is awesome. innovation is awesome. learning is awesome.

    hackystat ideas from the fog creek website
    taking the fogbugz tour shows some interesting charts. take these for example:




    the first image is cool, i don't think we thought of that in hackystat. the second image, i think we tried that with the issue version analyses. anyway, i thought those were interesting.

    visual analysis

    one of my coworkers pointed me to Tableau. interesting products; too bad it isn't open source. it highlights our ideas about a flexible telemetry visualization tool.



    Example: A single Order Date field is separated into three attributes of a visual table: Columns (year), Rows (quarter) and Colors (weekday). Without a visual table, could you have noticed that Saturday sales skyrocketed in two segments, from 2003-2004, but that the effect was restricted to Q4?

    Wednesday, September 26, 2007

    telemetry wall 2.0

    the telemetry wall was really cool for a little while. we liked to show it to people to teach them about hackystat. but for the most part, the wall was on monitor power save mode, with all of the screens black. we pass by it every day wondering would it be cool to watch a movie on a 9 monitor wall. hmm...

    i've been saying this for a while. the telemetry wall needs to be revamped. it needs to be something where people can pass by and say "oh wow, i didn't know that. we should talk more". a collaboration tool. ah, now there it is, i finally figured out how to explain it.

    it should be a collaboration tool, not just a software project telemetry viewer. so, what should be on the telemetry wall. well here 9 ideas for the 9 screens:
    1) obviously telemetry trends still can be on the wall
    2) daily project details - tabular summaries of a project (and or projects).
    3) my animation idea
    4) other types of charts. how about a spider web chart (see below)?
    5) (here are some new ideas) how about the javadoc of a recently committed package or how about actual the source code?
    6) how about a screen shot of all the current applications under development?
    7) how about showing a project schedule or release schedule?
    8) fantasy sports scores. kidding. how about a visualization of the build queue?
    9) eclipse trick of the day



    the whole point of telemetry wall 2.0 is to increase collaboration. bring ideas out into discussion. display what is going on in the projects development; the code, the product, the process, the schedule, etc. comments?

    use an IDE for crying out loud

    i had a conversation with someone in the high tech industry (i won't say who) about the quality of Computer Science graduates. He mentioned that it is really hard to find them now days. My opinion is that currently the industry is really competitive for talent. a struggling new grad probably won't get a shot in the "good" companies.

    it was also mentioned that some graduates didn't know Eclipse or any other IDEs. OMG. come on people.

    Sunday, September 23, 2007

    attack the essence

    One must attack the essence. [Brooks95]

    OMG, that is an awesome sentence. I love it. I can't think of anything better right now, it might be that I'm re-reading The Mythical Man-Month. btw, re-reading is good. I initially read man-month such a long time ago, before really having industry experience. now it makes so much more sense.

    okay, so two ideas popped into my head when i read that. here they are
  • We should come up with a list of the most awesome sentences in technology books. That would be really geeky, but really cool. Some examples could be:

    - be smart and get things done [Spolosky]
    - Tom, this is management [DeMarco, Lister]
    - Don't Live with Broken Windows [Hunt, Thomas]
    - Make your code so good that you don't need comments, and then comment it to make it even better.[McConnell]

    have more? send them to me. I want to know the author and the book so i can read it too!
  • So, of course I started to think about NSB (no silver bullet). I was thinking that I don't really care about the improved "productivity" (speed), instead i care more about correctness. often times average programmers will take a while to "complete" a program, but it contains bugs or bad design decisions. i rather improve software development such that there is only one way to implement something correctly. in other words, give a hundred programmers (of all skill levels) the same task and get the same correct solution. the variability will still be on "productivity" speed, but at least we'd get the same solution. you can do that in math, why not in software? the current problem is you give 100 programmers the same task and you'll end up with 100 different solutions at a variable productivity. boo to that i say.

    anyway.. let me think about this a little more (sleep on it) and hopefully i have something more intelligent to say about it.

    some links from the paper
    all of the links are interesting, you should read them.
  • Hawaii looks ahead to the year 2050
  • Hawaii in 2050
    2050 is important; something that i'd like to know more about. we need action now, because change is slow.

  • High-tech gender gap may be tied to software design
    As it is, the percentage of bachelor's degrees in computer science awarded to women fell from 37 percent in 1985 to just 22 percent in 2005, according to the National Center for Education Statistics, even as women made gains in other science and math-based fields.


    haha. that sucks.

  • BAE Systems: The defense never rests
    BAE Systems works to fill as many positions from within the state as possible, Aldinger said, which can be difficult even with salaries that exceed $80,000 annually. Thirty-one of Aldinger's 74 identification and surveillance group employees graduated from the University of Hawaii.

    "UH is a major target for us and we work collaboratively with them on many, many engineering programs," he said. "Our view is we are creating a center of technological skills that truly can separate Hawaii for this kind of work nationally and internationally."

    Peter Crouch, dean of the University of Hawaii College of Engineering, said the school works to place students with BAE Systems as well as defense contractors Northrop Grumman Corp. and Lockheed Martin Corp., who also have a presence in Hawaii.

    "Some of our students have gone on to do very well at BAE," Crouch said. "We like to work with companies that have a lot of UH alums."


    one day, hopefully the ics department (or hopefully one day college) will also be part of this sort of paragraph. hopefully.
  • Wednesday, September 19, 2007

    fewer computer scientists

    economist vs. computer scientist?
    so i stumbled upon this blog: http://econlog.econlib.org/archives/2007/09/economics_vs_co.html
    This is not necessarily a bad thing. It could be that in the past, in order to develop a useful computer-based product, you needed to be a computer science major. However, as computers have become easier to use and more generic, you do not need to be a computer science major to develop important applications. Think of Google hiring Hal Varian and a team of economist/quants to try to optimize its marketing by making better use of its data.

    Yes, we still need cutting-edge innovation in computer science, but that is a function of really top-flight people, well into the 99th percentile of the distribution of intelligence. College students who are between the 80th and the 99th percentile might do more good using the stuff than attempting to help out on the bleeding edge.


    haha. well this idea comes from an economist. its probably true our CS major numbers are down. but there is no correlation between that fact and his suggestion that you might not need to be a CS major to develop computer applications. haha, again to that blog.

    we are seeing (in the industry) much more competition out there. i personally would love to see more CS majors that have software engineering skills in the hawaii high tech industry. again, it is what you make out of it. read my honors thesis blog.

    yet, i see his point (at least a little). a good engineer to me is someone that loves to program and has domain expertise. so, maybe having both an economist degree and having a CS degree. or how about something more interesting that economy. say psychology, anthropology, biology, art, design, oceanography, etc. think about how cool it would be to do things like cultural modeling, design the next great visualization idea, implement better tracking systems for endangered specifies. my point of this is hacking is fun. i love hacking. i love it even more when i get to hack on things that love. it is a double bonus.

    bottom line is to learn stuff that you are passionate about. period.

    another blog about that article
    here is some other thoughts about this:
    Is It Better To Study Economics Or Computer Science? by Mike Masnick
    His point appears to be that you can pick up enough computer science on the side, but that learning economics could come in a lot more handy -- even in the technology industry. Of course, he leaves out the fact that you can also pick up an awful lot of economics on the side. I'd argue that both skills are important, and it's difficult to see one being much more important than the other. If you have a proclivity towards one, then pursue that -- but if you're really skilled, why not learn both?

    Tuesday, September 18, 2007

    Why you NEED to do a Honors Thesis

    1. Introduction

    The undergraduate Honors Thesis Program opened tremendous opportunities for me in both my educational and profession career. Before starting the honors program, I was an average University of Hawaii ICS student. I had good grades and was counting down graduation. But, I had no idea what I wanted to do after graduation. I didn’t have much experience in one specific topic and the experience I did have didn’t seem to match the jobs out there. After completing my honors thesis, things totally changed. I got accepted in to graduate school and was granted a Graduate Research Assistantship. During my RA I worked in a research lab that conducted software engineering research with companies and organizations like Sun Microsystems, the Jet Propulsion Laboratory, and other universities around the world. Now, I’m working in Hawaii’s high tech industry in a position that I believe was made possible by my work in the honors program. This may not seem like a big deal, but in this paper, I promise to prove why it is a big deal and tell you how you can take advantage of the same opportunities that I had.

    2. Why it is a Big Deal

    Who is the typical undergraduate student? It is probably you. More importantly don’t forget your 100 or so friends that will graduate in a couple of years. What is going to separate your resume from the rest of the graduating class? You all learned the same things. You had the same professors, the same curriculum, the same assignments, the same everything. You might as well all write the same resume and just replace the names.

    Ok. I am being a little too sarcastic. But, at least now you understand my point. Furthermore, Hawaii’s small but strong technology industry provides little opportunities for inexperienced ICS undergraduates. Remember that. Who would a company choose (a) a person with at least two years experience in a line of business that is important to the company or (b) a brand new ICS undergraduate who has good grades? I would claim that 8 times out of 10 the company would choose person (a). The fact is that ICS undergraduates have relatively no professional experience. Many ICS student simply do not have the time to juggle work and school. And I don’t blame them, it isn’t their fault.

    To add to this inexperience, ICS undergraduates rarely study a specific domain for longer than a semester. They, however, have an excellent education of a very wide variety of topics. ICS undergraduates’ inexperience in a particular domain is not the fault of the department’s curriculum. In fact, it is a job of the undergraduate curriculum to function as such. So don’t blame the curriculum for your inexperience. The following is the job of the different degrees; Undergraduate Degree – wide variety domain of knowledge, Masters Degree – more specialized domain of knowledge, PhD Degree – a very specific domain of knowledge.

    If you’re a sharp student you now realize that they are two types of inexperience that ICS undergraduates have: (1) professional experience and (2) domain specific experience. And, if this sounds like you, you are in for a tough time finding your dream job.

    How does a typical ICS undergraduate become experienced? You can either find a part time job; of course this job has to provide you with the right experience. Working for Zippy’s or Macy’s doesn’t count. Or, you can further your educational career by getting into and going to a graduate program. I have some bad news for you if you picked the latter. Similar to Hawaii’s technology industry, Graduate Programs are also very competitive. If I remember correctly, the Graduate School average acceptance for the University of Washington is a GRE score close to perfect. If you can’t score that high or can’t show that you possess, unique qualities then your in for tough application process. It was very humbling for me.

    I apologize once again for being so cynical. Actually, your opportunities aren’t as bad as I am writing it. But, I’m taking the Devils Advocate position to prove a point. And the point, if you don’t get it yet, is that you need to do something in your undergraduate education that separates yourself from your 100 friends by the time you graduate. Separate yourself with experience and your domain knowledge. You do this and you are better off.


    3. Take Advantage of the Same Opportunities I Had

    There is one option that a typical ICS undergraduate can take to become experienced that I did not mention yet. It is the University of Hawaii at Manoa Undergraduate Honors Program. What is Honors at Manoa?

    “For highly motivated undergraduate students, the Honors Program offers special academic opportunities; it is a valuable complement to students' academic and professional careers, helping them to realize their potential. For those students with the curiosity and the innovative spirit that create new opportunities, the Honors Program provides a place within the ordinary curriculum that fosters the extraordinary and transforms an undergraduate career into a voyage of discovery.”


    That previous statement is what Honors is all about, in a nutshell. For more information about the Honors Program go to http://www.honors.hawaii.edu. Stop reading this paper right now and click on the link to Honors Program. Read and print out all information on the site.

    Now that you know more information about the Honors Program, I’ll provide you with a little more insightful information about doing an Honors Thesis. The Honors Program provides you the opportunity to solve the problems that I mentioned in the previous section. Working on a thesis project enables (and in some ways forces) you to focus specifically on a single domain for longer than a semester. More importantly, doing an Honors Thesis Project requires you to work closely with a Faculty member, who oversees and help guides your project. So, not only are you focusing on a specific domain, you are probably doing it right!

    An Honors Thesis also has the following benefits.
    • Critical Thinking
    • Problem Solving
    • Time Management
    • Improving Communication Skills, both oral and written
    • Improves you marketability
    • Distinguishes yourself from your peers

    Don’t take only my word for it. Here are what some other students have to say (from various sources http://www.honors.hawaii.edu/alumni/testimonials.html, http://www.honors.hawaii.edu/):

    Josh Hvidding, John A. Burns School of Medicine, Biology Spring 2002

    “… one of the University of Hawaii's best kept secrets. It was like paying in-state tuition for an ‘Ivy League’ education”


    Rebekah Morrow, BBA 2005
    “I grew tremendously as a person, developed leadership skills that will forever be an asset, learned how to successfully research any given topic, refined my writing skills, and made lifelong connections with other students and faculty.”


    Roland Davis, Highest Honors in Music, Summer 2004 Graduate
    "The Honors Program was EXACTLY as a few Honors Candidates first described it to me: very demanding yet extremely rewarding. It's like grad’ school; they treat you like adults/graduate students and you have all the responsibility that goes with that...and the faculty have all the expectations that go with that too. It was a great training experience for my graduate work. Being around the best and brightest at the University of Hawaii was very similar to being with the best and brightest musicians in the world here at the New England Conservatory, where students win over 25 national and international competitions each year."


    And read these articles:

    AN EXTRAORDINARY GRADUATE: Mette Moffett

    "I dedicated my time to academics; it has taken me farther than I ever thought."

    For most, a degree with Highest Honors would be far enough. Mette, however, is extraordinary in what she did along the way to earning a B.S. in Information Computer Science: helping to invent a program that simulates a business environment, winning a research grant to develop the program, lecturing on the program in a graduate course at UHM, and co-founding a start-up internet company.


    UHM HONORS STUDENTS COMPETE WITH THE BEST

    One hundred sixty-three students have graduated with Honors degrees in this time frame, including last summer's commencement crowd. Of those who have reported future plans, 75% are either in a graduate program or a professional school or have plans to apply to one.


    4. How to start

    Ok, so the Honors Program sounds interesting, now what? These are the steps that you need to take to start your Honors Thesis:
    1. Read all the information on the Honors Program website: http://www.honors.hawaii.edu
    2. Read a couple honors theses (find them on the Honors website).
    3. Talk to a couple of Honors Program graduates (find them on the Honors website). Or you can email me.
    4. Talk to faculty about potentially starting projects with them
    5. Contact the Honors Program and get direction on how to start the program.


    5. Conclusion

    The Honors Program is definitely the best hidden secret in the Undergraduate curriculum at the University of Hawaii at Manoa. Not many students know that it exists. Now you know, but what are you going to do about it? You could do nothing at all and be the typical ICS undergraduate along with a 100 of your peers. Or you could take the challenge and start a voyage of learning.

    Friday, September 14, 2007

    current readings

    effective java
    so, i started to read effective java for like the tenth time. its is a great book. its hard to remember everything in it. but, once you review its like "oh yeah, that makes sense. hmm. i wonder if i'm breaking this rule. um.. yeah i am. i suck." thus, you need to review.

    for all you looking to improve in javadocing (mr. k, i'm talking about you), see item 28.

    on thing that i started to do was, write an article with the cool things in each item. i remember doing this before, but i can't find it. that sucks. but, i always learn better when i write things down. cause you do two things you read it, then you have to remember it again to write it down. it seems like a waste of time, but you should try it. this especially works when you do lit reviews for research. again, try it before you knock it.

    other books in the queue
    i haven't read man-month in a while. i need to finish it so i can give it to austen. then to the others at work. like i said before its a cool book. it is cool because it is so old, yet still so good.

    restful webservices. i didn't even open the fridgen book. ahhh!! it is calling to me.

    i got a cool book from my co-worker. that i want to read to.

    yay for reading. boo to not having enough time.

    shout out to austen
    i don't like reading, normally. but austen is making me want to read, so i don't suck compared to him. boo to him. haha. nah. but it is good to read.

    Wednesday, September 5, 2007

    are timestamps the unique key for all sensor data?

    aaron: how do i view the sensor data
    aaron: not the refs.
    austen: you mean the raw data on the server with out SDV?
    aaron: yes.
    austen: lemmie get you the url rq
    aaron: http://HIDDEN:9876/sensorbase/sensordata/HIDDEN-EMAIL?sdt=DevEvent
    aaron: that gets me the sensordataref
    austen: ahh
    austen: copy the ref into your go bar
    austen: that work?
    aaron: yeah.
    austen: ok
    austen: and no you can't view the data all together
    aaron: question.
    aaron: what happens if
    aaron: http://HIDDEN:9876/sensorbase/sensordata/HIDDEN-EMAIL/2007-09-05T11:33:44.046-10:00
    aaron: there are two entries at the same time.
    aaron: not possible?
    austen: collision
    austen: one is lost
    aaron: if they are different sdts?
    austen: the timestamp is a primary key
    austen: oh
    aaron: and different tools?
    austen: then its ok
    aaron: how is it okay
    aaron: http://HIDDEN:9876/sensorbase/sensordata/HIDDEN-EMAIL/2007-09-05T11:33:44.046-10:00
    aaron: that is the href.
    austen: oh
    austen: haha
    austen: guess not then
    austen: theoretically you can't have things happen at the same time
    austen: lol
    aaron: of course you can.
    aaron: editing and building.
    austen: yah yah i know im joking
    aaron: haha.
    austen: data will probably be lost in that case
    austen: that is the problem xmldata addresses
    austen: i have to generate unique timestamps if they specify the option
    austen: the bad part is the logs do not show the right time
    austen: cause you gotta massage it
    aaron: thats totally bogus
    austen: i think the cases that there will be collions are small
    aaron: haha. so.
    austen: the common one i can think of is when tools run batches of analyses and give them the same timestamp
    austen: even the editng and building example you give will give different timestamps
    austen: its to the millisecond
    aaron: again.. so..
    aaron: that seems really bogus.
    aaron: hope that we dont have the same milliseconds.
    aaron: oh well...
    austen: haha
    aaron: i'll send an email maybe.
    austen: good maybe i'll get a clearer understanding of how the data is stored
    austen: all i know is its the timestamp of the data per user
    austen: omg stop talking about hackystat. now i wanna do the reviews

    Monday, September 3, 2007

    my first v8 milestone, a visualization idea, and rant on google projects

    v8 milestone
    so, i did my first v8 milestone. i had to hack during my labor day holiday... but, it was kinda fun to get back into it. i should be able to pump out more of the other sensors no problem. i have a bunch of questions tho, see julie's milestone email for the ant sensors.

    an idea
    so... i had a hackystat visualization idea. this is a stolen idea from christoph (but i guess it shows how good his idea was). so, the idea is a graphical playback of the days or weeks activities. imagine if you will, a node graph of all the packages in the system. then we hit play.
    - the animation will show you where the active time occurred in the project, by showing some sort of flash of color.
    - the animation will show the packages (nodes) getting larger (maybe pulsate or something).
    - the animation will show the packages (nodes) degrading with lowering coverage or complexity, maybe with some sort of opacity or maybe some sort of image that gets uglier.
    is this useful? i think so. i think it might give us a good idea of what is going on in the project. i often wonder, what are the other developers doing? previously, i'd have to monitor progress by looking at daily reports or doing a weekly report. but that usually takes a bunch of clicks and looking at a few reports. telemetry helps, but when we want to get a 1 click summary telemetry isn't that great.

    google project's wiki and issue
    after working with google project's wiki and issue management. you might think that i'm getting used to it. no.. i still don't like it that much. i agree it is pretty simple. but, it seems slow and hard to navigate. two things that make it hard to use. i don't really like it so far.

    oh... btw, how do the heck do i edit the wiki pages via svn commits?