August 23, 2008

Be good to the environment (and get cash)

I want to share something I found this week that is going to be a great help for people for a long time to come: gazelle.com

Without even having to sign up, you tell them the electronic gadget you have, and they tell you how much they will pay you for it. Then they send you a box, you send them the electronic (they pay for shipping!), and they will send you the money. Yeay!

No having to take pictures and upload them to ebay, and having to wait and guess how much you're going to get for something. I compared the price gazelle offered me for one (of the many) item I have to what it was getting on ebay and it was pretty much the same. Just the fact that they send me a box alone makes up for any minor difference.

If this wasn't enough, there are 3 other things that make me love this company even more:

1) If the electronic doesn't have any value, they will send you a box anyway and take care of recycling it properly
2) If the electronic device is in good enough shape to be powered up, they will erase any personal data in it before recycling it
3) Their philosophy of recycling is better than simply properly disposing of it: they will try to reuse the item first
4) They are a local Boston company
5) The website is extremely well done and easy to use

Okay, so those were 5 things.

I read somewhere that someone who works there used to work at Kozmo. Which was only the sweetest service ever to be implemented. But never mind that if you didn't live in Cambridge or vicinities circa 2000.

As always, the best strategy for the environment (and your pocket) is not to buy things in the first place. The very second best is to reuse things. So, if you do have STUFF sitting around your house, do yourself a favor and get some money for it. At the same time, someone out there can reuse an item that already exists instead of getting a brand new one.

Here is an article about it: The Netflix of Junk

While on the subject, Hands Across the Water is the best place I have found to donate books to.

And yes, share the news!

July 24, 2008

Power Up Your Inbox - Or, Zero it Down

I am not going to get into the annals of email issues. Let me just say that I identify myself as an "organized person" and yet I have been having, for the longest years, a real problem keeping up with email. Usually it goes like this: email comes in, I read it. By the time I feel like I have time to respond to it, so many more emails arrived in my inbox that it will take some time to find that one I want to respond to. In the process of searching, I come across many others that I've forgotten about, causing not only a delay in the activity but a major feeling of failure. At this point, I have to decide if the original email I wanted to respond to is still the most important. More time and agony is spent. The 'respond to email" activity is at this point too much to handle, and abandoned for some other time because now I need to do something else.

Some tips will be for Apple Mail only, but for sure you can find a Windows or Linux alternative.

Ready?

Step 1/3: One Folder

Create an "Archive" folder. In it goes all email that is NOT trash. You know, all of those you might someday read/respond to.
The goal here is to get important messages out of view so they don't become an impediment to future email processing. It's a pretty easy binary decision. Anything else goes to trash. A nice side effect that I observed in my implementation of this system is that it became super easy to identify many subscriptions that I was sending to trash immediately. And because there were so few emails there to process, I could afford to take the second or two to unsubscribe from those. This created a snow ball effect where I kept getting each time less irrelevant email (even if they were relevant in the past).

For this to work better, here is a trick: use Mail Act-On (http://www.indev.ca/MailActOn.html) a free and open source program for the Mac. It will let you easily setup shortcuts to expedite moving mail around, or marking them anyway you wish. See how I setup my rule below to move any selected message to the Archive folder (ctrl m):

200807241627


Step 2/3: Smart Mailboxes

Setup Smart Mailboxes to filter the important emails from your Archive folder. Obviously, you won't end up with Smart Mailboxes to catch all messages, only the most important ones that have a higher potential that you will be going back to, like emails related to a project you are working on, or from a recent acquaintance you are exchanging with. The other ones will still be accessible via a search or by going directly to the Archive folder. This post describes the idea really well, and was what got me motivated:
Stop creating those folders.

200807241733-1

If you need ideas for Smart Mailboxes:
Some handy Smart Mailboxes.

Step 3/3: Tips, Shortcuts and Other Utils

For higher productivity, my email messages are only downloaded manually. But when I want to download them, I want to do it fast. On to the next tip.

If your mail application doesn't provide all the shortcuts you need, create them yourself. If you are an Apple Mail user, this is a must. This site has instructions: Make your own Apple Mail shortcuts. Below are my own:

200807241642

Warning: I keep having a problem making this work. After I create the shortcuts and reopen Mail, the shortcut works. Then, it stops working. If you made it work for yourself please drop me a line.

From here on, you can use the tools I have already covered (Act-On + Smart Mailboxes) to fine tune new views and actions according to what you need. One other tool that I have been using and loving is MailTags. It costs $30 but for me it's worth it. For example, my "_To Respond To" Smart Mailbox contains only messages that I have tagged "respond".

For the real heavy desktop email user, you might want to check out Mail Template. If you do, please let me know how it helped you, I'll be interested.

June 21, 2008

Confidence: raise it up a notch... or a few

This is too funny... makes me miss Mexico lindo. Leaving it at that. :)

