Sunday, December 30, 2007

JavaNCSS Hackystat Sensor

I just started to look at how to write a Hackystat sensor for the JavaNCSS results. A couple of interesting thoughts and issues came up.

is Resource enough?
what is a Resource in Hackystat? well, according to the Rest API Specification, a Resource is a "A URI indicating the resource (file, website, etc.) on which this sensor data was collected." Hmm.. Okay that seems fair enough. But, the problem I'm faced with is that JavaNCSS produces package, object, and method level metrics. Thus, it would be impossible to capture and utilize all of JavaNCSS's metrics.

for example, here is some sample data:
<package>
<name>org.hackystat.sensor.ant.checkstyle</name>
<classes>2</classes>
<functions>7</functions>
<ncss>129</ncss>
<javadocs>6</javadocs>
<javadoc_lines>32</javadoc_lines>
<single_comment_lines>19</single_comment_lines>
<multi_comment_lines>17</multi_comment_lines>
</package>

<object>
<name>org.hackystat.sensor.ant.checkstyle.CheckstyleSensor</name>
<ncss>67</ncss>
<functions>4</functions>
<classes>0</classes>
<javadocs>4</javadocs>
</object>

<function>
<name>org.hackystat.sensor.ant.checkstyle.CheckstyleSensor.CheckstyleSensor()</name>
<ncss>2</ncss>
<ccn>1</ccn>
<javadocs>1</javadocs>
</function>

so you see that package has some data that object does not (single_comment_lines and multi_comment_lines). and function has ccn (Cyclomatic Complexity Number). To satisfy Hackystat's requirement I'd just have to use the object metrics, which means missing out on the single_comment_lines, multi_comment_lines, and ccn. That seems bad to me.

Mapping inner classes to files
Currently, when the tool results do not provide the file path (ie provides a class name org.hackystat.sensors.ant.checkstyle.CheckstyleSensor), we do a matching to match the class name with a file. I'm not sure how that works exactly, but I do wonder if it works correctly for inner classes. Basically, would org.hackystat.sensor.ant.checkstyle.CheckstyleSensor.Temp (where Temp is an inner Class) map correctly to c:\java\svn\hackystat-ant-sensors\src\org\hackystat\sensor\ant\checkstyle\CheckstyleSensor.java?
I'm not sure it would.

JavaNCSS bug
Investigating that inner class issue, I found that JavaNCSS does not capture inner class metrics correctly. it seems that JavaNCSS doesn't report separate metrics for inner classes. i created two temporary inner classes within the CheckstyleSensor to test out whether JavaNCSS would handle it correctly. unfortunately, it seems the only metrics i get out of JavaNCSS about those inner classes are rolled up in existing elements, meaning i don't get a separate object element for the inner classes. instead, i get this:

<object>
<name>org.hackystat.sensor.ant.checkstyle.CheckstyleSensor</name>
<ncss>75</ncss>
<functions>4</functions>
<classes>2</classes>
<javadocs>4</javadocs>
</object>

the classes=2 is supposed to represent the two inner classes that i added. i suppose, one could argue that the inner classes belong to CheckstyleSensor and that should be okay to contain the metrics within the CheckstyleSensor object. But, wouldn't it be better if we could distinguish the metrics between CheckstyleSensor and its inner classes. anyway... i didn't particularly like that about JavaNCSS.


Anyway, a Hackystat JavaNCSS should be relatively easy to implement. i probably could have finished it faster than writing this blog. but, i wanted to hash out some issues that i was thinking about. in fact, i think i should bring up the Resources and mapping to file questions to the hackystat-dev mailing list.

Friday, December 28, 2007

hackystat and my outboard brain

i just had an interesting idea that branches off of what wired has been talking about a lot; an outboard brain. see Welcome to a Science Journalist's Outboard Brain and help me help you.

basically, what i want is a hackystat and outboard brain combined. this is interesting because, i can learn a lot from people's outboard brain. i can learn a lot more from "watching" them work.

imagine for example, that you knew everything that philip thought was cool and you knew what kind of things philip was working on and the processes he used to work on them. if you had that then, you'd be pretty aware of philip's intentions, his direction, and you'd learn a whole lot from that.

this is a cool concept. but, i haven't had enough time to think deeper about this.

Friday, December 21, 2007

Finding what you are passionate about

