November 19, 2009

exception handling, bug reporting

Then when an error occurs, try to only ask the user questions you can't answer programatically. Ideally, your exception handling should already track their current action (saving an invoice), current context (invoice screen), the entity being acted upon(invoice #10013), and all the exception info from the program. If you can't capture this and retrieve it remotely, feed it to your web form (in URL params or whatever) when the user clicks 'report this issue'. Ensure you pay attention to any sensitive data requirements.

Then you should only need to ask your users the human questions like - 'How can we best contact you about this issue?' (method / times / etc.), and give them an idea of how long it'll take for them to get a response from a human.
What is the best way to cater for users reporting bugs ? - Stack Overflow
Blogged with the Flock Browser

November 18, 2009

SVN, Git

AMO = addons.mozilla.org team...
Moving away from SVN

We moved AMO into SVN in 2006 and it’s treated us relatively well. Somewhere along the line, we decided to tag our production versions at a revision of trunk instead of keeping a separate tag and merging changes into it. It’s worked for us but it’s a hard cutoff on code changes, which means that while we’re in a code freeze no one can check anything in to trunk. As we begin to branch for larger projects this will become more of a hassle, so I’m planning on going back to a system where a production tag is created and changes are merged into it as they are ready to go live.

Most of the development team has been using git-svn for several months and, aside from the commands being far more verbose, we haven’t had many complaints. We’ve discovered Git is a much more powerful development tool and we expect to use it directly starting some time next year. As of now, we expect to maintain the /locales/ directory in SVN so this change doesn’t affect localizers but we’ll keep people notified if there are any changes to that process.
All Night Diner : AMO Development Changes in 2010

so... should we consider Git instead of SVN?

production tag and merging stuff in when stable sounds like a nice process...
Blogged with the Flock Browser

September 7, 2009

JavaRebel - cut dev time

JavaRebel is a JVM plugin (-javaagent) that enables you to see changes to your code immediately, without the need to redeploy an application or perform a container restart. It saves 5-10 minutes out of each hour of coding - one redeploy at a time.
JavaRebel | ZeroTurnaround.com
Blogged with the Flock Browser

August 25, 2009

ServiceMix Enterprise Service Bus...

Apache ServiceMix is an open source ESB (Enterprise Service Bus) that combines the functionality of a Service Oriented Architecture (SOA) and an Event Driven Architecture (EDA) to create an agile, enterprise ESB.

Apache ServiceMix is an open source distributed ESB built from the ground up on the Java Business Integration (JBI) specification JSR 208 and released under the Apache license. The goal of JBI is to allow components and services to be integrated in a vendor independent way, allowing users and vendors to plug and play.
....
ServiceMix is lightweight and easily embeddable, has integrated Spring support and can be run at the edge of the network (inside a client or server), as a standalone ESB provider or as a service within another ESB. You can use ServiceMix in Java SE or a Java EE application server.
....
ServiceMix is .... integrated with include JBoss [, ] .... provides an implementation of WS Notification [and] .... includes many JBI components including HTTP, JMS, BPEL, Rules, and many more ...
Apache ServiceMix, the Agile Open Source ESB -- Home

Blogged with the Flock Browser

Integrating EJB 3 and Spring

EJB 3 and Spring are often cast as contenders. However there are a growing number of applications that combine the strengths of both these technologies to create compelling best-of-breed solutions.

This session is an introduction to creating powerful hybrid solutions with EJB 3 and Spring. It outlines some of the use cases where such integration makes sense and demonstrates how to inject Spring beans into EJB, ... as well as inject Session beans into Spring beans.
....
Attend and learn how to tightly integrate Spring and Java EE 5 to utilize EJB 3 features, such as:
  • Minimal configuration;
  • 100% annotations;
  • Distributed transactions;
  • JAAS security;
  • Seamless JPA EntityManager/EntityManagerFactory injection,
  • Statefulness;
  • Passivation.
TheServerSide Java Symposium - Language
Blogged with the Flock Browser

August 24, 2009

Flock Browser - Flickr Service Outage - Status and Explanation | Flock

interessant å sjå flock si handtering av branch- og bug-problematikk...
Why do browser updates take so long?