Enjoy it!

June 18, 2008

To Rails is... to meditate

I have finished my first web application in Ruby and Rails. Yeay! I am far from grasping its entire potential, but what I've seen so far has left me tickled. The first thought I had was: wow, you really have to get yourself out of the way and just run with it! Coming from a mindset of having to will your machine into submission, it is quiet a mind twist to surrender yourself to a framework. So, first and foremost, To Rails to me is... to get yourself out of the way!

Everybody talks about how Rails gets a lot of stuff done for you. But seriously, you must have had to go through some major pain before really appreciating what this means. For example... where do I start?

Environment: Do you know how many times I've had to install Apache/Tomcat in my life? With each installation, all the configuration and tweaking around... painful. Do you know, with all the many little ideas of mine that I could have developed a prototype for? Man, if that meant going through this pain for the possibility of little payoff, forget it (I'm not lazy, I simply have tons of projects with bigger payoff probabilities). I love it that everything, including database setup, tests, and configs, are self-contained right in the root of the project. And I didn't have to re-install anything, not once. I even totally forgot there was a server running, I swear.

Folder structure: Just like self-documented code, having a self-documented folder structure can make a huge difference in how productive you are, when developing with other people's code but also even with your my own code. It is also a good indication that you have an idea before hand of what you are going to be developing (if you're not there, go back to the drawing board). I remember when I developed my first serious Java application, I went all over the internet to try and find out how people suggested the folders should be organized. The way I saw it, when I found a good practice guideline I could then employ it forever. And that was indeed the case, but only after studying many different possibilities, since I found a gazillion different but good ways that people were doing it. Can I say I love that I don't even have to think about this with Rails?

I haven't gone deep yet, but some other interesting observations. In the case of Ruby itself, I can see how some people can be very confused with the use of the Boolean type. Coming in with experience in C, where any integer number but zero means "true", I got it immediately how any object that is not "nill" or "false" means "true". Another observation I made is that some aspects of Ruby are not completely unique. I worked with CodeIgniter, a framework for web applications in PHP (I think Zend is similar as well), and the idea of requiring a specific folder structure and working in a RESTful type of way (with actions and resources) existed there as well. But the fact is, when I was working with CodeIgniter I hadn't yet recognized what was happening: one way to put your application together, whether the data was behind a (REST) web service or sitting right here on your machine. Sweet!

Other sweet things that I hadn't had the pleasure to encounter before: I never visited the world of SmallTalk, so I was having a blast with the additional development environment right there on my command line, something totally dynamic. And being the lazy that I am (ok, I am lazy for somethings in that I don't like to do boring, repetitive stuff), I loved being able to generate models, complete with attributes and all related db schema, and all associated fixtures and test files, all with one little line in the command prompt. Hooray! And! Also generating right from the command line the controllers and actions, and views for each of the actions, and again, all associated helpers and tests (both unit and functional!) with one line! And! Not really having to be committed to any of it (I have a commitment issue with technology), it was super easy to drop or change anything! Loved it!

Not all is sweet heaven though. RoR makes me ponder a lot about an issue that worries me in regards to technology. As time goes by, technology is making many things easier and easier to use. This means that people who are not involved in building technology and are purely consumers of it are having to think less and less about some of the things they are doing. Think: calculator, versus understanding arithmetics. What happens when developing software becomes so simple to develop, with frameworks and patterns and recipes that make the job easy to get done by anyone? Will the common denominator be shifted to a lower level? Where will the mental challenge be? I am not worrying about where my next job is going to be. I am fretting about the possibility of ending up with a pool of thinkers that is ever so smaller. Who will I enjoy talking to then??!

