Sunday, January 09, 2011

A new, interesting way to accept donations: Flattr

Ok, here is something potentially interesting regarding finding tiny streams of revenue for starving bloggers (no, not me -- I consider mine more a community service kind of deal :)... A small company from Sweden called Flattr seems like a nice way to allow readers to make micro-payments to various web sites they consider worth a tip. Idea is pretty simple, and has been around for a while: there should be a way to make small monthly allowances (paid by web users individually) be distributed to worthy sites, simply, conveniently and efficiently.

But I like the specifics of they Flattr does it; from anonymity to reciprocity: latter meaning that to be able to receive payments, one has to be a member and make payments. Although there is no requirement for parity (i.e. no limitation on how much one can receive -- it is possible to spend as little as 2 euros per month and receive unlimited payments, as far as I understand it), it is quite compatible with current models of how human mind considers fairness. And of course it is a very clever and simple way to foster usage, from business perspective.

I will need to check this out more: I already became a member, and will start using it... I just hope there are sites that I can tag as recipients. Feel free to add comments for stuff you think I might be interested in reading, and that have Flattr widget.

Friday, April 09, 2010

Rock on Kohsuke!

Term "Rock start programmer" is thrown around casually when discussing best software developers. But as with music, true stars are few and far between. While knowing the lifestyle can help, you got to have the chops, be able to influence and inspire others, and obviously deliver the goods to fill the stadiums, and data centers.

In Java enterprise programming world there are few more worthy of being called a rock star than Kohsuke Kawaguchi. List of projects he has single-handedly built is vast; list of projects he has contributed to immense, and his coding speed mighty fast (as confirmed by his use of term POTD, Project of the Day -- very very few individuals write sizable systems literally in a day!). It all makes you wonder whether he is actually a mere human being at all (maybe he's twin brother of Jon Skeet?!). For those not in the know, list of things he has authored or contributed to contains such programming pearls such as Multi-Schema Validator, Sun JAXB (v2) and JAX-WS implementations, Hudson, Maven, Glassfish, Xerces, Args4j, Com4j, and so on and on (for a more complete list, check out his profile at Ohloh; read and weep)

But to the point: it seems that mr. Kawaguchi is now moving on from sinking ship formerly known as Sun. This is not a sad thing per se (we all gotta move on at some point), nor unexpected -- steady stream of Sun people leaving Oracle has been and wil be going on for a while -- but it still feels strange. End of an era in a way; gradual shutting down of Sun brand. Image of a lonely cowboy riding against Sun settings (pun intended) comes to mind.

Anyway: rock on Kohsuke, onnea & lycka till! I look forward to seeing exactly what awesomeness you will come up with next!

Monday, March 22, 2010

Non-intuitive aspects of Git: handling of remote branches (especially creation)

Lately I have gotten to use Git as it is the production SCM of choice for my new employer (having recently taken over from Subversion). This is generally a good thing: while I had learnt to like p4 after using it for a while (and especially after reading "Practical Perforce"), and appreciate svn's finally replacing cvs as the "default open-source SCM, there is something to be said about efficient distributed SCM system. And there is lots of excitement behind svn: consensus is building that Git will become the de facto SCM for open-source development.

For the most part Git has proven to be worth the hype it has generated and working with it has been easy. But the first real speed bump for me was trying to get branches to work. Most documentation focuses on working with local branches (which are usually "personal", single user branchs), which have their uses for development by large teams, or heavily shared codebases. Nothing wrong with that.

But for my own uses day-to-day uses with open source projects, it is so-called remote branches (ones that live on shared "master" repository) that matter more. Specifically, branches used for "legacy" versions, needed for adding patches for versions other than the most recently released stable: having "1.3" and "1.4" branches while trunk/mainline/master being used for upcoming "1.5" version (for example).

And this is where things get bit unintuive and complicated. Fortunately, after googling for an hour, I found this article, which gave me specific recipe I needed:

# 1. Create the remote branch
git push origin origin:refs/heads/new_feature_name

# 2. Make sure everything is up-to-date
git fetch origin

# 3. Then you can see that the branch is created. # (this should show ‘origin/new_feature_name’) git branch -r # 4. Start tracking the new branch git checkout --track -b new_feature_name origin/new_feature_name # 5. Make sure everything is up-to-date git pull

plus absolute necessary follow-up for "Cleaning up Mistakes":

# If you make a mistake you can always delete the remote branch
git push origin :heads/new_feature_name

and that's it. I hope. If not, I'm sure to gripe about that in future. :-)

Wednesday, October 07, 2009

