tag:blogger.com,1999:blog-31585458141131209292023-06-20T21:48:55.697-07:00Bits of SoftwareThoughts on software development and software testing.Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.comBlogger48125tag:blogger.com,1999:blog-3158545814113120929.post-63605285519940635842019-11-08T12:48:00.002-08:002019-11-08T12:48:27.916-08:00Scribbled notes: Good snacksIt's important to have healthy snacks at your desk.<br />
<br />
I like trail mix, specifically "Forest Bery" by "Wild Roots". Also, peanut butter filled pretzels (Sam's club), kettle corn, nuts of almost any kind, and certain breakfast cereals. <br />
<br />
For a while, I trained myself not to eat snacks during the work day. Sometimes, that works too.<br />
<br />
I also try to have snacks that I don't LOVE. Because I'll eat too much. I have to strike a balance. Convient, yes. Nutritious and filling, yes. Delicious? No--just good enough that I won't get up and go to the vending machine or candy corner instead.<br />
<br />
What are your favorite (semi) healthy snacks?Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-49728025310496673682019-11-08T12:45:00.000-08:002019-11-08T12:45:16.055-08:00Choose to see other engineers as studentsHow we see the people around us helps us change how we treat them, interact with them, etc.<br />
<br />
Here are a few helpful paradigms:<br />
<br />
<ul>
<li>See other engineers as students. See yourself as such. Humbly accept that you and others are all learning the craft.</li>
<li>Assume you can learn something from everyone. Some experience is repeatable, some unique; usually a good helping of both. Learn from others. See your experiences as malleable, with new insights possible from later reflection and input from anyone.</li>
<li>See others as people. Not as a group, abstraction, a label, or stereotype.</li>
<li>Reset your expectations often.</li>
<li>Remember experience != expertise. </li>
<li>Not all kinds of expertise look the same. In fact, the more you learn, the less you should feel you know overall--yet you should gain confidence in what you do know and that you can know more.</li>
</ul>
<div>
<br /></div>
Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-74393188792607048842019-11-01T12:02:00.002-07:002019-11-01T12:03:38.425-07:00Choosing boring technology (limiting new tech) to limit complexity and increase productivityThis article talks about limiting new technologies to an appropriate level to avoid bogging down the org, especially teams and ops, in maintaining too many technologies and the cognitive load of too many customizations. Adopting new tech is a good idea, but should not be done too freely nor too little.<br />
<br />
<a href="https://mcfunley.com/choose-boring-technology">https://mcfunley.com/choose-boring-technology</a><br />
<br />Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-46819571578398074362019-08-21T08:23:00.001-07:002019-08-21T08:23:51.492-07:00A coworker recently introduced me to the Lombok library in Java. It reduces a lot of boilerplate, and is generally just awesome. It lets you add getters/setters, builders, and a variety of other functions to classes without having to do all the mundane boilerplate. <br />
<br />
<a href="https://www.baeldung.com/intro-to-project-lombok">https://www.baeldung.com/intro-to-project-lombok</a>Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-10766915319476621762019-08-21T08:18:00.002-07:002019-08-21T08:18:35.757-07:00Becoming a T shaped person, and soft skills.A coworker referred me to this great article on becoming T-shaped--not just professionally, but in life. I thought it was a good read. (To be honest, I scanned it for the bits I found useful--I was already fairly familiar with the concept).<br />
<br />
The bit I liked was how the author presented ideas on setting goals, plans, and habits to grow one's skills consciously and not accidentally.<br />
<br />
<a href="https://collegeinfogeek.com/become-t-shaped-person/">https://collegeinfogeek.com/become-t-shaped-person/</a><br />
<br />
<br />Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-7152050328780003522016-10-17T11:51:00.002-07:002016-10-17T11:51:19.504-07:00Instant Runoff Elections would really solve problems right now.Also, it's an interesting idea for a software programming exercise.<br />
<br />
http://www.fairvote.org/rcv#rcvbenefits<br />
<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/_5SLQXNpzsk" width="560"></iframe>Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-82288698996576566472016-02-22T09:18:00.001-08:002016-02-22T09:18:39.044-08:00Mentoring; JSP template tags<br />
<h3>
JSP templates</h3>
This was a really useful Stack Overflow answer on how to do templates in JSP.<br />
<a href="http://stackoverflow.com/a/13103364/116810">http://stackoverflow.com/a/13103364/116810</a><br />
<br />
<h3>
Mentoring</h3>
<div>
My mentors have taught me some good tips on mentoring and knowledge sharing with coworkers. The first one I will share today is this:</div>
<div>
<ul>
<li>Tell them how to do it, but let them be at the keyboard doing it.</li>
</ul>
<div>
People remember more when they do it. If you show them, they won't retain as much, and they won't be able to ask questions.</div>
</div>
<div>
<br /></div>
<div>
That said, I have learned a <i>lot </i>by watching other developers code.</div>
<div>
<ul>
<li>Occasionally, sit with other developers while they write code.</li>
</ul>
<div>
I've learned things about problem solving techniques, skills with the IDE, and tools and APIs they use that I didn't know about. I won't list those specific lessons here, but I will say that watching other developers code and do their work is invaluable.</div>
</div>
<div>
<br /></div>
<div>
A third thing I have learned about mentoring and skills growth:</div>
<div>
<ul>
<li>Set goals to improve on your strengths, not just your weaknesses.</li>
</ul>
<div>
A while back I decided to work on my written communication skills with my manager. I <i>thought </i>that writing was a strength, but as I started cc'ing my mentor on all my communications, I received feedback that helped me improve. And I realized there are a lot of different skills that go into good written communication. There were a few I could improve on.</div>
</div>
<div>
<br /></div>
<div>
I am inspired by the developer tea podcast, which shares small nuggets of insight and doesn't aim to be a long podcast. Sometimes it's just 5 minutes. Short podcasts are great. So are short blog posts. It makes me feel less worried about how in depth and helpful my blog posts are.</div>
Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-26040895011379444642016-02-12T08:06:00.001-08:002016-02-12T08:06:44.551-08:00Vue.js?I've heard from some coworkers about vue.js. I like what I have heard in <a href="https://devchat.tv/js-jabber/187-jsj-vue-js-with-evan-you">this podcast episode</a>. However, my main concern is corporate backing. If Evan You becomes unable to keep development going, I get the feeling the project will struggle. I'm sure someone will step up. Also, I feel slightly concerned that in the interview the creator didn't have a clear vision of where to go next. <br />
<br />
I hope vue.js gets some corporate backing. I hope it works out. I don't know if I would develop an enterprise app using it just yet.Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-25088359883369191782016-01-26T14:38:00.001-08:002016-01-26T14:38:36.026-08:00Scribbled notes: Blind spots as developers. Working notes. Assumptions.Blind spots.<br />
<br />
A not-so-recent project I worked on convinced me that well meaning assumptions can cost us frustration and time. I was tasked with fixing a bug where duplicate records were showing up in a search tool for certain financial data. The more I tried to understand what the code was doing (specifically a SQL join on an arcane AS400 database), the more confused I felt. <br />
<br />
Finally, I realized that the original developer had assumed that certain columns were meant for JOIN conditions, when in fact that assumption was utterly wrong. The data relationships were much looser than originally thought, and the data simply could not be displayed in the old way anymore. To fix the bug, I had to redesign the report with progressive disclosure at each level.<br />
<br />
The original developer had trusted some (wrong) intuition, and what some accountants had probably told him. I had trusted that the original application SQL was written with a correct concept of the data model.<br />
<br />
We all have blind spots. I've since learned not to trust that the original design was even correct (it was good enough to get by on, but it confused and frustrated people often).<br />
<br />
(The original query had joined on "line item numbers", but a check line item isn't the same as a document line item--they are only related by document, not line number; checks could be written for multiple documents, and documents could be handled by multiple checks)...<br />
<br />
Anyway, just watch out for assumptions. You have to make them and live with them, but just be aware of them and list them, before you forget you made them. Keep working notes as you do your job. They'll get better over time.Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-91293237076553485512016-01-26T14:31:00.004-08:002016-01-26T14:32:04.951-08:00Scribbled notes: podcasts I like, learning as a developer, the advantage of blogging ordinary things.I am going to play with an idea I got from this podcast and another:<br />
https://developertea.com/episodes/24531<br />
<br />
The idea is that we should share un-refined lessons we are learning as IT workers. The basic idea is that you should share things you learn, without fear, because it helps everyone (I can learn by expressing, you can learn from me--or I hope so). I'll see how it goes for me. Maybe I won't do it much. But I'll try it out.<br />
<br />
By the way, Developer Tea is a great podcast. I listen to podcasts on my 30+ minute commute. Go check out some of the episode titles and see if you like the gist of Developer Tea. It's short--episodes range from 5 to 30 minutes, but are never too long (I stopped listening to the 2 hour "this week in tech" a long time ago. Sorry, too much fluff, too much time).<br />
<br />
"The Web Ahead" and "Javascript Jabber" are fairly good podcasts too. If you're a Java developer, "Java Pub House". If you do AngularJS, try "Adventures in Angular".<br />
<br />
If you know any wiki pages with a good list of podcasts (current, updated), let me know in the comments.<br />
<br />
(I used Player FM on Android to listen to my podcasts; I thought Podcast Addict was fairly good too).<br />
<br />
<div style="margin-left: 4em;">
Notes from the Developer Tea episode:<br />
It's difficult to learn on the job. How do we shift our and others's perceptions to enable learning?<br />
<br />
<ul>
<li>Don't be a closet learner. You may get opportunities to do new things. You will have more conversations, which helps you and others.</li>
<li>Don't share what you are learning right away. If you fail, it looks bad. Show successes and value, not failures.</li>
<li>Focus on learning in low stakes situations. Especially on the job.</li>
<ul>
<li>Early in projects. </li>
<li>1 or 2 new technologies within your current stack, not a new stack all at once.</li>
</ul>
<li>Spend time with someone who already knows more than you.</li>
<ul>
<li>Don't be needy, exhaust their energy.</li>
<li>Gives you things you can't manufacture on your own.</li>
<li>They can know you and your mind and learning style.</li>
</ul>
</ul>
</div>
<div>
<br /></div>
<div>
Here's the Web Ahead episode that also inspired me, with some transcript, that influenced me to write here more. (note, they were talking about how simple boring blog posts make a big difference, the quote is slightly out of context)</div>
<div>
<br />
<dt style="background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 4px; border: none; box-sizing: border-box; clear: both; color: grey; float: left; font-family: 'Avenir Next W01', Helvetica, Arial, 'Nimbus Sans L', sans-serif; font-size: 0.85rem; line-height: 26.4px; margin: 0.7em 0px 0px; padding: 0px; text-align: right; width: 184.828px;">Jen</dt>
<dd style="box-sizing: border-box; color: #222222; font-family: 'Avenir Next W01', Helvetica, Arial, 'Nimbus Sans L', sans-serif; font-size: 16px; line-height: 26.4px; margin: 1.5em 0px 1em; padding-left: 206.078px;">I think it can overwhelming when you're trying to get work done. I think it's fun when you realize how lucky we are to be at the beginning of something so new. Anyone listening can investigate something, write a blog post, and influence the entire industry. They can change the shape of the medium itself. Which is so crazy.</dd><dd style="box-sizing: border-box; color: #222222; font-family: 'Avenir Next W01', Helvetica, Arial, 'Nimbus Sans L', sans-serif; font-size: 16px; line-height: 26.4px; margin: 1.5em 0px 1em; padding-left: 206.078px;"><i>My notes: I should interject here, I think the idea is that Jen and Jeremy feel ordinary, yet have been influential to others. And they see other people in the same boat. They talk about influencing just a few people, if I recall correctly.</i></dd></div>
<br />
<br />
<dt style="background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 4px; border: none; box-sizing: border-box; clear: both; color: grey; float: left; font-family: 'Avenir Next W01', Helvetica, Arial, 'Nimbus Sans L', sans-serif; font-size: 0.85rem; line-height: 26.4px; margin: 0.7em 0px 0px; padding: 0px; text-align: right; width: 184.828px;">Jeremy</dt>
<dd style="box-sizing: border-box; color: #222222; font-family: 'Avenir Next W01', Helvetica, Arial, 'Nimbus Sans L', sans-serif; font-size: 16px; line-height: 26.4px; margin: 1.5em 0px 1em; padding-left: 206.078px;"><time style="box-sizing: border-box; color: #b4b4b4; margin-right: 0.3em;">[00:48:51]</time> I wish people would write more. For that reason that you mentioned. In the future, we would have a better understanding of what people are thinking now. I'm very glad that I've been doing my blog for 15 years. I can go back to 2002 and get a feel for what it was like to build websites. Back then we thought X was true or hadn't even considered Y. You forget these things. Having these written records — not of anything important or groundbreaking — but just the day-to-day. The boring stuff. That's actually what's most interesting over time. I wish people would write more boring blog posts. [Both laugh] “I went to work. I did this. Nothing groundbreaking. Nothing revolutionary. But that's how we build websites today.”</dd>
<dt style="background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 4px; border: none; box-sizing: border-box; clear: both; color: grey; float: left; font-family: 'Avenir Next W01', Helvetica, Arial, 'Nimbus Sans L', sans-serif; font-size: 0.85rem; line-height: 26.4px; margin: 0.7em 0px 0px; padding: 0px; text-align: right; width: 184.828px;">Jen</dt>
<dd style="box-sizing: border-box; color: #222222; font-family: 'Avenir Next W01', Helvetica, Arial, 'Nimbus Sans L', sans-serif; font-size: 16px; line-height: 26.4px; margin: 1.5em 0px 1em; padding-left: 206.078px;">We used to write a lot of boring blog posts. Then we stopped when it felt like audience was so important: “I don't want to say something that's going to embarrass me later. Everything should be really well-written and polished. I don't have time to write something that great.”</dd>
<dt style="background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 4px; border: none; box-sizing: border-box; clear: both; color: grey; float: left; font-family: 'Avenir Next W01', Helvetica, Arial, 'Nimbus Sans L', sans-serif; font-size: 0.85rem; line-height: 26.4px; margin: 0.7em 0px 0px; padding: 0px; text-align: right; width: 184.828px;">Jeremy</dt>
<dd style="box-sizing: border-box; color: #222222; font-family: 'Avenir Next W01', Helvetica, Arial, 'Nimbus Sans L', sans-serif; font-size: 16px; line-height: 26.4px; margin: 1.5em 0px 1em; padding-left: 206.078px;">I hate it when people self-censor like that. They feel like it has to meet some standard. Again, it's the <em style="box-sizing: border-box;">web</em>. The whole point of the web is there isn't a gatekeeper. There isn't someone with a red pen saying, “That isn't good enough to be published. That's not up to scratch. You're not allowed to publish it.” There's no app store keeper for your writing. Yet people impose it on themselves. “I'm not good enough. My writing isn't good enough.” It's the <em style="box-sizing: border-box;">web</em>. It could be the worst thing ever and you still have the right to publish it on your website. You should do it. Don't let anyone tell you otherwise. I feel like a lot of people have this self-censorship thing.</dd><br />
<br />
<br />
<dd style="box-sizing: border-box; margin: 1.5em 0px 1em; padding-left: 206.078px;"><span style="font-family: "avenir next w01" , "helvetica" , "arial" , "nimbus sans l" , sans-serif;"><span style="line-height: 26.4px;"><a href="http://thewebahead.net/110">http://thewebahead.net/110</a></span></span></dd><br />
<div>
</div>
<br />
<br />
Let me know if this turns you off to reading my blog (all 4 or 5 of you who read this). Or if it inspires you.<br />
<br />
Anyway. That's it for now.<br />
<br />Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-76624769397117091292015-08-25T12:26:00.002-07:002015-08-25T12:26:48.610-07:00List of test stringsI saw this on Hacker News, and I liked enough to justify a re-post:
<a href="https://github.com/minimaxir/big-list-of-naughty-strings">https://github.com/minimaxir/big-list-of-naughty-strings</a>
Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com1tag:blogger.com,1999:blog-3158545814113120929.post-7824644643070242212015-07-24T08:47:00.004-07:002015-07-24T08:48:51.011-07:00Re-post: Dropdowns are usually the wrong choice for UI.Especially on mobile sites, dropdowns are a huge burden to user input.
<p>
<a href="http://www.lukew.com/ff/entry.asp?1950&utm_source=hackernewsletter&utm_medium=email&utm_term=design">http://www.lukew.com/ff/entry.asp?1950&utm_source=hackernewsletter&utm_medium=email&utm_term=design</a>
<p>
"But because they are hard to navigate, hide options by default, don't support hierarchies, and only enable selection not editing, dropdowns shouldn't be the first UI control you reach for. In today's software designs, they often are."
<p>
He suggests finding the right alternative in each case, such as steppers, radio groups, sliders, switches, 2-way sliders, button groups, date pickers, and so forth.
Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-91328009120077752072015-02-19T07:49:00.000-08:002015-07-24T08:55:40.764-07:00String length test generator<iframe width="100%" height="600" src="//jsfiddle.net/kirobins01/vsog66do/embedded/result,js,resources,html,css" allowfullscreen="allowfullscreen" frameborder="0"></iframe>Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-10451882065140164862014-08-08T12:42:00.001-07:002014-08-08T12:42:39.548-07:00Resource Monitor - something you already have (Windows) and should use.http://www.hanselman.com/blog/YouArentUsingResourceMonitorEnough.aspxKimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com1tag:blogger.com,1999:blog-3158545814113120929.post-3397110068310665852014-05-30T09:26:00.001-07:002014-05-30T09:30:11.146-07:00If you work with HTML much at all, use emmet. <span style="font-family: Calibri; font-size: 11.0pt;">Make sure you know how to use
emmet.<span style="mso-spacerun: yes;"> </span>It has plugins for every
major IDE and text editor out there.</span><span style="font-family: Calibri; font-size: 11.0pt;"> </span><br />
<br />
<a href="http://docs.emmet.io/"><span style="font-family: Calibri; font-size: 11.0pt;">http://docs.emmet.io/</span></a><span style="font-family: Calibri; font-size: 11.0pt;"><span style="mso-spacerun: yes;"> </span>(watch the
short intro video)</span><br />
<br />
<span style="font-family: Calibri; font-size: 11.0pt;">Basically, you can type something like this:</span><br />
<div style="border: 1px inset; padding: 2%;">
<pre bgcolor="#ffffff" style="background-color: white; font-family: 'Monospaced'; font-size: 12; margin: 0; padding: 6px; color:black;">div.myId>span.myClass</pre>
</div>
<span style="font-family: Calibri; font-size: 11.0pt;">and with a hotkey (such as Tab in IntelliJ) it expands to this:</span><br />
<div style="border: 1px inset; padding: 2%;">
<pre bgcolor="#ffffff" style="background-color: white; font-family: 'Monospaced'; font-size: 12; margin: 0; padding: 6px;"><span bgcolor="#efefef"><span style="background-color: #efefef;"><</span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">div </span></b></span></span><span style="color: blue;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: blue; font-weight: bold;">class=</span></b></span></span><span style="color: green;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: green; font-weight: bold;">"myId"</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">><</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">span </span></b></span></span><span style="color: blue;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: blue; font-weight: bold;">class=</span></b></span></span><span style="color: green;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: green; font-weight: bold;">"myClass"</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">span</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">div</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span></pre>
</div>
<br />
<br />
<span style="font-family: Calibri; font-size: 11.0pt;">Need another example? </span><br />
<span style="font-family: Calibri; font-size: 11.0pt;"> This:</span><br />
<div style="border: 1px inset; padding: 2%;">
<pre bgcolor="#ffffff" style="background-color: white; font-family: 'Monospaced'; font-size: 12; margin: 0; padding: 6px;color:black;">table>thead>tr>th*5^^^tbody>tr*2>td*5
</pre>
</div>
becomes this: <br />
<div style="border: 1px inset; padding: 2%;">
<pre bgcolor="#ffffff" style="background-color: white; font-family: 'Monospaced'; font-size: 12; margin: 0; padding: 6px;"><span bgcolor="#efefef"><span style="background-color: #efefef;"><</span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">table</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;"> </span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"><</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">thead</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;"> </span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"><</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">tr</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;"> </span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"><</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">th</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">th</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;"> </span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"><</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">th</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">th</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;"> </span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"><</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">th</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">th</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;"> </span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"><</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">th</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">th</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;"> </span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"><</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">th</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">th</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;"> </span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">tr</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;"> </span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">thead</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">table</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"><</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">tbody</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"><</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">tr</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;"> </span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"><</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">td</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">td</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;"> </span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"><</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">td</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">td</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;"> </span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"><</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">td</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">td</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;"> </span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"><</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">td</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">td</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;"> </span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"><</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">td</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">td</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">tr</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"><</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">tr</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;"> </span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"><</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">td</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">td</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;"> </span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"><</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">td</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">td</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;"> </span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"><</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">td</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">td</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;"> </span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"><</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">td</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">td</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;"> </span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"><</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">td</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">td</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">tr</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span><span style="color: black;"><span bgcolor="#ffffff"><span style="background-color: white; color: black;">
</span></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;"></</span></span></span><span style="color: navy;"><span bgcolor="#efefef"><b><span style="background-color: #efefef; color: navy; font-weight: bold;">tbody</span></b></span></span><span style="color: black;"><span bgcolor="#efefef"><span style="background-color: #efefef; color: black;">></span></span></span></pre>
</div>
Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-57574017820802541812014-01-22T14:38:00.004-08:002014-01-22T14:38:40.953-08:00List of valid and invalid email addressesThis looks like a <a href="http://codefool.tumblr.com/post/15288874550/list-of-valid-and-invalid-email-addresses">good list of test email addresses</a> with which to test an email validation regex. Then again, if you want to get technical, email addresses shouldn't be validated with regular expressions. But to make our lives simpler, I think most programmers do it anyway.<br />
<br />
<br />Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-1757257111141354822014-01-16T12:17:00.002-08:002014-01-16T12:29:54.594-08:00Futures in JavaScriptThis was a useful article to read:<br />
<br />
http://www.xanthir.com/b4PY0<br />
<br />
It explains what futures are (a relatively new feature in JavaScript, from last year) and how to use them. This is useful when managing ajax-heavy applications when you have to deal with errors, chaining, combining, waiting, and ordering of ajax calls--among other things.<br />
<br />
MSDN also has a good article on futures:<br />
http://msdn.microsoft.com/en-us/magazine/gg723713.aspxKimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-73439218945366751142014-01-08T08:29:00.001-08:002014-01-16T12:34:35.150-08:00Data types for dollars"A discerning developer just declared that when dealing with dollars, doubles are a dodgy deal".<br />
<br />
Don't use float or double types to handle money in your programs. Use BigDecimal instead, or something equivalent in non-JVM languages.
<br />
<br />
The 'float' type has only 6 or 7 digits of accuracy, although it may appear to have more precision. Money values over $150K will start losing precision at about a cent at a time just from raw display, and there may be larger rounding errors when doing computations such as sales tax. The float type has a "mantissa" (the numerical part aside from the exponent) of 24 bits--this is where you get 24 bits of accuracy; 2^24 = 16777216, and if this is a monetary value then you are losing accuracy after you get over $167,772.16 -- if the only thing you are doing is displaying numbers. You may have fewer <a href="http://en.wikipedia.org/wiki/Significant_figures">significant digits</a> when you start doing calculations.<br />
<br />
Using the 'double' type is less dangerous, but still prone to errors especially when doing mathematical operations on money. Double values have 14 to 15 digits of accuracy, but during financial calculations such as sales tax or interest rates, you might be losing pennies that eventually add up to millions.
<br />
<br />
This emphasizes the importance of testing not merely big numbers, but numbers with many <a href="http://en.wikipedia.org/wiki/Significant_figures">significant digits</a>.
<br />
Here's a <a href="http://introcs.cs.princeton.edu/java/91float/">handy guide</a> to the problem of using floats, in a variety of contexts. <br />
<br />
<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/math/BigDecimal.html">BigDecimal</a>, on the other hand, represents decimal values as integers and an exponent. They can store arbitrary-precision values, as well as compute them accurately while giving you explicit control over rounding.<br />
<br />Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-43989916735501891332013-10-29T16:01:00.003-07:002013-10-29T16:01:17.100-07:00Understanding css style rule precedence<div class="MsoNormal">
CSS style rules have precedence depending on what kind of
selectors you have. For example, a selector on an id has higher
precedence than one just on element type. But it’s more complicated than
that.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Here’s a quick read that I found helpful:<o:p></o:p></div>
<br />
<div class="MsoNormal">
<a href="http://www.vanseodesign.com/css/css-specificity-inheritance-cascaade/">http://www.vanseodesign.com/css/css-specificity-inheritance-cascaade/</a><o:p></o:p></div>
Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-40714906955953673002013-10-29T07:51:00.001-07:002013-10-29T07:51:37.124-07:00(re-post) "The Two Things"I'm re-posting this article I learned about from <i>The Dev Show </i>podcast:<br />
<br />
<a href="http://fishbowl.pastiche.org/2007/04/15/the_two_things_about_computer_programming/">The Two Things about Computer Programming</a>Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-34301574309453955622013-10-24T16:27:00.000-07:002013-10-24T16:27:17.844-07:00Set goals to work on both strengths and weaknessesIn a one-on-one with my manager some weeks back, it was time to set some goals. An idea came to mind, based on some religious literature I'd been reading. I decided to choose two goals to work on: one goal would focus on a weakness, and one goal on a strength (on increasing a talent I already had).<br />
<br />
I thought I was a fairly good communicator. I felt that was a strength--I had been complimented on my communication skills by a previous manager, and I felt fairly confident about my abilities--especially my written abilities. Once I started working on this with my manager, I realized I had a lot to learn. As I included him in more of my communication and got some constructive feedback, he helped me see additional ways to improve. I attended a couple training classes offered by my workplace on emotional awareness and other topics. I talked to another manager about a couple communication techniques. I read a couple blog posts I could find via Google. In the end, it turned out I had a lot to learn, and I was left feeling like I hadn't learned all I could.<br />
<br />
This was an important lesson for me. There are plenty of weaknesses any of us can work on. But in all my efforts to overcome weaknesses, it can be easy to forget to take time to build on my talents, my strengths. Incidentally, by looking to improve on my strengths, I realized I could learn a lot from those around me, and it was appropriately humbling--humbling in a good way.<br />
<br />
God is good to me.Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-39765083083475417282013-10-16T14:03:00.004-07:002013-10-16T14:03:18.658-07:00jQuery tutorialEven if <strike>you think</strike> you know jQuery, this tutorial is likely to teach you some tricks.<br />
<br />
http://net.tutsplus.com/sessions/jquery-succinctly/Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-34607397725752707072013-07-15T12:47:00.000-07:002013-07-15T12:47:48.799-07:00Resources for diagnosing and fixing heisenbugs<a href="http://www.javacodegeeks.com/2012/08/fixing-bugs-that-cant-be-reproduced.html">http://www.javacodegeeks.com/2012/08/fixing-bugs-that-cant-be-reproduced.html</a><br />
<a href="http://stackoverflow.com/questions/1268373/how-do-you-fix-a-bug-you-cant-replicate">http://stackoverflow.com/questions/1268373/how-do-you-fix-a-bug-you-cant-replicate</a><br />
<a href="http://stackoverflow.com/questions/352906/how-do-you-approach-intermittent-bugs">http://stackoverflow.com/questions/352906/how-do-you-approach-intermittent-bugs</a><br />
<a href="http://www.satisfice.com/blog/archives/34">http://www.satisfice.com/blog/archives/34</a> (James Bach's blog for software testers)<br />
<a href="http://www.kohl.ca/2005/tracking-intermittent-bugs/">http://www.kohl.ca/2005/tracking-intermittent-bugs/</a><br />
<a href="http://stackoverflow.com/questions/1050552/any-good-strategies-for-dealing-with-not-reproducible-bugs">http://stackoverflow.com/questions/1050552/any-good-strategies-for-dealing-with-not-reproducible-bugs</a>Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-68030564309030315232013-06-26T10:37:00.001-07:002013-06-26T10:37:53.754-07:00Alternative Kanban (think outside the box) (re-post)This post helps one to realize if their idea of kanban is stuck to something too specific. And it gives new ideas for creating a new kind of kanban board.<br />
<a href="http://brodzinski.com/2011/11/alternative-kanban-board.html">http://brodzinski.com/2011/11/alternative-kanban-board.html</a>Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0tag:blogger.com,1999:blog-3158545814113120929.post-74384454284345783792013-06-21T11:40:00.001-07:002013-06-21T11:40:38.205-07:00Humility, and "I don't understand"<a href="http://bjk5.com/post/38101106878/i-dont-understand">http://bjk5.com/post/38101106878/i-dont-understand</a><br />
<br />
The whole blog seems to be worth reading.Kimball Robinsonhttp://www.blogger.com/profile/12079693739035596409noreply@blogger.com0