One last note about Rails. I am a huge fan of the written word. No matter what language you chose, it is extremely limiting to communicate your thoughts in the written word. Ok, if you want me to be totally technical, it is also very limiting to communicate your thoughts and ideas verbally in any language, but because it can be done fairly fast, you can deviate, and do a lot of trial and error, and possibly get your point across successfully, depending on my things (your audience, your articulation, your understanding, your level of caffeine intake). But try putting it in writing, and all of a sudden you don't have the right combination of words to express it. Okay, this totally sucks (the hindrance in communication) but it serves a great use: it forces you to think about your idea from many different angles, just so you can find a way to write it down cohesively with the tool (language) that you are using. With that said, it is great that Rails makes it so easy to do the test cases that you should be running, because it automatically puts them in there for you and all you have to do is to complete writing them. Ideally, you will use that process (of completing the tests) as a way to uncover the way you are going to code the idea behind your software before you write the code. I am looking forward to trying RSpec and start thinking in terms of BDD.

So, when you completely forget about the things that have been setup in the past, and don't have to think about how to do or structure something now so it won't break your app in the future, it leads to a very Zen, or "in the moment" way of programming. It is a complete submersion in the experience of... coding. The only thing you have to think about is what you are going to code, how you are going to code, and then code. It is not like it, it is meditation itself. Can you imagine bringing your meditation practice with you to work, how cool and awesome that must be?

Hey, wherever you are, there you are.

As a happenstance, I had just figured out I have a problem and am so happy to get the sense it will be painlessly addressed with RoR. When you work to make a living, even if you work for yourself, you have a set of goals to accomplish that end up constraining you. You try to get the job that is going to be satisfying and will provide the types of challenges that will help you grow in the direction that is interesting to you, but as proactive as you can be, at the end of the day you have a job to deliver to someone. And so I just figured out that there is no 1 job that is going to provide me with all the learning and contributing opportunities that I am looking for. I will still have to be proactive in making my day job as awesome as it can be, but I have to look for a complement out there somewhere. If it's not obvious, I'm talking software. On this front, it is so amazing to find RoR at this stage. My inner geek is very happy about finally coming out, AND at a time when (@development = pain) => false.

June 05, 2008

Dear husband

Dear husband,

I want to go to these two conferences... It's like 3k for both of them but...

This one has early bird til Saturday:

Business of Software 2008, a Joel on Software Conference September 3-4 2008

The workshop for this one is: "Women in Technology", just cherry on the top:

Technology Review's EmTech Conference @ MIT September 23-25 2008

What do you think? I really want to go... :)

Your loving wife,
-=-Pituchu

June 03, 2008

How to study for a certification exam

This is part of my recommended strategy to study for the Sun Certified Programmer for Java 2 Platform [1] (an exam that is ridiculously detailed about the Java language) that I posted on javaranch.com right after I passed mine back in 2001. It is a guideline that I would apply if studying for any other certification, I think it would work well.

Select two good books on the subject [2]. First read the books, learn the material (by coding), and do the exercises or samples in the books. Have a notepad and take notes of the topics and you don't know in a way that you can study them (no short notes) from you notes. I recommend going through one book, then take some mock exam, then pick up the other book and focus on the areas where the first mock exam tells you are week at. At this point in the process, I had discarded my first notes and started a new notepad, this time with less topics that needed my attention. After you're done with the second book, start taking more mock exams. At this point you should have a very good idea of your week points. So get cue cards (3x5) and write what you don't know by topics with a full explanation, including examples, one for each topic. For example, for my Java exam I had: methods, inner classes, variables, one for each i/o class, one for each layout manager, etc. Go through these EVERY DAY at least once. If you think you'll end up with more cue cards then you're able to read in one day, it's a sign that you should still be focusing on studying the books and on coding instead of doing the cards or taking mock exams. Once you're working with the cue cards and doing mock exams, write on new cue cards those questions that you get wrong on the mock, even (and specially) if they are the ones you know that you know. You might end up with cards of repeated topics, but that is beautiful because you'll end up reading the topics you're having trouble with twice at least. When you start getting those right you can take them out of the stack. Save the best mock exams for the last days before the exam. Being able to immerse myself in the mock exams and the notes (not watching tv, not doing anything else) for the last 2 days before the real exam was crucial.

