America is a land of deals, I am constantly surprised at the number of web sites that post information about good deals and the number of good deals that are available at any point in time if only people are willing to put the effort to search.I subscribe to a bunch of deal sites through my google reader and sift through them, but then there are some many of them that it takes quite some time to go through them. I tried using a RSS filter like feed rinse(feedrinse.com) but it wasn't quite as effective, it does filter the RSS feed and then I can subscribe to that filtered feed from my google reader but it still will give me 5 filtered feeds for five differents sites ,which probably is OK but then I just got curious on how hard it is to do a very basic version of deal finder with absolutely no bells and whistles in python (because I am anyways playing with google app engine , I might as well learn some python)
It wasn't that hard to get the very basic version going.Of course thanks to an awesome library Universal Feed parser( http://feedparser.org) which handles just about all formats for RSS/ATOM and provides a very simple interface of fetching back the results from the feeds
Here is the code (I hope to work on this side project for some more time and try and see if I can get a decent version on web with something like Google App Engine)
Code on pastie.org http://pastie.org/301994
Monday, October 27, 2008
Sunday, October 26, 2008
I have been thinking of a few things for a long long time.One of it is computer science and the other thing is entrepreneurship.Not to mention other things I am interested in - fitness,family,investment,music and reading
At least from the past five or so years I have been wanting to dive deep into these fields.But thanks to my laziness I have been able to go nowhere
with it.
I have now also been theorizing on why I am lazy.I think there are a few things probably that I was doing very wrong
So since I am clear on where I want to get in the next five years and it really should be hard to break them out into near term goals, if I just focus on the tasks till they get done and build the discipline to do the higher priority ones first I think I should be doing better than
atleast what I am doing now :-)
Ok let me get to my first near term goal - figuring out how google app engine works so that I can soon get started on a idea I have for a web site
At least from the past five or so years I have been wanting to dive deep into these fields.But thanks to my laziness I have been able to go nowhere
with it.
I have now also been theorizing on why I am lazy.I think there are a few things probably that I was doing very wrong
- Focusing on Long term goals: I was good at thinking where I wanted to be in say five years from now.These grand plans seems so romantic that I tendto lose touch on what I need to do immediately to get there i.e the short term plan - what I need to do in next one hour, one day and one week.Many a time I would end up day dreaming of how life would be five years from now instead of productively spending time on the near term tasks.
- Distraction: Even if I get to making my short term goals ,I would easily get distracted from the task at hand and switch to another task and then another....Finally at the end of day none of my tasks are done and some of it probably will never get done.So I think unless the task was totally a pathetic , bad and horrible idea to do, one should always make it a habit to take the task to its logical conclusion
- Wrong prioritization: I do make a list of todos every morning most of the morning, but the problem is quite a few of them on the list are what would be classified as "boring" tasks by most people.But that doesn't mean these were the top priority tasks for the day.Now I would easily convince myself that I could always catch up on them later and instead start working on something I find more interesting.The end story - the boring tasks would never be done because I never did them and the interesting tasks would never be done too because I always had the nagging guilty feeling of not working on the high priority tasks.
So since I am clear on where I want to get in the next five years and it really should be hard to break them out into near term goals, if I just focus on the tasks till they get done and build the discipline to do the higher priority ones first I think I should be doing better than
atleast what I am doing now :-)
Ok let me get to my first near term goal - figuring out how google app engine works so that I can soon get started on a idea I have for a web site
Friday, June 20, 2008
some tips from a jruby hacker on hacking jruby
Some good advice if you are interested in getting into Jruby dev
(3:06:39 PM) bgurupra: i am wondering what is the best way to get to start contributing to the code source of jruby,trying to understand it by tracing the code seems a daunting task
(3:07:11 PM) VVSiz: yeah
(3:07:43 PM) VVSiz: bgurupra: the easier approach would be to start running the rubyspecs (or writing new ones) and start fixing bugs exposed by those, one by one
(3:08:32 PM) bgurupra: ok yeah I read that on your blog :-) but do you suggest some theoritical read up of compiler theory?lex , yacc etc?
(3:09:09 PM) VVSiz: bgurupra: in most cases you don't really need to do that :)
(3:09:24 PM) bgurupra: oh ok
(3:09:33 PM) VVSiz: that stuff is mostly done and works OK now (with enebo and headius taking care of it)
(3:09:44 PM) VVSiz: and it *IS* very hard path to start up with JRuby :)
(3:10:13 PM) VVSiz: I'd say that starting looking at the jruby bugs and picking up the easy ones until you comfortable, is better
(3:10:33 PM) VVSiz: and in most cases, the fixes are not in compiler/interpreter, but in core class libraries
(3:10:54 PM) VVSiz: and for those there is a very simple mapping Array (in Ruby) -> RubyArray (in JRuby)
(3:11:00 PM) VVSiz: String -> RubyString, etc.
(3:11:17 PM) VVSiz: so, 99% of your time you might spent in org.jruby package, where all those core classes reside
(3:11:39 PM) bgurupra: ok yeah I'll take that approach
(3:11:50 PM) VVSiz: another good way to help out is to run various benchmarks, identify the places where JRuby is slower than MRI and figure out why
(3:12:01 PM) VVSiz: or even writing small benchmarks that clearly show the problem
(3:12:08 PM) bgurupra: OK..
(3:12:46 PM) VVSiz: but I tell ya, interesting stuff, but not that easy, especially on top of the VM, with different options, different garbage collectors, different platforms :)
(3:13:42 PM) bgurupra: yeah sure there is loads of fun stuff :-)
(3:13:43 PM) VVSiz: one of the biggest issues in that area, it seems, is Rails performance. everybody agree that Jruby should be much faster with Rails, but nobody could come up with the exact places where JRuby wastes its time
(3:13:51 PM) VVSiz: yep, it all over the place
(3:14:18 PM) VVSiz: pick up any bug, and chances are, you'll have fun :)
(3:14:40 PM) bgurupra: yeah I'll get to the Jira right away :-)
(3:15:02 PM) bgurupra: thanks as always VVSiz for your inputs/help :-)
(3:15:36 PM) VVSiz: sure :)
(3:06:39 PM) bgurupra: i am wondering what is the best way to get to start contributing to the code source of jruby,trying to understand it by tracing the code seems a daunting task
(3:07:11 PM) VVSiz: yeah
(3:07:43 PM) VVSiz: bgurupra: the easier approach would be to start running the rubyspecs (or writing new ones) and start fixing bugs exposed by those, one by one
(3:08:32 PM) bgurupra: ok yeah I read that on your blog :-) but do you suggest some theoritical read up of compiler theory?lex , yacc etc?
(3:09:09 PM) VVSiz: bgurupra: in most cases you don't really need to do that :)
(3:09:24 PM) bgurupra: oh ok
(3:09:33 PM) VVSiz: that stuff is mostly done and works OK now (with enebo and headius taking care of it)
(3:09:44 PM) VVSiz: and it *IS* very hard path to start up with JRuby :)
(3:10:13 PM) VVSiz: I'd say that starting looking at the jruby bugs and picking up the easy ones until you comfortable, is better
(3:10:33 PM) VVSiz: and in most cases, the fixes are not in compiler/interpreter, but in core class libraries
(3:10:54 PM) VVSiz: and for those there is a very simple mapping Array (in Ruby) -> RubyArray (in JRuby)
(3:11:00 PM) VVSiz: String -> RubyString, etc.
(3:11:17 PM) VVSiz: so, 99% of your time you might spent in org.jruby package, where all those core classes reside
(3:11:39 PM) bgurupra: ok yeah I'll take that approach
(3:11:50 PM) VVSiz: another good way to help out is to run various benchmarks, identify the places where JRuby is slower than MRI and figure out why
(3:12:01 PM) VVSiz: or even writing small benchmarks that clearly show the problem
(3:12:08 PM) bgurupra: OK..
(3:12:46 PM) VVSiz: but I tell ya, interesting stuff, but not that easy, especially on top of the VM, with different options, different garbage collectors, different platforms :)
(3:13:42 PM) bgurupra: yeah sure there is loads of fun stuff :-)
(3:13:43 PM) VVSiz: one of the biggest issues in that area, it seems, is Rails performance. everybody agree that Jruby should be much faster with Rails, but nobody could come up with the exact places where JRuby wastes its time
(3:13:51 PM) VVSiz: yep, it all over the place
(3:14:18 PM) VVSiz: pick up any bug, and chances are, you'll have fun :)
(3:14:40 PM) bgurupra: yeah I'll get to the Jira right away :-)
(3:15:02 PM) bgurupra: thanks as always VVSiz for your inputs/help :-)
(3:15:36 PM) VVSiz: sure :)
Tuesday, June 10, 2008
no clear in cygwin :-(
Of all the unix commands I use the most clear is probably the number one on the list and cygwin does not have a clear command :-( and I hate cluttered screens
I could get around it by adding this line in the .bashrc file
alias clear="cmd.exe /c cls" though!
I could get around it by adding this line in the .bashrc file
alias clear="cmd.exe /c cls" though!
Monday, June 9, 2008
ah compact ruby!
I have this problem of messing up my desktop all the time.I keep all sorts of temp stuff(files and folders and short cuts) on the desktop and forget to clean up and before I know its one BIG mess.Since I am trying to pick up on a bit of ruby I tried writing a little script that would clean the desktop for me and put all the stuff i haven't touched in a while into a temp folder somewhere
Not to mention wifey was in a bit of a bad mood and I was better off looking busy :-)
I must say Ruby's code was much compact and more elegant than what I would have been able to do with Java.With some basic error handling and re factoring everything into logical methods it was still just 35 lines of code
Not to mention wifey was in a bit of a bad mood and I was better off looking busy :-)
I must say Ruby's code was much compact and more elegant than what I would have been able to do with Java.With some basic error handling and re factoring everything into logical methods it was still just 35 lines of code
Wednesday, May 14, 2008
So following up on my previous post,I figured the only way to get to path 2 is to do something on path 2 before somebody hired me to do path 2 stuff.Did a bit of research around looking for open sources projects that were interesting.I have kind of picked JRUBY for now, it is reasonably established and at the same time has lot of stuff still being worked on it or atleast thats what their JIRA says http://jira.codehaus.org/browse/JRUBY.So I tried to get it to compile on my machine only to realize it needed Java 1.5.Then I just tried forcing it to compile with Java 1.4 and then thanks to the tons of errors it spewed, I realized how back dated my Java skills were and spent some time learning about Enums and generics and static imports with java 1.5 which has been around for over 4 years now and I don't see we using it on our project at office anytime in the next 2 years atleast :-(
Monday, May 12, 2008
I have been in what is called the software services industry for the past 6 and a half years now and in that last 6 and a half years I have come to realize that there are distinctly two different paths you can take if you are a software engineer.(And lets cut the crap of the different titles people have as junior programmer, senior programmer, architect, designer etc etc, lets keep it simple a software engineer is one who builds software to solve problems)
To be successful on Path 1
PS:Now don't get me wrong I know there are problems in the domain of path 1 which are extremely challenging and I know there are problems in path 2 which are very boring,I am just talking of the averages of what I *think* it is like to be in path 1 and path 2
- The first path is where you are building software to solve business problems directly
- The second path is where you build software so that people on the first path can use it to solve business problems.
To be successful on Path 1
- You need to love talking to the business people and understand their requirements and gain their confidence.
- You need to be a jack of all trades, need to do (boring?) things like requirements analysis, do reviews, come up with designs, code them, test them.(But you would rarely need much knowledge of any of the things they taught you at school under the science called computer science)
- Your presentation skills and communication skills play a big part in being successful
- You will eventually have to take care of a team of software engineers and a good amount of your time will be spent on being responsible for their work as well
- And finally you become technology agonistic, you know no coding just creating presentations and word documents and understanding standards is what it means :-)
- Hacking more and talking less to people especially who don't exactly understand how computers work(a.k.a customers)
- Yeah you need to document,design,code as well here but much more fun doing this for say the next version of your pet Firefox extension than if you are doing this for release 17 of an old application for pulling customer number information from a stupid mainframe system
- If your hacking skills are par excellence, people will bear with your pathetic presentation and communication skills .Afterall its the inside that matters and not the outside
- Maybe you will end up being a lead here as well, but I am sure there are multiple projects where the complexity of the project is so high that you will still be valuable as an indiviual contributor
- The more you are here the more interesting problems you will solve and the more cool you will become and more cool you are.Its a perspective again, some people might find IT Architects from big corporations wearing 3 piece suits and doing slick presentations cool but then lets screw those people now :-P
PS:Now don't get me wrong I know there are problems in the domain of path 1 which are extremely challenging and I know there are problems in path 2 which are very boring,I am just talking of the averages of what I *think* it is like to be in path 1 and path 2
Subscribe to:
Posts (Atom)