Test First? Only if tests are the first and foremost deliverable...

Ok, given that my view on testing, unit tests, and "things of that nature" has slowly but surely evolved over time, I like reading what others have to say on subject. The only readings I steer clear of are fanboy articles, and possibly "it sucks because I'm contrarian" counterpoints. This still leaves lots of good material. For example, "Unit testing in Coders at Work" is a delightul compilation of multiple good (and some so-so) view points.

My personal favorite is the last episode: case of "a TDD proponent and another good programmer". Although it is but a single case I do think it suggests something simple yet fundamental: you tend to achieve whatever is your main goal. And if you consider Testing with capital T to be the most impotant thing; well, you will get good tests. But what does NOT follow is that you get stellar design or even code. You just get a design and an implementation that works the way you expected it to work. Which is not a bad thing per se; just not necessarily intrinsically good. That is: good design and implementation untested is better than perfectly tested but badly designed or implemented thing; it is easier to find implementation problems (bugs) than to re-design or re-implement.

That is probably my biggest misgiving regarding "Test First" idea: it does suggest that testing comes before anything else -- not just temporally, which may or may not make sense (often does; as often does not), but most importantly, as priority. For me testing is a very important supporting area: very useful (as I have said, none of my open source projects would have nearly as good quality and maintainability as they have without lots of time spent on writing and maintaining test code!), but ultimately not a goal but a tool to achieve the goals.

With respect to article, another pleasant observation is that I tend to agree with most practicioners interviewed. Pragmatism seems to be a core trait of good programmers: if not a defining one, at least one strongly correlated with core competencies. I suspect that has lots to do with the failure of the "TDD guy" on his try with Sudoku solving, as well as misplaced (if understandable, considering he was writing material for his blog) focus on testing.

Thursday, September 03, 2009

Mo' On Cowtalk: 100 Entries per year; Even/Odd rule; rate me!

First things first: as you may have noticed, it is now possible to rate Blog entries here (thanks Haloscan for this update). Feel free to rate articles -- this will help me get a feel as to what works and what doesn't. Besides, it should be much quicker to click the star icon than write even a short comment.

1. Goal: 101 articles per year!

After tallying up number of entries I have written so far this year (about 80), I realized that I might be able to get total annual count to 3 digits. So just to improve odds that I actually will reach that goal, here's my public pledge: I will write more than 100 entries this year. As any good software engineer would document this, I'll add "write 101 blogs" on my TODO list. :-)

2. Limiting Fillers: Even/Odd rule

Sort of related to above: I will also do my best to follow what I call the "even/odd rule". From now on, I will try write at least half of the articles on "hard" (as opposed to soft) topics: technical subjects; coding, design, architecture, or things directly related to such topics. This is the "even" part. The rest ("softies") can be about fluffier stuff; be that related to food, music or human insanity -- that's the "odd" part. Hopefully this will balance competing goals of writing many entries (more fluff) with strive for technical relevance (approximation of quality); technical articles take longer to write, since they often entail having to write sample code or so measurements. Plus it's often more fun to write light tongue-in-cheek (or, foot in the mouth...) material; and fundamentally just keeps me off trouble.

With respect to technical entries: what makes this little bit more challenging is that I have started to write more and more on FasterXML documentation Wiki (esp. Jackson documentation -- check it out!). Nonetheless, until FasterXML gets an "official" Wiki, this will be my main recreational (and, possibly, technical) writing media (only rivalled by my drivels on mailing lists).

Anyway: I am always looking for more feedback on my writing; so beyond starting to rate entries, please continue adding comments. They have been very useful, and hopefully will continue to be in future.

Thursday, July 16, 2009

Better Coffee, Better Work (results?)

Well, although this article ("Top 10 Tips and Tricks for Better Coffee") does NOT claim above, I do. So now I'm off to find a cheap coffee press to improve my code, I mean, coffee, quality! :-)
Interesting reading, and readily applicable. Sweet.

... and if (read: when) it works, what you will see is a significant incremental revenue for a well-known general merchandise on-line retailer.
Feel free to buy more of AMZN shares based on this tip & thank me later when you have earned a fortune due to rocket-like run on share price after said revenue increase. It's a good investment at any rate, and planned to pay for my next year home renovation project (unless I can somehow convince my dear readers to be more inquisitive regarding commercial interludes you see on the right-hand side -- in which case it'll be another big-name online company that'll pay for it!).

(Q: should I maybe cut back on coffee consumption, before writing blog entries? You be the judge...)

Tuesday, July 07, 2009

Fear and Loathing with Windows Vista