Also, try and participate in forum discussions. If there are questions you don't want to answer that's fine. If there are questions you can't answer, that's not a good sign. Searching for the answer and answering questions that you don't know are a good way of engraving that in your head.

Good luck!

[1] Someone at JavaRanch gave a really good tip on studying for layout managers and i/o: read the J2SE documentation. You need to know the classes hierarchy and the methods that they inherit and create. When you're studying this topic and the book presents you a class, have the documentation near and go through the entire class.

[2] I know being the cool geek that I am I'm not supposed to, but I'm a huge fan of books. It's happened more times than I care to keep track that I tried to learn something in depth online, spent a lot of time searching and wading through the good and the bad, and in the end ended up with holes in the whole picture. Good books take a pass on the entire subject, this way you at the least know all what there is to learn. You can always go online and further your understanding on any particular subject.

June 02, 2008

Ignite Boston 3

It took me long enough to do a write up on Ignite Boston 3, so O'Reilly beat me to it and did a great rundown.

This picture of me does not do me justice, as my better profile is the other side... :) It is Mr. @techpickles I'm talking to over there. More pixs here.

Here my own rundown of what made a big impression:

  • Coolest Presentation: Interface Design Tenets for Beautiful Design, by Juhan Sonin.
  • Coolest company presented (by founder Lucy Mendel) : Buy It Like You Mean It.
  • DIY Biology was the nerdiest/collest combo.
  • Jonathan Zdziarski's talk about the iPhone security threat was scary. Everybody who owns an iPhone should read about it. It certainly has changed my behavior.

It was a great pleasure to meet some developers from MITRE. Nice to meet you guys!

Technorati Tags: ,

Why Your Future Sucks

There are few things that I subscribe to in terms of newsletters. But one thing I look forward to reading in my work email inbox every day is the pearl of wisdom the people at Trizzle send me simply from the goodness of their heart. I heart Trizzle. Their motto is:

"Trizle helps your business rock the world."

I don't know what they do for their clients, but their business tips totally rock my world.

Below is one of their posts that I formated to give some personal emphasis and also to fit into a one page Word document so I could print and hang up on my cube (yes, people, I have a cube...). There is a lot more to this post so I recommend reading the original.

Enjoy!

Why Your Future Sucks

Jacko:

1. "In ten years, I will exercise, eat healthy, and live life to the fullest."

2. "But today, I will lounge on the couch, eat chili fries, and live like there are a million tomorrows!"

Lebron:

1. "Next year, I will build the most ridiculous startup the world has ever seen!"

2. "But today, I will read message boards!"

Dikembe:

1. "Tomorrow, I will start on my project."

2."But today, I will relax!"

How We Human People Suck

We psychologically overrate our futures.

Thinking tomorrow will bring us brighter days, we consistently sacrifice our today/now/this-minute time to the freakish wolves.

1. "Tomorrow will be better!"

2. "Oh, don't mind how I suck now!"

3. "Because, I will be smiling tomorrow!"

That's why we:

         put things on credit card

         take out freakish loans

         put off exercise

         eat junk food

         avoid healthy conflicts

         lease expensive cars

         procrastinate on our projects

Thinking our futures will be oh-so super-duper-riffic-o, we use our today/now/this-minute-time wastefully destroying that very future.

BOO!

Let's Reframe Our Perspectives

Try this:

1. Stop thinking 'in the future.'

2. Whatever you do for the rest of your life depends on how you spend today/this-minute/this-second.

3. Done.

If you ever start with a sentence with,

         "In the future, I will..."

...do this:

1.         Look in the mirror.

2.         Slap the @#$% out of yourself.

Then tell yourself:

1. "I will most-likely-probably-like-99% never do anything 'in the future'."

2. "If I want something in the future, I make progress -- even if it's teeny-tiny-tiny progress -- toward that future today."

Virtual goods, virtual gifts 101