Making an update or applying fixes to the Flock browser is sometimes quick and sometimes not. Regardless of how easy to fix, we still have to take all new versions of Flock through a rigorous testing process to ensure that we deliver stable, reliable code to our loyal community.

When our Flickr integration broke, we were already partway into the process of putting together Flock 2.5.1, which includes some key fixes: some rather troublesome Twitter bug fixes, some broken Facebook Chat functionality, and a bunch of other items that are negatively affecting many Flockstars.

At that point the choice was fairly clear: if we stopped work on 2.5.1 and created a new version of Flock that *only* fixed the Flickr integration, we'd double the amount of testing we had to do...and we would delay the release of the 2.5.1 improvements, hurting the folks who aren't affected by the Flickr issue but are affected by Twitter and Facebook Chat issues. By including the Flickr fix in 2.5.1, we're saving time and getting you a whole bunch of fixes sooner.
Flock Browser - Flickr Service Outage - Status and Explanation | Flock
Blogged with the Flock Browser

agile design...

I advocate and practice a responsive style of design. I emphasize the importance of requirements uncertainty
....
No design style can simultaneously minimize cost, maximize revenue, and maximize options in both the short-term and the long-term. Choosing which constraints to resolve early and which to defer results in a style of design whose values and process are clear and easier to communicate. Being clear is the beginning of the conversation about design.
Three Rivers Institute » Blog Archive » The Design Dilemma
Blogged with the Flock Browser

July 17, 2009

get ms ie to handle standards?

IE7 is a JavaScript library to make MSIE behave like a standards-compliant browser. It fixes many CSS issues
/IE7/
Blogged with the Flock Browser

July 12, 2009

Software Development Today: Why specialization in Software development is bad for business

Specialization in software development hurts our business! I'm not talking about the kind of specialization that leads to spend some more time in one area than in others. I'm talking about the specialization that leads us to have ... programmers that don't do anything else!
....
This is not to say that we don't need people with particular strengths in some areas (called "generalizing specialists").
Software Development Today: Why specialization in Software development is bad for business
Blogged with the Flock Browser

July 6, 2009

questions for daily stand-up

this is from a pdf on a different topic entirely (PDF: Dr Holt's CCPM Games - Sixes Game), but in the middle (p.8) is a few questions that could be used for a quick daily stand-up:
1. Did you complete the Active Task Yet?
If not: 2. How Much Time is Remaining?
If not: 3. What are you awaiting?
If not: 4. What can we do to help you?
no. 1 and 2 is in effect info om MIT(s), the Most Important Task(s).
no. 3 and 4 is in reality info on what i call BPP (SPP in Norwegian): Biggest Potential Problem.

this could also be used along with a kanban board, especially if you limit yourself to only one Active Task most of the time.

positive effects of asking/ providing this daily:
  • people will recognize the urgency of completing tasks
  • people will disconnect the due date from the actual completion of the task
  • giving time remaining leads to a better daily view of actual project buffer status
  • having a list of BPPs/ "what's holding up our process" is extremely valuable for process improvement and planning
  • "how can i help" may actually provide help to lingering tasks
NB: ask the 4 questions daily, without much discussion, without penalty, with assistance as needed

July 1, 2009

rapid, "throw-away" prototyping is the crucial and neglected stage in project design

a problem I think is endemic in the industry these days [is] the inability or unwillingness to engage in rapid prototyping. Every successful project I've ever worked on (and I've worked on some fairly large enterprise-sized projects), we started by designing and coding a quick "throw-away" skeleton of the application, that let us look at how the thing worked, where the unseen warts were, and where the vendors had lied about their APIs, etc. This is the crucial and neglected stage in project design, one that most modern design paradigms ignore or actively discourage.
The Hacker Ethic - Harming Developers? - O'Reilly Radar
Blogged with the Flock Browser

June 24, 2009

VirtualBox

VirtualBox is a powerful x86 virtualization product for enterprise as well as home use. Not only is VirtualBox an extremely feature rich, high performance product for enterprise customers, it is also the only professional solution that is freely available as Open Source Software
VirtualBox

spesielt interessant for ei dedikert test-/ CI-maskin (kontinuerleg integrasjon), der det kan køyrast ei eiga VM for kvar kunde-konfigurasjon som er under test/CI, kopiert frå ein felles mal med linux, postgresql og jboss. dvs at me treng berre å helda ved like ein mal...
Blogged with the Flock Browser