Ok: so far I have been wondering if there's a reason why Windows Vista has gotten bad rap. I mean, up until now. No wonder any more -- I have tried using Vista for past week or so. And now it is quite clear why people might hate, despite and loathe it. My number one guess: it sucks like no tomorrow.

I mean: a simple thing like printing to a network printer is apparently beyond capabilities of this marvel of engineering. At work I tried printing a 2 page document to a network printer. Workflow for this task goes like so:

  1. Ask Vista nicely to locate printers in da hood: it will find 9 out of 200+ printers there are, none of which is in the same building; I am not entirely convinced these are not just random names drawn out of some sw engineers a$$. At any rate, none is a real printer within building I work at.
  2. Lend Vista a helping hand (first with just one finger raised...): tell it IP name to have a look at.
  3. Stare at the popup that claims it has no idea what type of a printer this might be; offering a not-so-helpful list of 79 known printer manufacturers, most with 500+ types of printers
  4. Go check the actual type of printer (from its side), write it carefully down
  5. Cross-check with list Vista gave you: notice that there is no such printer amongst thousands listed (I wonder if these are even real printers... maybe they were just generated using Jabberwocky)
  6. Try using something that is as close to the actual type as possible (same manufacturer, same product line, same number, couple of same letters)
  7. Try printing
  8. Observe Vista producing to print a stack of paper thicker than your local phone book -- likely because it saw no problem in seding Postscript file to what appears to be a PCL printer.
  9. Count your blessing when half-way through printing there is paper jam that prevents some of paper waste
  10. Wonder out aloud how is it that previous versions of Windows managed get above (minus printing tons of crap; replaced with printing out the actual doc) done with fewer steps. As does MacOS; and even Linux.

Now, some of you may think I just made above up. I so wish this was the case, but no, it is a sad but true story. And the rest (who heard me curse, and wave that stack of paper angrily, in general direction of my laptop); pardon my french. Yes, that kind of language is not suitable for corporate setting, I know. Next time I will use my mother tongue for expressing my true feelings.

I don't know if there is already a law outlawing manu(factu)re, distribution and selling of Vista. But if not, I sure hope Obama admistration considers it a crime punished by something severe. Like having to use Vista for all your work, for term to exceed 20 years. Without parole.

Friday, June 26, 2009

Finally, after 3 years and 160 blog entries...

I collected enough clicks for the Big G, (and specifically their omni-present AdSense program), to get actual payment scheduled! These are 100$ (minimum amount program pays out) won by aspiration, inspiration and perspiration, and bit of persistence and perseverence as well. But maybe next time I should just blog about something like, asbesto law suits or mesothelioma. :-)

Anyway: money is still not in the bank (hence, scheduled), but I trust to find a hundred bucks minus taxes, on my low-interest-bearing checking account, in very near future. And in the meantime, my AdSense account now displays two new links too (stats since last payment!)

ps. Just to make sure this is not interpreted the wrong way by my colleagues -- no, this new-found wealth was in no way contributing to my recent career decisions. :-D

Tuesday, May 19, 2009

On importance of choosing the right tool

Tool Choice Matters: it makes the difference between "Nailed it" and "Screwed it up"...

Tuesday, April 21, 2009

Educational, and Good Fun Geeky Waste of Time: StackOverflow!

From not-so-news-anymore department: I have grown addicted to another geeky game of sort: . It's just a simple question/answer site for programmers, but thanks to its game-like scoring system and merit badges it is subversively addictive. Perhaps I shouldn't be surprised, really, having been addicted to on-line games before: but at this point I should know better. :-)

On plus side (well, additional plus?), usage can actually be useful and educational too. Beyond trying to increase your karma by answering (and commenting, voting) many answers (and questions too) are actually useful and interesting. After all, there are only that many co-located knowledgable co-workers from whom you can learn. But number of colleagues you can collaborate with in virtual environment is less bounded; and in many ways ranking is more merit-based than the pecking order at your one's place of employment. This makes it easier to consider answers more on merits of themselves than on popularity of the guy who answered it (of course you can be a fanboy too and just look at ranking -- there's Jon Skeet that knows everything -- it's up to you)

At any rate: if you happen to roam about, I decided to use another Alter Ego there (StaxMan) -- but you can still see the usual cowboy logo, to spot me.

And now, if you'll excuse me, I am off to earn my first thousand points and a silver badge!

Related Blogs

(by Author (topics))

Powered By

Powered by Thingamablog,
Blogger Templates and Discus comments.

About me

  • I am known as Cowtowncoder
  • Contact me
Check my profile to learn more.