I just did a ton of reading about virtual goods. I made quite a leap in understanding about this space, something that now is obvious I had little of. When I first thought of virtual goods, I would think of little virtual thingies people exchanged on Facebook. Through the reading I did, I learned that a whole economy could be augmented by utilizing this medium, and my little mind thinks that only the sky is the limit for coming up with creative ideas to enable people and businesses to further their interests in this new arena. This is the type of problem space that is really interesting to develop technical solutions for, because it is new and interesting, and so you get not only to discover interesting problems but also contribute with creative ideas for better technical solutions.

Backing up a little, I think little virtual thingies are silly. And I think it is okay to think so. Although I have never paid for one, I don't, however, dis-merit them, because it is there for anyone to see that a lot of people do. Where I get really excited about is when we start talking branding though. I do have a business mentality and I love to think about solutions that more directly help businesses succeed (in reaching customers, increasing roi, etc). On a personal level, I totally get the appeal for virtual goods like avatar accessories. I loooove Second Life, so much so that I am never there. Whenever I get in I don't care about getting out, and because I also have many Real Life interests and commitments and it... just not good. Anyway, I totally get it because if I had more time (or less outside commitments, I don't know) I would want to... really, have an empire, nothing short of it. I'm talking, buying land, building a business, etc, and, of course, having the coolest looking avatar. I would painlessly pay for it. Although I also get excited about doing my own technical development but, like I said, I can't really go there... Anyway, another thing that gets me really excited about this business is the gift giving part of it. And this brings me back to the little virtual thingies, I know, but it is that now I see and understand a purpose that I didn't see before. What appeals to me the most in this aspect is that I am sick and tired of stuff: I don't want to give them, and I don't want to receive them. Really, in x-mas and b-days about 50% of gifts are good ones, but the other 50% is such a burden that it is just not worth it. I started trying to give people certificate for services (like massages from local businesses), but they don't have/make time to go! Still, we do want to give. And I think virtual gifts are an excellent alternative. Obviously, they are constrained to only being relevant to people who actively participate in virtual spaces (and none of my family is there and only few of my friends are). But it is something to look forward to.


Eluma Desktop: what is it?

Up front disclosure: I am a software developer at Eluma.

And if you want, I have some beta invites here.



Everywhere I go I talk about the Eluma Desktop, and explaining all that it can do can take a little bit of time. So I started giving people the short version and directing them here, where they can get my own personal description of what it is that it does.

Eluma is an up and coming startup that offers a desktop tool (RIA) to collect, read, organize and share your web "stuff" and RSS feeds, as well as discover what others have publicly shared. On the sharing front, the cool thing is that you share things not only at the rate of 1 item at a time, like pretty much everything out there, but you can compose collections and share the entire thing at once. Even cooler, once you update the collection, everyone subscribed to it gets the update. At first when you collect an item, it is private, so you have to make it public to share it with others.

It is a revolutionary tool that makes it fast and easy to organize anything you could want to collect on the internet by giving you a repository on the desktop (fast) and a browser toolbar for collecting (easy). There is nothing like it in the market. In a much earlier incarnation, it was selected among hundreds of emerging technologies to participate in DEMO 2006, where it won the DEMOgod Award. According to Technology Review just recently:

TR10: Offline Web Applications
Adobe's Kevin Lynch believes that computing applications will become more powerful when they take advantage of the browser and the desktop.

In other words, desktop web applications are in the Technology Review Top 10 emerging technology in 2008. The Eluma Desktop runs on the desktop and is backed by a web server, which gives users the ability to log in from anywhere and access their data, as well as work offline. The tool also provides many web 2.0 features, such as the ability to share collections and tag, comment, and rate items in collections and the collections themselves. Most of these features are available right on the (IE or Firefox) toolbar. It provides organization capabilities via tags and also folders so as to maximize the range of user types.

If you try it and want to leave a comment, it will be very welcomed. We are working hard in directing the development of features in the way that will be useful to real consumers, not only to our little egos.

My Photo

share the love

  • Recommend Me

Attending

I did it

My Twitter Updates

    follow me on Twitter

    Blogroll

    • Amy Hoy
      design, rails, web, writing
    • Jay Neely
      Social Strategist
    • David Cancel
      Making something from nothing.
    • My Better Half
      Blog on Data Mining and Analytics, with a special focus on Oracle. Analytics paves the way to transform databases into Knowledgebases.