June 16, 2009

June 6, 2009

prevent annoying non-secure warning in ms ie

"a protocol-independent absolute path:

img src="//domain.com/img/logo.png"

.... prevents that awful "This Page Contains Both Secure and Non-Secure Items" error message in IE"

"If the browser is viewing an page in SSL through HTTPS, then it'll request that asset with the https protocol, otherwise it'll request it with HTTP."
comment by Paul Irish @ Hidden Features of HTML - Stack Overflow
Blogged with the Flock Browser

June 2, 2009

CubicTest

CubicTest is a graphical Eclipse plug-in for writing Selenium and Watir tests. It makes tests faster and easier to write, and provides abstractions to make tests more robust and reusable.
CubicTest
Blogged with the Flock Browser

April 23, 2009

Remote debugging

Har ikke lest denne enda, men høres interessant ut...

March 18, 2009

minify - Google Code

Minify is a PHP5 app that can combine multiple CSS or Javascript files, compress their contents (i.e. removal of unnecessary whitespace/comments), and serve the results with HTTP encoding (gzip/deflate) and headers that allow optimal client-side caching.
minify - Google Code


maybe enough reason to get php on java?  ;)
Blogged with the Flock Browser

March 11, 2009

program manager (joel ++) vs product owner (scrum)

Having a good program manager is one of the secret formulas to making really great software.
....
a program manager would ... Design UIs ... Write functional specs ... Coordinate teams ... Serve as the customer advocate
....
One of the best things a program manager can add to the software design process is a second opinion as to how things should be designed
....
A good program manager will come with her own ideas for how the UI should work, which might be better, or worse, than the developer’s idea. And then there’s a long debate.
....
To make sure that the debate happens respectfully and on a rational basis of facts, it’s absolutely critical that the program managers and developers be peers. If developers report to the program manager, at some point during the debate the program manager is going to get sick of the whole thing and just say, “OK, enough talking, now we do it my way.” When they’re peers, this can never happen.  It’s a little bit like courts of law: we don’t allow a lawyer for one side to be the judge, and we work on the theory that the truth is most likely to be uncovered through a process of debate between equals. The debate can only be a fair one if neither side has an unfair advantage.

This is an important point ....  Now pay attention. Programmers can’t report to program managers which means, among other things, that the development lead, or the CTO, or the CEO, can’t be the person who writes the specs.

The number one mistake most companies make is having the manager of the programmers writing the specs and designing the product. This is a mistake because the design does not get a fair trial, and is not born out of conflict and debate, so it’s not as good as it could be.I learned this the hard way.
How to be a program manager - Joel on Software


on another note, product manager seems closely related to product owner in scrum...

Product Owner
The Product Owner represents the voice of the customer. They ensure that the Scrum Team works with the right things from a business perspective. The Product Owner writes user stories, prioritizes them, then places them in the product backlog.
....
The product backlog is property of the Product Owner. Business value is set by the Product Owner. Development effort is set by the Team.
....
The sprint backlog is property of the Team. Estimations are set by the Team.
Scrum (wikipedia)


a couple of links on the comparison between product manager and product owner... and a critic of the product manager role...
Blogged with the Flock Browser

March 2, 2009

full import from cvs to svn / search svn history

you can try to import your CVS repository with all associated history into Subversion
.... is the most desirable and also the most difficult. Fortunately, some tools exist to help with this, including cvs2svn, a program that attempts to import your old CVS projects and their history into a Subversion repository. cvs2svn can be downloaded from http://cvs2svn.tigris.org/
Converting from CVS to Subversion

And search old code:
This might make it easier to delete obsolete code without loosing access to the smart things you did there - if you should need to look at it again someday...

Blogged with the Flock Browser

February 23, 2009

eclipse update site for Resource Bundle Editor

the Resource Bundle Editor com.essiembre.eclipse.i18n.resourcebundle Version 0.7.7 is now available on our update site http://www.nightlabs.de/updatesites/development/
Forum - Announcements - Resource Bundle Editor on Update Site - jfire.org - Free / Open Source ERP


ref http://sourceforge.net/project/showfiles.php?group_id=125041
Blogged with the Flock Browser

February 19, 2009