Here is a good post that kind of sums my perspective on life and work: Finding the right work (what you're passionate about) is like discovering your own soul in this universe.

"When you love what you do then it is no longer work, it becomes a way of life."


I love what I do. Our job as a company is to find the people that share a similar passion and help our current employees find and embrace their own drive. In my opinion that is what separates ordinary companies from spectacular ones. Our job as a company is to embrace passion. When you think about it, that's not too hard.

Wednesday, December 19, 2007

interview with austen ito

i have been working with austen ito for a few years now. austen is a product of our collaborative software development laboratory research lab. austen is a up and coming hacker. and in my opinion austen is one of the top software engineers for his experience in the state.

here is how this interview works. the questions that i ask are highlighted in bold. austen's responses are in italics.


Austen, you have mentioned that you knew that you were going to major in Information and Computer Science. What triggered that decision? Talk about some of the things that you did in your childhood that peaked your interests.


I'm probably in the minority when i say that I knew I wanted to major in Computer Science since I was a freshman in high school. I may not know have known what Computer Science was at the time, but I knew that software was what I wanted to do. In high school I found my way to internet relay chatrooms (IRC) using a program called mIRC (http://www.mirc.com/). The neat thing about mIRC was that it allowed you to write scripts to customize your chat client. It was there I found the basics of for loops, boolean logic, timers, conditional statements, all of which could be visually seen in the chat client.

Now that I think about it, it was actually the first place where I was introduced to Open Source Software. I used to go to http://www.mircscripts.org/archive/scripts to find scripts written by other people. I would try out scripts that others have written and hacked it up a bit to do brand new things. There were also script developer communities and teams that were exciting, scripters that I could talk to on different channels, and I even had QA testers (awesome online friends) that would test out scripts that I wrote.

I did this off and on for a couple of years. Playing on the internet in chatrooms was one of the best things I could've done because it sparked my interest in software. I didn't realize what I was doing at the time. I was just having fun creating new things and getting feedback from my friends online.


Wow, that is cool. Haha, I have no idea what you are talking about though. I had a totally different path to software engineering. Sounds like you did have a lot of fun back then learning and hacking. Are you having that much fun now that you are in the real world? If so, what makes it fun. If not, what do you have to change to get back to the good old days?

Hrm tough question. I think the definition of fun comes down to "What type of problem am I trying to solve?" When I was younger, I didn't have a real problem in mind. I would just hack away at something because I enjoyed it. It was rewarding when I got something to work, but that was the end of it. At my current job, I am working on a fairly interesting problem that has the potential to be something very useful for your customers. In the context of work hacking, developing software for a customer's needs is fun and new experience for me.

I also hack in my free time, and again I have a different type of fun. The problems that the Hackystat team is trying to solve is something that, in my opinion, can make a huge difference. I find that being a part of a software team that has the possibly of revolutionizing the way people think about software engineering is awesome. The ideal situation for me would be to combine both types of fun into work
hacking.

Now I can answer your question. I think that I am having more fun now because I am doing something useful.


I'm glad that things are going well. Moving on to our next question. Lets dream a little. Forget about work stuff and Hackystat; erase those from your mind. Now think about a project that would be the ultimate useful, fun, revolutionary, cool. In other words, if I gave you 10 million dollars to do a software project, what would it be. What is the ultimate project for you?

I thought about this question for the entire weekend... And I couldn't think of a specific project in mind. Maybe my inexperience and lack of project diversity is showing. Something that did come to mind was the business model of Joel Spolsky:

The Best Working Conditions + Best Programmers + Best Software = Profit

I would love to be be a part of a company that follows his business model. 10 million dollars would make it possible to create a startup that could make profit by depending on the best developers working on things they are passionate about.


I totally agree with the Spolsky business model. Shifting gears a little; you mentioned inexperience. So, I'll end on this last question. What things do you think you need or want to work (ie skills, projects, masters) on to grow that experience?

I think that things I need to work on in order to grow my experience is to continue working on interesting software projects. As a new developer, learning skills such as new technologies and languages are great. You can't become awesome if you don't know about those things. But more importantly, I need to work on projects that teach me other things such working in high-performing high-quality teams, learning from and mentoring others, and being a part of something great. My hope and goal is to move onto a project that will expand my abilities as a developer by working with awesome people. Working on side projects will definitely help out with my experience problem. Hacking is a lifestyle, so I need to continue to be disciplined and keep
practicing in order to grow my software experiences.

[end interview]

my comments
austen is one of the few people that i know that knew right away that software is what he wanted to do. i wish i knew what i wanted to do at an early age. i think that says something about his motivation.

austen mentioned that he isn't that experienced. i agree and disagree with his viewpoint of himself. austen is probably a far better hacker than i. but, as i pointed out to him in one of discussions "innovation doesn't really care what your code looks like". i think there needs to be a balance of both science and coding. coding horror just put this out: no one cares what your code looks like.

in any case, i think austen is doing all the right things. he is reading books, practicing his craft (coding), learning to lead, learning, etc, etc. he is on the right track; can you other readers out there keep up with him?

more clover work

i've made some progress on getting clover working and the clover hackystat sensor. i feel compelled to talk a little more about clover. here are a few of my other clover posts; implementing the clover sensor and metrics clouds.

so, the clover tool looks pretty cool. however, i'm not sure how much better it is than something like emma. one thing is certain, clover has a lot nice reports. here is an example:



that is pretty nice. i suppose that is the benefits of a commercial tool. however, i found bad sides of a commercial tool. for example, the licensing costs is ridiculous:



for some reason the forums were pretty empty. i guess it could be because of the recent buy out of Cenqua. i want a bigger community behind it.



or maybe its the cost of the tool itself. anyway, i'm not sure why no one is posting. all i know is that i would be crazy to want to buy this tool at full price.

i do think clover is a good tool and i would use it.

google reader feature requests

some ideas for google reader features

  • i want google reader to only show the subscriptions that have unread postings. this would make it a lot easier to do a "gu" shortcut and jump to the subscriptions that need reading. i want this feature. i would hack on this feature.
  • a better notification system for new posts. i like to stay on top of my readings so that i don't have hundreds of postings to sort through. i do this fairly quickly. i mark the postings that i don't care to read as read. and i leave the interesting ones unread. over the course of the week i go back and read the ones that are interesting. when using reader like that, for some reason i want to know when new postings are available so i can quickly sort through them. i find that to be a lot more efficient than waiting till the end of the week.
  • send the tags along with the posting. i wish there was away to send the tags or labels of the postings through the subscriptions. that would help me determine a lot faster whether i care about the posting or not. one could imagine a more verbose organization of subscriptions.
  • wouldn't it be interesting to see a tag or word cloud of the postings that you star or share. now that would be interesting.

    those were some random ideas that i made up in 5 minutes. its rather interesting that i can do that so quickly. that indicates to me that google reader is a good application. its good because i see the potential. its good because i want to use it. and its good that i want to use its future features. if you think about the application that you are working on for work or as a side project and you can't generate a list like that, then i would argue that it isn't that interesting. or worse yet, your application lacks a direction.
  • Tuesday, December 18, 2007

    i got 2 people to use google reader today

    inspired by google readers new friend shared feature, i set out to get people to use google reader and share stuff. i got two friends to try it out. yay!

    how come i'm all excited? i'll tell you why.

    i've been trying to get people to share (via reader) what they thought were interesting for a long time. i thought that writing things in my blog was good enough; for example, twitter, sharing, and hackystat goals. but for some reason, i didn't get through to people (people that actually read my blog). it took some manual coaching and the fact that the google reader had a lot of hipe up this feature helped a lot too. i think the key thing was the manual coaching that made the difference.

    i really think sharing things like this sets a foundation of getting to know someone in a distributed collaboration. meaning, that i know what kinds of things that the person likes and thinks is interesting. i learn a lot from people just by looking at what they share. and this really ties in nicely with what the wired folks are doing with their help me help you idea. as a side effect, i'm exposed to so much more than i ever will find out by my self. like i've been saying its like a 10 second vignette of knowledge.

    lastly, i made this up the other day. i sent my non-google-reader friend some interesting links the other day and told him you owe me 5 interesting links next time. i call this link debt. i share you share kind of thing. i think that is a really cool idea.

    anyway, i think sharing is a really good concept. google reader has its flaws but its still pretty useful. i enjoy learning about others through this sharing concept.

    Sunday, December 16, 2007

    geosearch


    energyshortage's use of google earth is an example of something similar to what i had in mind in things i want from google.

    imagine for a second that you searched "energy shortage" in google. up popped up a google earth representation of all the instances of energy shortage "events" around the world. instantly you would see how expansive the concept was. if there was only energy shortage events in america and there 50, then not so bad right? but what if there was 50,000 only in america, then that would probably be bad. geosearch is a way to understand the context of what you are searching for without having to read text to figure it out.

    wow.. that is cool. see, i have good ideas!

    Saturday, December 15, 2007

    think about things other than code

    bill gates (http://blog.wired.com/business/2007/12/bill-gates-the.html):

    I don't think you can overemphasise the importance of having a good background in maths and science. If you look at the most interesting things that have emerged in the last decade - whether it is cool things like portable music devices and video games or more practical things like smart phones and medical technology - they all come from the realm of science and engineering.


    writing code isn't everything. math and science equals innovation too. i really believe that.

    help me help you

    i was reading some of the Wired blogs like Epicenter and Wired Science (actually two of my favorite blog sources), when i stumbled upon a "help me help you" idea.

    basically, it all started with Alexis' attempt to provide transparency into his thinking. he decided to do that with sharing his "shared blogs", his twitters, and facebook page with his readers. he challenges his readers to help shape what he writes about by learning more about the things that he thinks about. (read about it here; My Outboard Brain Is Your Chance to Shape News).

    that was an interesting idea. he is basically saying "help me help you". he wants his readers to understand who he is by viewing his interests. and he wants his readers to help him understand what they are interested in by hopefully creating a community of collaborating readers.

    the other wired bloggers followed his lead:
    There's a serious point to this. Journalists are no longer the gatekeepers of the news. Instead, we're hubs -- conduits -- and we'll succeed to the extend that we're able to facilitate the flow of information. We think tools like Facebook, Twitter and LinkedIn can help us do that better.

    And yes, this is one big experiment. We don't have all the answers.

    this is cool. it is cool because they are trying to use social networking technology to create something other than just social networking. this is something i've been trying to describe in my posts. my point has been that social networking is pretty much meaningless entertainment, unless it is applied to "something bigger". in this specific case, i think it is cool because they are taking "sharing to a new level".

    Thursday, December 13, 2007

    re: Encouraging people to contribute knowledge

    the official google blog put this article out today, encourage people to contribute knowledge

    the blog is very interesting and it has some of the things about sharing that i've been talking about for a while:

    There are millions of people who possess useful knowledge that they would love to share, and there are billions of people who can benefit from it. We believe that many do not share that knowledge today simply because it is not easy enough to do that. The challenge posed to us by Larry, Sergey and Eric was to find a way to help people share their knowledge. This is our main goal.


    the article quickly turns into an advertisement for something similar to wikipedia; and i didn't want to highlight that. thats too bad because i thought they were on track when they said, ""knol", which stands for a unit of knowledge", which is similar to my thought about 10 second vignette of knowledge. in that sense i think they might be falling short of their mission. wikipedia, and i guess neither will knol, doesn't really capture or encourage sharing. i suppose, it will initially, as people generate content. after a while you have a critical mass of things and then it will just sit there. anyway, i think the google blog identifies a very worthwhile goal, but i'm not sure their solution really attacks the problem as much as it should.

    anyway, i was really excited for a little while after reading the first couple of paragraphs, then said to my self, "oh my they are copying wikipedia". in that sense i guess it was a disappointment.

    don't be afraid to speak up

    (i have been doing a lot of self reflection lately.)

    one of the things that i keep on noticing is that some people are quiet, some people say things, and some people say interesting and thought provoking things. i notice that people that speak up, are more recognized for their thoughts. duh... the opposite is true, people that don't say anything aren't asked for their thoughts.

    i think i speak up and i think i say interesting things. well, that is my goal. i don't care if i'm right or wrong. its the learning experience of being able to share my thoughts and being able to communicate it effectively that drives my out outspokenness.

    the other day at work, a consultant pointed out that i ask a lot of very hard questions. that made me feel good; because that demonstrated my level of understanding and being able to push that understanding to new levels. after a little while of feeling good, i reflected...

    i began to think about other people. i began to think about who (taking a cross section of all sorts of people that i know) also asks interesting and thought provoking questions. i began to categorize these people. i noticed some interesting things.

  • people that ask more of the interesting things are able to think outside of the box
  • people who don't really speak up, probably wouldn't be able to write their thoughts out either.
  • some people will dwell on what they know really good; asking sometimes inappropriately detailed and irrelevant questions.
  • people that ask good questions are able to draw their knowledge from varying sources; making connections that other people cannot.

    those are just some of my observations about other people. i speak up a lot of times, because i just want to know more about things. my bottom line is that i want to learn, and i want to be able to practice my communication skills, and my thought process. i get better at that sort of things every time i ask a question. every time i pose a question, i challenge myself to ask a thought provoking question. i challenge myself and i challenge the presenter, meeting group, or whoever the question is directed at to be my level of thought process.

    here is a big hint. asking good questions is one of the better ways to demonstrate that you can critically think about concepts. this is a very good thing to show off. :) especially in interviews, to your supervisors, and to anyone else that will notice.
  • Tuesday, December 11, 2007

    a crazy hackystat idea

    i gotta start heading out of work, but here is a quick crazy idea.

    what if the hackystat user interface lived within something like apache lenya or ning. i don't think that is realistic, but what i kinda like the thought. applying hackystat to social networking instead of applying social networking to hackystat. anyway, that is random thought, but maybe it can jump start some brainstorming about what kinds of specific things software developers want in a "collective intelligence hackystat system.

    Monday, December 10, 2007

    my new favorite company - palantir

    palantir is one of my new favorite companies. not only do they say the right things, i actually like what they do. first, here is what they say.

  • Your Are Brilliant, We are Hiring
  • We stand for elegance, beauty, and ease of use in industries that have traditionally been underserved in all these areas.
  • Analysis is fundamentally collaborative. When looking for signals in gigabytes of noise, isolation is a recipe for missed discoveries. An organization that can share the right information between the right people is far more intelligent than the sum of its parts.
  • we live and breathe good software. Even as we tackle problems from the domains of finance and government, we are driven by our roots in technology. We are top technical minds who get things done.
  • It's also true of our people - one brilliant coworker is worth ten above average ones.
  • Change the world through new ways of exploring information.
  • Brilliant, social teammates who are some of the smartest people you'll meet anywhere.
  • Flat, meritocratic structure means the best idea wins. Make a big difference on your first day.
  • Stock options in a company with real revenue and tremendous growth potential.
  • Beautifully engineered products that our customers love.
  • Well-funded startup environment with full salary and benefits.


  • wow, that is some cool statements. imagine if they actually believe and do those things. anyway, palantir is pretty cool.

    now on to the thing that i beginning to love about them. check out this blog post: Palantir: so what is it you guys do?. there is too much in the blog post to summarize. but here are some interesting points.


  • we specialize in analysis.
  • analysis is everything necessary to extract insight from information
  • the analyst (human) should be in control.
  • summarize large data sets (machine learning, statistics)
  • visualize large data sets
  • iterate rapidly - ask question, get answer, ask a variant question
  • collaborate with other analysts effortlessly
  • hardest part is data modeling, figuring out what data type are relevant to a domain.
  • Data modeling, data summarization, and data visualization are the core disciplines for approaching large data sets. Human-driven queries, rapid iteration, and collaboration are multipliers, taking the power unlocked by the core disciplines to the next level. When these pieces are brought together in a coherent system, the result is in an analysis platform both very generic and very powerful.
  • welcome to the future of analysis.


    WOW! this is the kind of stuff i have been thinking about for hackystat. we need some palantir approach to our hackystat analyses. this realization of sophistication is what makes analyses useful. information (the data) is meaningless if we don't understand it. to me, palantir is all about making meaning. that is a cool concept. they are insight providers.

    so... i think hackystat could use several things:
  • interoperate between levels of information
  • summarize large datasets, but also provide fine grain details when needed
  • make connections to others in the project team.
  • provide feedback
  • provide context
  • data mine to help find useful information
  • iterate over analyses and reports
  • share charts, comments about charts, usefulness context,
  • publish reports based on analyses
  • push out awareness
  • etc, etc.

    i like the idea of a palantir approach to hackystat. hackystat provides information. a palantir approach to the analysis provides meaning. simple charts and tables or even fancy charts and tables just doesn't cut it.

    palantir has an approach, i wonder if it will work. if it does, it will be the future of analysis.
  • re: ICS or EE

    one of my friends posed this question: "i was thinking about transferring to ICS from EE, what do you think"?

    here is my generic answer:

    companies needs management that understands about software development. in my opinion, a lot of companies are missing that. companies that have that sort of leadership probably has a culture that has good software practices. so, i think that you can grow those skills and use it when you lead your company. but, that is the important part. you need to use it to lead your company. that means creating policies and management procedures that rock star programmers feel that they can thrive in your company. that means understanding how developers think and what drives them. in my opinion, i think only people with software development expertise knows how to do that.

    on the other hand, i think, going the engineering rout is equally important. companies need subject matter expertise. and that is equally important. engineering offers so many other subject matter expertise that ICS cannot provide. (just think if they combined curriculum's. that would be awesome). in my opinion, a rock star would "rock" either major. EE guys are awesome too.

    both opportunities will teach you how to conduct research and to critically think about problems. that is the most important aspect of any masters or phD education. it is the quest to write down your ideas and evaluate them objectively and subjectively that is most important. in addition, growing leadership skills, communication skills, and "knowledge skills" are really important. so one needs to focus on that.

    i don't think picking one major or the other will vastly change your ability to make an impact. its more about what you like and what you enjoy learning. one or the other are fantastic opportunities.

    i just personally like the software engineering problem more than i like something like signal processing. my belief is that software is going to revolutionize the world once more of us attack the essence of software (read the mythical man-month by fred brooks if you don't know what i'm talk about).

    anyway, back to you.. i think you have a wonderful opportunity to learn about solid software engineering practices (from Dr Johnson) and actually putting them in place; by sticking with ICS and using your position to make difference in your company and in the industry. that is just my 2 cents.

    either way, i know it will be an awesome experience.

    Saturday, December 8, 2007

    re: My Resume Objective Is Crap

    austen wrote a interesting blog about his objective statement. based on what he wrote, i have some additional comments.

    how about this instead:

    i value work environments that value developers over products, science over marketing, and innovation over the bottom line. in this environment the development team can write software that is revolutionary and will make a difference. As a software engineer, i strive to create software products of the highest quality and i am determined to find a work environment that matches my enthusiasm.

    well, that encompasses things that i strive for. but, i believe you are interested in similar things

    in fact, one needs to figure out a mantra. now that is a cool idea. what is your personal mantra. thinking for 20 seconds, my mantra is "quality innovation" or maybe its something like "world changing" . haha something like that. i think a problem that i am currently struggling with is trying to find my personal mantra.

    once we figure that out.... one needs to determine whether the work environment has people with similar aspirations, mantras, motivations, determinations, skill, etc. in addition, whether those same things are valued by the company by creating policies, organization structure, projects, etc where those people can strive. it is all connected. people and companies need to understand that. companies like fogcreek, google, and it seems like even atlassian is getting there.

    Saturday, November 24, 2007

    sicko, google, and grass-tech-roots

    sicko
    i just finished watching SiCKO. great movie. i don't care if it is potentially one sided. at least moore is sticking up for what he believes in.

    there are a couple of things that bother me about these types of films:
  • a movie like sicko doesn't get into the mainstream. that is crazy to me. a quick little story: i bought an inconvenient truth DVD months after it was released (but i really wanted to see it, but never got around to buying the dvd), thinking that everyone should have heard about the movie by now. i went to a family party and asked, "hey, i just got inconvenient truth, what did you guys think of the movie?" to my surprise, only one family member knew what i was talking about. i was shocked. so, i went to work and asked the same question. this time a few more people knew about the movie, but some where completely oblivious to the who thing. wow, i said to myself. people just don't pay attention to this kind of stuff. hmm...
  • critics... there are too many critics. blah, blah, blah... i just happened to read the readers reactions to al gore winning the nobel peace prize. i hate critics (haha, irony). they say "blah blah blah, gore sucks, blah, blah, blah". instantaneously, my brain translates that to "haha, haha, haha, you suck way more, you dumb critic, haha, haha, haha". like i said earlier, at least gore is trying to do something. even if it really does suck, then you, for not doing anything, must suck way way more. thats how i feel. just take these movies for what they are worth - the entire purpose is to raise awareness - and gore did an excellent job.

    anyway, back to sicko. sicko makes me feel like america is the odd ball. i get the "why can't we just get with the program" feeling.

    google
    google is the exact opposite. google is the odd ball, but in a good way. i get the "why can't every company be like google" feeling. this is strange, because almost everything google does seems to be open to the public. google is awesome because of what we hear about them is awesome. (haha, why can't yahoo copy that? why can't anyone else copy that?) for example, they they focus on global justice. here is a cool quote:
    "Imagine somebody saying, 'You know, our greatest asset is our employees,'" said Cohen, a political theorist and professor of political science, philosophy and law. "Imagine, number one, that it's true; and number two, that they take it seriously. It's as if that's what's going on at Google. I don't think any company has done this.

    (i took this a little out of context so you'll have to read the whole article yourself) imagine a company taking its employees seriously. wow, what a concept. here is more:
    "It's been a unique experience to figure out how a company like Google could make a difference,"


    "We want Googlers to understand the issues," she said. "A lot of times we probe speakers about how Google can help. Googlers are always coming up with solutions."


    you know what, i'm sick (sicko... haha) and tired of hearing that googlers can do this and can do that. why can't i! why can't every company have a .org (as in google.org) associated with it.

    anyway... google seems like the best place to work for many many reasons. haha, one of my friends couldn't come up with one reason why he worked at his company. boo to that. why can't his company be awesome like google? is it impossible? does google have the monopoly one awesomeness? i think not.

    tom hanks
    so, i found out that tom hanks has a myspace page (haha, i found that out by watching oprah). anyway, what kinda started this whole blog was that i was noticing how people are using tech to spread the word. a kind of grass-tech-roots kind of thing. sicko and inconvenient truth did it with blogs, comments, votes, badges, etc. tom hanks does it with myspace pages. so does leo - and i was reminded about his film the 11th hour. grass-tech-roots (i just made that up) is cool. grass-tech-roots is the kind of thing i was hinting at before in my previous post.


    another anyway...
    i'm not getting all political on you... but i think the google article puts it best. "Think Globally, Act Googley." that is awesome.
  • Monday, November 19, 2007

    is everyone frustrated?

    i often get frustrated with technology. frustrated that people don't think of better use cases, additional use cases, and identify that special piece that could make something great. after a short period of frustration, i sit back and wonder why i just got so frustrated. i wonder why doesn't these things bother other people. i feel like the only one that realizes that this sucks and that it could be so much better. being frustrated with technology isn't good. its frustrating that its so frustrating.

    well, come to think about it... i get frustrated a lot with a lot things. and yet i get over it so quickly.

    Sunday, November 18, 2007

    implementing the clover sensor

    i just finished an initial implementation of the hackystat ant-based clover sensor, which process the xml clover report to send to hackystat. as usual creating an ant sensor is pretty easy assuming that the report that the tool creates is in xml and makes sense.

    here are some issues that i came across.

    different attribute names
    after writing the sensor, i noticed that the attributes names are different than emma's. for example, clover generated Coverage data has statement_Covered and statement_Uncovered. however, emma generated Coverage data has line_Covered and line_Uncovered. i addition, because there are no required attributes (other than timestamps, type, etc) the Coverage DPD needs to be "oblivious" to the different granularities. this all brings up issues with DPD implementations, will the DPDs contain the last snapshot per tool? if a project uses multiple coverage tools, you might have a random sampling of last batches in the DPDs coming from different tools. that would make it really hard to use the DPDs over time. it seems that the generality of everything that is going on is going to make it harder for the analysis writer or even user to know what is going on, because they would have to know about the details. i thought the whole idea of the abstraction hierarchy was to make "abstractions". let me just throw this out as well, what if we wanted to combine emma's coverage values and clovers coverage values (they are a different set). there is no way to do that.

    issues with the clover ant task
    it actually took longer to configure the clover tool with the ant tasks than it took to write the sensor. in fact, i wasn't able to configure the ant clover tasks the way i wanted. so, technically i'm not done. for some reason i wasn't able to clean before doing the clover-setup task. i don't get way that is. but, i won't bother with it for now.

    our test cases are junk
    i need to work on those test cases. basically, i think following this will help.

    clover can send filemetric data
    clover's data looks like this:

    <metrics classes="1" methods="18" coveredmethods="7"
    conditionals="36" coveredconditionals="11"
    statements="141" coveredstatements="77"
    elements="195" coveredelements="95"
    ncloc="270" loc="456" />

    to me that looks like coverage data and filemetric data. so... would it be wrong to send both?

    Saturday, November 17, 2007

    chat about smart snapshots

    the hackystat gang just finished up a long thread about large datasets in DPDs. i fought long and hard in that thread to no avail. but, i understand the competing idea and don't necessarily think its bad. both solutions have its advantages and disadvantages.

    through chatting i kinda uncovered something else that i kinda don't like. a disadvantage in my mind - but not necessarily wrong. here it goes:

    aaron: where is the smart snapshot?
    aaron: the smart thing is going in reverse order?
    austen: right. since snapshots are the latest data set
    aaron: so you get thirty minutes chunks.
    austen: ya
    aaron: but what if the timestamps just so happen to span across the thirty minutes?
    austen: then u would be done
    austen: im not sure wut u are getting at
    aaron: hm...
    aaron: timestamp 1:59
    aaron: timestamp 2:00
    aaron: timestamp 2:01
    aaron: all part of the same runtimestamp of 2:04
    aaron: if you get timestamps from 2:00 - 2:30
    aaron: then you are missing part of the data.
    aaron: you have no idea whether the data actually spans more than 30 minutes.
    aaron: the batch could be hours and hours long.
    aaron: but the runtimestamp could be at 2:04
    aaron: you'll never know when to stop.
    aaron: so, i'm saying that algorithm is an approximation.
    aaron: unless there was a way to say get all data with runtimestamp = 2:04
    austen: wouldn't u just loop backwards till u find the end of the snapshot?
    austen: within the specified time span
    aaron: when do you know its done?
    aaron: what is all the data?
    aaron: theoretically you'll never know if you are done.
    aaron: in practice i guess you could say if i don't get any data in the next bucket i look at then i guess i can call it done (aprox).
    aaron: still don't get it?
    austen: u know its done when u are getting data whose run time is different.
    aaron: not.. necessarily.
    aaron: because batched data can be mixed right?
    aaron: you could be sending data simultaneously
    aaron: from the same user
    aaron: intermixing data with different runtimestamps but very similar timestamps
    austen: if its from the same tool invocation , the sensor will send runtimes that will be the same
    austen: so no
    aaron: what...
    aaron: what if i had two windows open. run full-build at the same time.
    aaron: the windows one is a better example.
    austen: are u saying that it is broken cause the data will not be ordered?
    aaron: the data will be ordered but based on timestamp
    aaron: not runtimestamp
    austen: yah. ok I see
    aaron: basically we are doing approximation.
    aaron: we are hoping that the 30 minute chunk has all the data.
    aaron: and that it didn't actually span over 2 hours
    aaron: becasue there is no way to actually know if it spanned over 2 hours
    aaron: which is fine... i suppose.
    aaron: that is what happens when you have smart on one side and not flexible on the otherside.
    aaron: we need smart and flexible to be optimized and exact
    aaron: right now we are sort of optimized and approximated. which is fine.. but people need to understand that is the case.
    aaron: and it will be harder to debug if the approximations aren't that great.

    to sum up, the current "smart" snapshot idea will definitely speed things up a lot. however, i think there are scary disadvantages. it is an approximation - theoretically you have no idea how big snapshots are. so, when can you actually stop? in this method the be exact you would have to search the entire day to be sure you have every single data point. but, we probably won't do that. in fact, i think people will implement it differently. so there will be different approximations. that might be bad. approximations might make it harder to debug. but on the other hand, it isn't wrong to do approximations.

    anyway... that is all i have to say about that. i'm hoping that the performance issues will be solved pretty quickly with the methodologies that we are adopting.

    spreading good things

    free rice
    because of my recent post about the XO laptop, someone mentioned that Free Rice is also a good cause. check it out.



    haha. those words are hard. try it out and send this to a friend. andrea has already beaten my top score. i guess i suck.

    green your work
    from treehugger.com check out how to how to green your work. i like the suggestion of satellite offices to reduce commute waste. i'd bet that could work out cheaper for some companies. imagine making a 3 people small offices in wahiawa, ewa beach, kapolei, waimanalo, etc. i'd bet it would be cheaper than renting one big office in downtown. not to mention instantly improving the quality of life for your employees that live in those areas by saving hours of commute time everyday!

    Friday, November 16, 2007

    one laptop per child

    i know that everyone is talking about one laptop per child. but, i think its important to get the word out and a little perspective on what people actually think about this. so here is what i honestly think.



    i think it is a fantastic idea. i think it is expensive but who cares if you change a life. i think i want to help out and get one. i think i'm not sure if that is the best use of my money. i think i should use my money for something like this. i think if i was a kid that couldn't afford stuff like this, then i'd really really be happy and thankful for getting one. i think this could change the world. i think the laptop isn't that cool, but really cool at the same time. i think there are kids in america that could use this. i think bill gates should by a million of these and donate it. i think it might be a little too slow to really use. i think its cool that everything runs off of python. i think i would split this with someone. i think i would like to give it to the kid. i think i would love to see a documentary about this. i think all laptops should come with all the harry potter ebooks. i think all laptops should come with an encyclopedia. i think it would be great that one day it was 50 dollars for one laptop. i think one laptop per child is a lot of laptops. i think where do kids in third world countries plugin to electricity. i think the laptop might get stolen. i think i wish i had this when i was a kid. i think it is a fantastic idea.

    i think every child that wants a laptop should be able to get one. i think this is cool.

    Thursday, November 15, 2007

    learning how to run code reviews

    yesterday, i sat in a fantastic code review moderated by austen. to some degree for the past few times we have been working on his ability to moderate code reviews. let me just say that it is really working out very well.

    in my opinion, moderating code reviews is definitely a skill. if you don't think so, then i wonder if you have moderated an effective code review. to be the moderator you need to make sure that the time is spent effectively. also, the most important thing is that you make sure that everyone is learning the whats, whys, wheres, and hows of what is going on. another thing to do is to make sure we don't focus on superficial issues and identify where we can make tangent discussions about design. also, leading the discussion in a positive direction is very important. moderators that just say, "needs fixing, follow the coding standard, moving on" are really not doing an effective job.

    for this specific code review we spent a while explaining why coding standards are standards by identifying why specific "rules of thumb" have been created. we also, were able to shift the discussion (almost accidentally) to a larger more important design discussion (a totally awesome design discussion).

    anyway... i'm fairly confident that austen has the ability to lead effective code reviews. i really think that it is an invaluable skill for a software engineer that takes practice. this skill combines a lot of the soft skills that i'm talking about.

    in my opinion, it takes a deep understanding of not only knowing how to design software but also how to help teach that understanding to other people. that sort of skill separates austen from others.

    Tuesday, November 13, 2007

    metrics and clouds and other cool ideas

    so, i've talked about atlassian's clover metrics before:
    two roads and in metrics, metrics, metrics

    so, you would think i should move on to another subject. but i won't. so too bad. haha. anyway, i found this on the clover website:



    here is what they say about that graphic:

    The Project Risks Cloud highlights those classes that are the most complex, yet are the least covered by your tests. The larger and redder the class, the greater the risk that class poses for your project.
    ...
    This Cloud highlights the "low hanging coverage fruit" of your project. You will achieve the greatest increase in overall project coverage by covering the largest, reddest classes first.

    wow.. okay that is a cool idea; metrics clouds. but, again i think they (atlassian) is trapped by limitations of their framework and infrastructure. just doing coverage to identify low hanging fruit is probably really really basic, not to mention potentially meaningless and might actually do more harm than good. its like doing Priority Ranked Inspection with just one metric. nevertheless, the cloud idea is a good one. and yet again, hackystat could do much better.

    re: The Shade Tree Developer

    Jeremy D. Miller -- The Shade Tree Developer wrote two blogs today. i read both and i agree with a couple parts and disagree with another. here are two that i like to highlight.

    cubicles
    in little observations jeremy writes

    Cubicles == Collaboration Proof Force Field. Is there any worse way possible to arrange a development team?


    woah.. i've never heard that from any software developer before. i wonder if he read things like Peopleware. anyway, i realize that offices are the best possible situation as peopleware points out, it really depends on how your cubicles are situated. if they look like this then i doubt he would be complaining about them. anyway... i'm not sure jeremy knows what its like without the walls.

    invest in people not the tools
    from A Train of Thought: November 13th, 2007 Edition jeremy writes
    Invest in People before investing in Tools

    I see sooooooo much effort and money going into producing or purchasing tooling that will "enable" bad or undertrained developers to write software with adequate results. Software factories to tell them what to do next. Methodologies try to straitjacket developers into being spec programmers. Tools that frankly have no power because the makers are favoring safety to keep developers from hurting themselves. All powerful frameworks that try to do ease development by leaving developers very little choice or freedom. Yes, the average developer might be underskilled and undertrained, and we generally need to do something about that to make them more effective. My constant contention is that we'd be better off to raise the average developer skill level across the board. In economic terms I think it's cheaper to invest more in developing developers than it is in fancy tooling.

    What is so wrong with our value system that we favor using tooling to make people interchangeable instead of investing in people to make them, and us, more effective?


    this serves as reminder of what not to do with hackystat. hopefully, hackystat will never be pitched as a straitjacket for productivity. i've said it over and over again, people and their unique skills are the most important thing in software. no tool, even hackystat, will ever replace a person's skills and knowledge. i don't get why tool marketers can't just stop with the crazy silver bullet talk. it just makes smart people angry.

    0-4 worse than striking out (inside joke).

    Monday, November 12, 2007

    re: "Blogging, Open-Source Software, and Rockstars!"

    here is a response to austen's blog: "Blogging, Open-Source Software, and Rockstars!"

    i totally agree with what austen said about why developers could be blogging. however, they could be doing the "software design on paper" but in another medium. so, i offer this as another reason. this is the primary reason why i blog. blogging helps share your thoughts with others to help collectively grow knowledge. the sharing part of blogging is really important.

    i blog because i want to help provide information to certain select groups of people. the side effect of doing that is the things that austen mentioned. the developers that see no value for blogging, probably don't see a value of sharing their thoughts. that is a real shame.

    finally, i think a lot of developers thinks that their only job is writing code. i totally disagree with that. there are so many other skills that one needs to be a rock star; programming skills are just part of it. its maybe the least important one; don't get me wrong i think it is a requirement. soft skills are very important. if one day i'm called a rock star programmer, it won't be because of my hacking skills. i have so much more to offer and aspire towards.

    Sunday, November 11, 2007

    why i work on hackystat

    hackystat is an awesome project. and i work on hackystat for three reasons. but, the priorities of those reasons is probably not what you would expect. here they are:

  • i want to help lead my peers - part of what i do and what i really love doing is helping the "younger" or newer hackystat developers understand what hackystat is all about. actually, it is the soft skill mentoring that is really motivating. i have the chance to help other hackystat developers grown their critical thinking about software engineering research. thats fun and thats what it is all about.
  • i learn a lot from my peers - typically everyone that works on hackystat are better than me in programming. yes, i even think that the "younger" developers are better at programming than i am. i learn a lot from them. i also learn a lot on how to be a leader, by following leaders like philip. i also love to hear, "aaron, that is stupid", every time i hear that makes me better.
  • (the last reason) i like the actual application of hackystat. i like that hackystat is successful and can be even more successful. i like the domain that we are in, because i like software engineering research. but, i put this last because the other two are much much more important to me. i'd probably be as involved if hackystat was a chat client.

    so, you see that it is the people and the environment that makes the biggest difference for me. if you are working in a crazy cool project with dumb people, in a dumb environment then i bet you are hating it. i would. people make all the difference. moral of the story: people is what makes software engineering awesome. but people can also make software engineering a pain in the ass.
  • things that i want from google

    google has a lot of cool applications, but i want more functionality from their apps. here are a few ideas.

  • google earth - i want to be able to classify information by geographic locations. a similar idea is what i've seen with the mappings for the southern california wild fires. but, i want it much more dynamic. for example, if i "google" migration patterns of humpback whales, i want it to show me based on the research where humpback whales migrate throughout the year and where they are right now. that is cool. this could work for all kinds of things. for example, where is it daylight right now, what countries have AIDs epidemic problems, or where are the Red Cross helping right. all of this, of course, is to add much more context to information. it would definitely help me grasp the scale of some of these problems. it would also be cool to use this in education, for example Science on a Sphere
    at the Jhamandas Watumull Planetarium - Bishop Museum

  • google reader - i want the concept of a "i have to read this later" category. i always read a little of the title and the first few sentences and i know i need to spend more time reading it. often these reader entries are longer than usual or contain other multimedia inserts like a video. being able to "star it for later" seems like a very good feature.
  • google reader (2) - i want to know what blogs my friends are subscribed to. some how being able to do a grouping of the blogs my friends are reading seems cool to me. it could define the type of information my friends care about. for example, my software friends would have an entirely different set of blogs than my high school friends. but, what would be interesting would be to see if there were cross-sections between my groups. if that was the case, then another group should be formed.
  • blogger - i like the idea of creating a community of independent bloggers. this page, kinda like google groups would be able to aggregate their blogs in a reader type thing. stats on how often the group writes sounds pretty cool. also, things like tag clouds can help define what topics the bloggers write about.
  • gmail - gmail should have more features like how apple's mail works. the notes and todos are cool stuff.
  • picasa - picasa is cool, but it isn't that great at the community aspects. the desktop app is really kind of boring. there aren't very good ways of finding pictures or scrolling through them. zzzzzz

    i just had a thought.. a lot of the cool features are happening in apple products. hm... that is interesting. while google is making things really accessible, in my opinion it looks like apple is winning my vote for more usable and useful. wow, and i don't even have a mac. google team up with apple would be the killer app.
  • chat help for testing

    i was looking at some of the test code for the emma ant sensor. i didn't like how the thing was being tested, but couldn't really grasp how i would improve it. as usual, instead of wasting my time thinking by myself, i turn to someone for help. i've always find that explaining what i need help with to someone else almost always helps me solve the problem. not to mention that putting to heads together almost always solves the problem faster and better.

    aaron: testing question.
    aaron: the ant sensors are very procedural.
    aaron: give it the file. it parses creates the keyvaluemap, adds to sensor shell and then sends.
    aaron: testing something like this would require.. the test code to implement some parts of the procedure.
    aaron: for example the test code would have to get the jaxbcontext then go through the procedure too.. to get to the keyvaluemap.
    aaron: that seems really bogus. and is why the sensors aren't tested good.
    aaron: how to fix that. ideally you would want to inspect at a certain period in time. like aspect style.
    austen: i never learned aspects, but what you are saying sounds like what you would want to do conceptually. but you have to create some type of state in your testcase in order to figure out anything. this goes for alot of code you want to test. right?
    austen: that bogus "fake" state is what you dont like?
    aaron: ah.. so make a mock object
    aaron: so build jaxb objects
    aaron: send it in.
    aaron: then get the results.
    aaron: in parts.
    aaron: i guess you can't test the whole procedural process.
    aaron: thats a system test.
    aaron: sound good?
    austen: well i think in your case, you would just have some testdata
    austen: and you would let the sensor run on that to create to the jaxb objects
    austen: but more or less yes you wanna create some mock jaxb objects
    aaron: okay.. i got it.
    aaron: test data -> send to method -> get jaxb objects -> send to sensor logic portion -> get back keyvaluemap -> analyze values
    austen: yah thats how you test if it loaded correctly if you had access to that keyValMap. but you gotta figure out a way to get access to it
    austen: a problem with the sensor testing is you dont know if it gets sent
    austen: and that sucks
    austen: you kinda say ok it loaded it into sensorshell ok
    austen: but is your sensor really sending it?
    austen: *shrugs*
    aaron: thats a system test.
    austen: ah i see
    aaron: k. i think i got it. good idea bouncing session.

    this was a good discussion and got me on track on what i wanted to do. these are the types of little collaboration that need to be shared across a team. its is not profound, but it helps keep the software development at a high level by introducing 10 second vignettes of knowledge.

    Saturday, November 10, 2007

    work on your soft skills

    in the last couple of weeks, i was hacking like a mad man for a little while and then dropped down to doing higher level and management stuff. what i'm constantly seeing is that hacking and the other stuff is equally important. in fact, doing the other stuff is what i think separates myself from the others.

    so, all you students out there. (and i've said this over and over and over and over). hacking is part of it. yes, you have need to have the hacking skills. you need to have good software development processes, you need to use the right tools, you need to learn things like Programming Pearls and Effective Java, bottom line you need to be able to hack with the best of them. BUT, you also need the "soft skills". Skills like communication, writing, team work, critical thinking, speaking skills, management skills, following skills, even stuff like understanding the market, etc. that other stuff is very important. and i would claim it is much harder to practice the soft skills. you can't exactly read a book about how to make a presentation and think you are guy kawasaki. soft skills need practice. you need to start practicing them now.

    here is what you do:
  • write research papers, the best way is an undergraduate or graduate thesis.
  • give as many presentations as you can.
  • work in as many project teams as you can, hopefully, you are in projects that you can lead. but, also be in projects that you are the follower - hackystat is a good project to be a follower and leader.

    i've heard other people say you can't learn the soft skills. i think that is bunch of baloney. it just takes longer and is harder to do.

    start doing it now. soft skills are extremely valuable in industry.
  • Tuesday, October 30, 2007

    scratch update

    a few days ago i wrote about the lacy veach day of discovery. here is a really cool update. posted on this website are all the kids scratch creations. take a look at all the cool stuff they did.

    here are a few to look at:
  • one kid spent about 30 minutes on this one. he even wrote the star wars song, note by note. needless to say, this kid was cool ANDREW_StarWars.
  • robert can dance. okay we cheated. a software engineer created this one. Robert_can_dance
  • one of the better scratches by a kid. DevonMiller_Run
  • this kid spent a while drawing and positioning his demons. this one was cool. XAVIER_DEMONDS_RULE
  • this one was made by a little girl. she couldn't have been older than 6 years old. she did a great job. cady_Monkey
  • another cool one, we got the cat to run. Kayla_Cat

    anyway, every single kid's scratch was awesome. they were able to pick up the technology very quickly. they did great!

    hopefully, we can continue teaching kids scratch.
  • Monday, October 29, 2007

    two roads diverged in a yellow wood

    one road says, "(such as Active Time in Hackystat) would have similarly disastrous consequences were anyone to actually take them seriously" from The Mismeasurement of Science.

    the other road says, "I’m finding that I actually like the time tracking. For one thing, it’s a tool for focus. When you kick off the timer on a task, you don’t want to jump around and multitask because it will just throw off the timer. The timer feature itself is pretty easy to use.” from Some feedback on EBS.

    Two roads diverged in a wood, and I-- (robert frost)... and i... think its funny how systems like FogBugz and Bamboo are finally adding metrics to their systems.

    FogBugz and Bamboo provide compelling arguments for their features. Just like 6th Sense Analytics. They look nice and make sense from a management point of view. However, I think what I've realized is that from a developer point of view these simple metrics doesn't really make me a better programmer. Don't get me wrong i think it is totally awesome to have those metrics to increase awareness and manage certain things. But, i want to jump to the next curve. I want systems that help me gather as many 10 second vignettes of knowledge as i can.

    Hackystat has already done coverage reporting, timesheets, and automated time tracking. we've done those type of things. and i still think that metrics (as presented by the three previous links) has not improved my development one bit.

    my software development has improved by debating with, communicating, learning from, teaching, pair programming with, yelling at, getting yelled at, blogging for, reading blogs of, emailing, and just working with great hackers. if you can package that up and bottle that, then you've got it! thats how you get 10x productivity and hit the high notes. if you can harness that relationships; improve the ability to share information along with metrics pointing you in the right direction, then you've hit gold. i've realized that context is always the number one thing. the context of the problem and the context of the solution.

    thats the difference between the two roads....

    Sunday, October 28, 2007

    socially conscious programming

    here is a thought... we need more programmers to help solve social problems. i've been reading the book Giving: How each of us can change the world and one of the things that i immediately thought of is that technology can change the world. duh... industrial revolution and the information age.

    socially conscious programming is something that i just made up, to express the idea of applying technology to problems like AIDS, hunger, extreme poverty, disaster relief, environment education, etc. all of these causes need technology, yet i bet little funding is made available to pay for cutting edge technology.

    philanthropy is becoming more main stream now days with the likes of bill gates and warren buffet. and its cool to see things like google.org. its great to see big money and big companies helping out the major social causes.

    but, what about the community level issues, for example helping the Hawaii Education of the ARTS, and organization who is asking for help right now. there are probably hundreds of thousands of NGOs that need minor technology help; from access databases, websites, to information packets. we could and should help. but, i'm not sure how to organize that. hackers are afraid of the constant nagging computer-illiterate friends that need help with stuff.

    going back to the major social causes. wouldn't it be cool to work on something that has a major sociological benefit. something that truly changes the world. my love for hacking is secondary to my love for helping people. an awesome job would be to create cool innovative technology that saves the world from global warming (just an example). i would love that job.

    oh.... and how do i do that without taking a big pay cut. haha. just joking, well maybe not. that is a problem. maybe that separates the true givers from the rest.

    bottom line
    making a little money on the internet is pretty straight forward now days. making a small positive difference in the world on the internet is a lot harder. my prediction is that is going to change soon. it needs to.

    Saturday, October 27, 2007

    lacy veach day of discovery

    today i participated in the lacy veach day of discovery, which is a large scale science fair with exhibits and workshops. we had a great time with all the kids. i even learned a lot! science is cool.

    at the event we taught kids how to program with scratch, an interactive programming language that creates animation, games, music, and art designed for kids to help develop 21 century skills. it was a huge success. the kids at the event were great. my friends did a great job of helping the kids. overall it was a huge success.

    here are some pictures:


    again, today was awesome. i really feel that these little things change the world.

    Friday, October 26, 2007

    wanna try twitter?

    aaron: wanna try twitter?
    ryanK: sure
    aaron: go sign up.
    ryanK: ok...now what
    aaron: who you?
    aaron: found me?
    ryanK: yep
    aaron: pick who you want to follow.
    ryanK: ok...cool
    ryanK: so what do it do
    ryanK: not to sound dumb...but now what
    aaron: haha
    aaron: now its like micro blogging
    ryanK: i see
    aaron: for example...
    ryanK: ok...i'm in
    aaron: "wow i just saw angelina jolie!"
    aaron: haha. or something random like that
    ryanK: mine would be more like.....damn neighbors swearing again
    aaron: haha
    ryanK: ok...sounds good to me....i'm all for daily diversions
    aaron: well, hackystat people are using it for awareness
    aaron: for example.
    ryanK: what kind of awareness?
    aaron: working on Jira sensors. writing a unit test
    ryanK: that's cool
    aaron: http://kagawaa.blogspot.com/2007/10/twitter-sharing-hackystat-goals.html
    ryanK: nice post
    aaron: that why i want you to move to google
    ryanK: ?
    aaron: does yahoo pipes allow you to share?
    ryanK: what do you mean?
    aaron: share the blogs you like
    aaron: http://www.google.com/reader/shared/user/03700852820011910609/state/com.google/broadcast
    aaron: these are the blog posting that i like
    aaron: so you can read the ones that i like. cause you might like them too
    aaron: google share http://www.google.com/s2/sharing/stuff?user=116568645918095855751
    aaron: share some 10 second knowledge with me.
    ryanK: no...pipes doesn't share
    aaron: i had an idea for a consolidation type thing.
    aaron: for example group rss feeds
    ryanK: basically what you do is you select feeds....then you can combine them, filter out stuff,
    ryanK: it's pretty cool.....a bit limited but it has its uses
    ryanK: not really what you wanted in terms of sharing
    aaron: ok i remember it now
    aaron: i want global labels
    ryanK: what that?
    aaron: so.. look at
    aaron: http://kagawaa.blogspot.com/
    aaron: see the label section.
    aaron: hacksytatv8, hitech, reading, hackylife
    ryanK: yeah
    aaron: i want to see all the posting on "hawaii hi tech"
    aaron: globally
    ryanK: your assuming everyone else will label it the same
    aaron: well. yes
    ryanK: that is sort of way the tagging thing died out a bit
    aaron: so, a website that provides what labels you can use if you want to be global labeling.
    aaron: imagine a search on "hawaii hi tech"
    ryanK: your talking about creating some sort of vocabulary
    aaron: it shows a list of blogs and articles
    aaron: sorted by who says good things.
    ryanK: i sort of know what you are talking about
    aaron: i think it has to do with semantic web
    ryanK: bah....that's a too big problem
    aaron: rss aggregations.
    aaron: http://kagawaa.blogspot.com/
    aaron: rss aggregations
    or a cool rss aggregator.basically, what i want to do is aggregate the blogs that certain peoplewrite into a group of blogs that should be about the same topic. forexample, austen and i could be in a group. to further specifyinteresting blogs on the same topic we could then agree to use the samelabels.
    ryanK: the key is getting people who you know together and gathering the info as a group
    aaron: right
    aaron: yes
    aaron: you can do that in many ways
    aaron: blogs, twitter, shared blogs, shared websites
    ryanK: that last thing about the rss aggregator
    ryanK: i use pipes for that
    aaron: i use google reader for that.
    ryanK: you pipe in the blogs that are similar into a single feed
    aaron: but it isn't global it is personal.
    ryanK: i see
    aaron: i want global.
    ryanK: let me see if i understand...
    ryanK: what you want (in a perfect world) is for everyone to use a set of labels and label their blog entries so that some sort of aggregator could get them and put them together as a related group
    aaron: yes
    aaron: not just blogs
    aaron: but yah. that is a start
    ryanK: what else? links?
    aaron: shared links, twitter, etc.
    aaron: haha.
    aaron: ask.com is kinda what i want.
    aaron: http://www.ask.com/web?q=hackystat&search=search&qsrc=0&o=0&l=dir
    ryanK: so...the solution i thought of was basically to do that....but manually without the labels....using people who stumble upon it
    aaron: ic
    aaron: basically.. the goal is to see what other people are saying.
    aaron: using things like word clouds, other 2.0 stuff
    aaron: you can see what the whole community is saying.
    aaron: easily.
    ryanK: the one drawback that I saw with that.....was filtering out the stuff that was labeled as related but was crap
    aaron: haha.
    ryanK: seriously...there's a lot of related stuff that just sucks
    aaron: yeah.. somebody smart needs to figure out how to remove the crap
    ryanK: you dont want to have to filter through that
    aaron: google weeds out crap from search.
    ryanK: how does it know?
    aaron: popularity
    ryanK: by crap, I mean that "you" don't like it
    aaron: hm.. right.
    aaron: good point!!
    aaron: so.. in IEEE software
    aaron: robert glass talked about how common people are writtign crappy blogs
    aaron: and that blogs suck because of that.
    aaron: you read a blog about software engineering from a guy that writes html in one project.
    aaron: that isn't good.
    ryanK: yeah
    aaron: so.. technology can limit the crap
    aaron: i think.
    ryanK: need to find the good stuff.....and to me...the only way to know is for a person to do it
    ryanK: hahaha
    aaron: it needs to do that. to jump to the next curve (reference to guy kawasaki's art of innovation talk)
    aaron: haha. i agree.
    aaron: anyone can be brilliant at a particular point in time.
    aaron: digg uses that model .
    aaron: so digg, plus knowing if the person writes good stuff, relevance, etc, etc
    aaron: adding all that.
    aaron: and you'd be able to know as much as everyone else.
    aaron: presto. instant awareness.
    ryanK: yeah....but if you look at where digg is going
    ryanK: where you get a group of people you know and you use their digg-ing
    aaron: yeah..
    aaron: i think groups improves the current curve
    aaron: i'm talking about busting out into a totally new one.
    ryanK: the good thing about groups is like thinking
    ryanK: no..your idea is good
    ryanK: just .... big
    aaron: and i like groups too.
    aaron: i like groups.
    ryanK: but you know....if you build it....they will come
    aaron: groups and global.
    aaron: personal, groups, global!
    ryanK: i think if you build it so that it works for you and the people around you....it will be easy to go global
    aaron: haha. i just wnat to use it.
    aaron: http://chir.ag/phernalia/preztags/
    aaron: i'm sure you seen that.
    aaron: imagine if there was a cloud for anyone that blogged, wrote and article, etc, about unit testing.
    ryanK: that's what i mean.....set it up to be useful to you...have your friends use it
    aaron: maybe we'll see that most people think that unit testing is hard.
    aaron: ah.. okay.
    aaron: yes. thats why i want people to use google reader.
    ryanK: i do
    aaron: use google share blogs and google share items.
    aaron: click on the share icon when you read something good.
    aaron: thats all.
    aaron: thats all for now. untill we learn how to use that..
    ryanK: sounds good to me
    aaron: then we'll move up the curve after we learn what that means.
    aaron: i share something every day.
    ryanK: what share icon?
    aaron: in google reader
    ryanK: oh
    ryanK: ok
    aaron: http://www.google.com/s2/sharing/stuff?user=116568645918095855751&aoff=false
    aaron: and this google share thing
    ryanK: i see.....so i can subscribe to your shares
    aaron: yes!
    aaron: haha.
    aaron: yeah.
    aaron: blog shares and item shares.
    aaron: then what i want to know. is whether we share the same things
    aaron: cause that means it is awesome.
    aaron: haha.
    ryanK: what's the difference blog/item
    aaron: google has different areas to do those
    aaron: shared blogs are from google reader
    aaron: shared items are a separate technology for just loose pages.
    ryanK: where's that? i want that
    aaron: i just sent you the link to mine
    aaron: i think you can get your own from that page.
    ryanK: ok....i'll start playing around with it
    aaron: cool. the only thing is you need to send me your links to blog shares
    aaron: and item shares.
    ryanK: ok...i'll send when i get it setup
    aaron: awesome!
    aaron: i think i'm going to edit this chat and put it on my blog.
    aaron: okay?
    ryanK: sure

    Tuesday, October 23, 2007

    no one is sharing

    it has been 5 days since my last blog about sharing information in the hackystat development team. i must say that twitter is being used a lot more in our group. but, where are the blog shares?

    anyway, so for those of you that actually read my blog. i'm looking for some new blogs to read. i'm looking for cool random things. it could be cool random pictures. or something totally unrelated to technology. add a comment to my page with blogs that i'm missing out on. better yet, add your google blog share link as a comment.

    rss aggregations
    i'm looking for a cool rss aggregator. basically, what i want to do is aggregate the blogs that certain people write into a group of blogs that should be about the same topic. for example, austen and i could be in a group. to further specify interesting blogs on the same topic we could then agree to use the same labels.