subclipse vs subversive...

Subclipse vs. Subversive at BarneyBlog
I tried Subversive as well but then read an insightful post by one of the Subversion developers …

http://eclipsezone.com/eclipse/forums/t77149.rhtml

Scroll down to entry #10 I think…

After reading that I switched back to Subclipse…

February 18, 2009

Vil avlive forhatt nettleser - digi.no : Personlig teknologi

Flere av Norges største nettsteder har innledet en kampanje mot Internet Explorer 6.
Vil avlive forhatt nettleser - digi.no : Personlig teknologi

hmm - kanskje me endeleg kan byrja med graceful degradation?

"Graceful Degradation is the principle that a web page should be
coded in such a way that if a browser cannot cope with something in it
the page can nonetheless be displayed in a simplified form
." (Ben's web prog.)

"Graceful degradation has two basic rules:
  1. Any browser must be able to view the content of the site.
  2. Any browser must be able to navigate the site."
....
"The simplest way to avoid box model problems is to make sure they don't
matter much. If your box has a fixed width, a 5px padding and a 1px border,
Explorer will show it 12px smaller than the other browsers. If the design is
fluid enough to accommodate this difference you don't need to worry."

(fluid thinking, digital web mag.)

ev progressive enhancement...
poenget er vel at me kanskje har fått litt meir aksept for ulik oppleving i ulike weblesarar, ift ikkje-essensielle bells and whistles...
Blogged with the Flock Browser

Tapestry Central: Importance of toString()

Tapestry mostly use ToStringBuilder from Jakarta commons-lang.
Tapestry Central: Importance of toString()
Blogged with the Flock Browser

February 11, 2009

get selected dynamically from list

i.e., dynamically updated list of checked choices in a simple list of checkboxes and their labels.

(note to self...)

assumed (h)tml structure:
- divs with a certain class, containing inputs and labels
- inputs of checkbox type
- labels attached to the checkboxes

f.ex:

(h)tml:

<div id="updatedList" style="float: left; width: 150px;" />

<div id="column2" style="margin-left: 155px; " />

  <div class="box">
     <input type="checkbox" id="c1" onclick="updateList()">
     <label for="c1">Checkbox 1</label>
  </div>
  <div class="box">
     <input type="checkbox" id="c2" onclick="updateList()">
     <label for="c2">Checkbox 2</label>
  </div>

</div>

js (w/prototype):

Event.observe(window, 'load', updateList);

function updateList() {
   var sel=[]; //selected list elements
   var all=$$('div.box'); //all list elements, in form of enclosing divs
   all.each(
     function (e) {
       if (e.down('input').checked == true)
         sel.push('<br />' + e.down('label').innerHTML);
     }
   );
   $('updatedList').update(sel);
}

January 9, 2009

java to rtf, aspose.words

Aspose.Words allows developers to build or modify documents and formatting with ease using a document object model consisting of over 100 classes.

Developers can programmatically create, modify, extract and replace all document elements including sections, headers, footers, paragraphs, lists, tables, text, fields, hyperlinks, bookmarks and images. Developers can specify detailed formatting for any document element. All drawing objects including shapes, textboxes, images, OLE objects and controls are supported and you can perform things such as insert watermarks or extract images easily.

Aspose.Words also provides useful security and utility features like joining or splitting documents, copying fragments between documents, protecting and unprotecting documents, modifying document properties and inserting HTML fragments into the document.
DOCX DOC RTF WordML HTML TEXT-Java .NET Word Processing Components

hmm - stiff price, but might be worth it...
Blogged with the Flock Browser

January 6, 2009

Users Fix Parking Ticket Machine Interface Themselves - uselog.com | the product usability weblog

And once again it's a parking ticket machine that drives users nuts .... this time to the extent that they've taken their fate into their own hands and added some 'customized' labels to the device.
Users Fix Parking Ticket Machine Interface Themselves - uselog.com | the product usability weblog
Blogged with the Flock Browser

January 5, 2009

The new Fog Creek office - Joel on Software

I knew that you should always plan on ten months from the day you start looking at space until the day you move in.
....
20 electrical outlets behind every desk and most developers have small hubs for extra computers.
....
[30 '' ...]


The new Fog Creek office - Joel on Software
Blogged with the Flock Browser