| Forth "versus" Whatever
|
|
25 Sep 04 |
|
[print
link
all
] |
From comp.lang.forth
>>Which brings me to an excellent 'forthism' I once read in a
>> newsletter. It stated:
>>
>> "You can do anything in Forth - but you must be prepared
>> to do it yourself."
In a recent discussion in c.l.functional, about why popular languages
are popular, I summarized the relationship between Lisp and Forth
more-or-less as follows:
"From the Lisper's perspective, every other language is a cute subset
of lisp; whereas from the Forther's perspective, every other language
is a cute extension of Forth."
|
| My LinuxTag 2004 photos
|
|
25 Sep 04 |
|
[print
link
all
] |
|
Some photos from LinuxTag 2004 in Karlsruhe. I especially liked the Xbox
booting Linux screenshots. pics
|
| Skolelinux: V1.0 with codename Venus is out! |
|
25 Sep 04 |
|
[print
link
all
] |
Skolelinux is made as free (as in speech) software, and is an overall computer solution based on school's resources and needs. It is based on Debian and runs very well on older hardware, too.
- Skolelinux is a network architecture tailored for use in schools.
- Skolelinux is designed to be easy and cheap to maintain.
- Skolelinux gives the students their own usernames, home directories and services.
- Skolelinux includes OpenOffice.org
link
|
| RubyX
|
|
25 Sep 04 |
|
[print
link
all
] |
I just now came across the rubyx website
and noticed the logo. Nice!
Rubyx is a Linux-distribution similar to Gentoo, but all based on one ruby
script :-).
|
| screen -x for remote pairprogramming
|
|
25 Sep 04 |
|
[print
link
all
] |
This tiny tool is great to have 2 people look and type into the same shell
window. Works great with vim :-)
- Both ssh or telnet into the same (remote) Unix machine and account.
- One enters screen, then starts vim, then the other enters screen -x.
- ctrl-d to exit screen)
Linux Gazette article about screen
|
| Knoppix remastering mini-howto
|
|
25 Sep 04 |
|
[print
link
all
] |
|
(Source: Daniel Stirnimann) This mini howto shows how you can easily make
on your own customized knoppix build. Apart from that, there are a few
working methods described which make doing changes conveniently. The howto
is intended for people who work occasionaly on their builds.
link
|
| Wine-Migration
|
|
25 Sep 04 |
|
[print
link
all
] |
|
At Linuxtag in Karlsruhe I met during lunch one of the authors of ganymede. I am the last person in the
world to promote the use of the Win32-API, but it can come in handy, when
you have to use some legacy software on Linux and do not want to pay
license fees for the usual suspects like vmware. Having to maintain only
one code-base is sexy, too.
I asked David Guembel, one of the fathers of the software to email me a
short describtion:
On an abstract level, the idea behind our ganymede system is simple: To make
an application run under Wine (a free Win32-API layer and Windows
executable loader), it is neccessary to know what parts of the Windows API
are actually required by that particular piece of software. Software has a
modular structure - in this context, a module is a Windows executable
(.DLL, .EXE, .OCX etc.) - and every module provides (exports) certain
functionality and requires (imports) functionality from other modules.
Thus, ganymede internally creates a dependency graph of an application's
binaries. This method is static and does not require anything but a fresh
installation of the software to be analyzed.
Before x-raying a Windows application, ganymede parses and stores an
analysis of the soure code of one or more Wine versions. It automagically
determines the implementation state of the APIs provided by Wine. During a
software analysis, the functionality required by the Windows application is
compared to what Wine provides, and missing or incomplete APIs are
reported. By storing Wine versions and the dependency structure of the
analyzed applications in a database, automatic or manual re-analysis with
different Wine versions is possible. Via the API ganymede itself provides,
the collected data is accessible in several ways. One application of that
API is our tool named sysiphus, which uses ganymede and a GUI-based
approach to semi-automatically determine the best possible Wine
configuration while providing for the possibility to re-use already
licensed Windows DLLs to fill the gaps Wine still leaves.
|
| The Linux Incompatability List
|
|
25 Sep 04 |
|
[print
link
all
] |
|
Saw this on /.
"The Linux Incompatibility list is
a wiki project that attempts to document hardware that is incompatible with
Linux rather than list what is compatible. In the wiki, it is possible to
add alternitives so as to push hardware manufacturers to make good binary
drivers, publish specifications, or even better, publish open
drivers."
|
| Big Requirements Up Front (BRUF)
|
|
25 Sep 04 |
|
[print
link
all
] |
I really appreciate Georg Tuparev’s postings to the XP-ML.
>Because it is important for the customer to have an idea of how much
>> everything will cost ...
In 99% of the times customer neither needs nor wants "everything"! One
of the big dangers of BRUF is that it imposes the wrong feeling that
"everything" is important. This is a major distraction that inevitably
leads to scope-creep and eventually project failures. When we have the
first meeting with a new customer we ask the following 3 questions:
1. What is your biggest pain?
2. If we solve this and only this pain, will your life get better?
3. Are you willing to pay X amount of Euros to us to solve this pain.
If any of these questions is answered with "no" we just thank for the
coffee and walk away. If all 3 questions are answered with yes, we move
to the first planning game...
Put it in another way: I do believe it is extremely dishonest and
incorrect behavior to conduct 9 months BRUF only to reach the
conclusion that the customer does not have enough resources to
continue. It is dishonest because as I wrote in an earlier posting,
_all_ good developers I know are able to estimate almost immediately
the scale of any software project without conducting BRUF.
|
| Case stories
|
|
25 Sep 04 |
|
[print
link
all
] |
|
Been skimming the XP-ML this morning.
About the $200M Oracle-Ford Desaster: the management did not give them
enough power to go fully agile
Chet Hendrickson:
It was a very frustrating situation. The team asked Don and me
to help with preventing the Oracle consutants from making changes
directly to the production system. This was about $150 million into the project.
We tried to sell them on a more agile approach (as you might imagine), but by
this time they were pretty far gone.
It was unfortunante that we were not operating at a level in the organization
that would have allowed us to get the plug pulled sooner.
chet
Georg Tuparev has a nice case story, too: speak out if you are put on a
death march.
Few years ago I was called to lead a huge team stuck in one and half
year design phase. The team was supposed to build a control software
for a network of telecom satellites. Cannot disclosed names and
resources, but one could imagine ...
Three days in the project I had a phone conference with the CxO's of
both companies involved. Told them that the way it is going no
satellite will ever fly and that I know a better way. After getting
green line, the design document was burned with a small celebration at
a BBQ, and 85% of the initial team members were sent to an indefinitely
long vacation. With the rest (15%) of the team we had the first
functioning version 2 months ahead of the schedule and 50% lower then
expected expenses.
So the lessons:
- it is never late to change direction of a project in order to save it.
- I do not agree with Kent that this is a sad story. If you are a good
programmer put on a death march project you should speak out! If no one
listens - walk away. There is just one very precious life in front of
us - do not waste it! And if these folks wasted 2 years of their lives,
well, it is their business ... but they should not expect my
sympathies.
BTW, Philip is right - the project I was telling about had a 9 months x
40 people "Big Requirements Up Front"!!! Then the design started...
Just my 0.02
Georg Tuparev
|
| .. like Xmas
|
|
25 Sep 04 |
|
[print
link
all
] |
I came across this nice discussion between Phlip and Juergen Ahthing in the
XP-ML
"Without test-first and refactoring, clients think
they must assemble as many program requirements as
they can afford to have written. This effort snarls
all relative business priorities together, making
Scope Control impossible. It obscures opportunities
for simplification. Designing and implementing many
features all at once is very hard, leading to our
industry's reputation for very large failures. Putting
tests in front of development's inner cycle permits an
outer cycle of incremental feature growth. That
relieves the Customer of the responsibility to predict
the future and guess which complete set of features
will maximize productivity."
.. Juergens answer:
Nice description.
Sometimes I try to explain that to non technical people
with the following picture:
If you have only one chance to get your wishes on a
list, it is like Christmas for a child. You make sure
you get every little wish on that list and hope for the best.
If you are sure that you can get your wishes on the list
at any time. You will just put the most important ones
there which come to your mind easily.
|
| CIO magazine current issue all about agile... (IT oriented, but)
|
|
25 Sep 04 |
|
[print
link
all
] |
Denis Haskin posted this to the XP-ML. lnik
I assume this popped up on everyone else's RSS aggregator as well, but...
From Darrell Norton's blog [1] and Artima developer forum [2]: the
current issue of CIO magazine is all about agility:
http://www.cio.com/archive/081504/index.html
|
| Hang the code, and hang the rules
|
|
25 Sep 04 |
|
[print
link
all
] |
Douglas Seelinger posted this in the XP-list:
A quote from "Pirates of the Caribbean: The Curse of the Black Pearl":
--You're pirates. Hang the code, and hang the rules. They're more like
guidelines anyway.
|
| [XP] Alistair interview on IT Conversations
|
|
25 Sep 04 |
|
[print
link
all
] |
|
I was just sent the link for an online interview about agile development.
The interview was done last month, it got posted yesterday. You don’t
have to register to listen
link
|
| [XP] RSS for Xprogramming blog
|
|
25 Sep 04 |
|
[print
link
all
] |
|
link
|
| What is XP?
|
|
25 Sep 04 |
|
[print
link
all
] |
Ron Jeffries posted this well known Kent Beck quote in the XP-mailinglist.
They talk about the 2nd ed. of XP Explained by Kent Beck.
But anyway, when I last asked Kent what XP is, he said
"XP is a community of software development practices based on
values of simplicity, communication, feedback, and courage".
That was about two or three years ago.
I look forward to seeing the second edition as well.
I'm sure it will be enlightening ...
|
| Working on a book: Driving Software Projects with Examples
|
|
25 Sep 04 |
|
[print
link
all
] |
|
Brian Marick posted this to agile-testing.
I’ve started work on a book, tentatively titled _Driving Projects
with Examples: a Handbook for Agile Teams_. All that’s done to date
is the Preface.
Two years ago, this would have been about driving projects with tests, but
I think the role of examples in projects is larger than that. Also,
examples fit more obviously into the whole "individuals and
interactions over processes and tools" thing. Examples are something
people use to explain themselves to each other. Conversations and learning
are more obviously part of the picture.
Because I’m so hot on examples, I’ve put the draft book on a
new site, exampler.com. Here’s the book: <www.exampler.com/book/>
(And, rather than "QA", "tester", or even
"ECaBian", "exampler" might be a good name for those
people on an Agile project that exhibit certain traits more strongly than
other team members.)
Some of you practice the style of development I’m documenting - or
variants of it. If you do, I want to talk to you, be it on the phone, or
via emai, or in person. (I am budgeting travel money to visit worthy
sites.) I’m serious about the "handbook" in the title: I
want to fill it with tricks, tips, techniques, and stories. The more people
I gather them from, the better the book will be.
|
| Unit Tests -- just do it!
|
|
25 Sep 04 |
|
[print
link
all
] |
|
Been coding a lot these days on SmallWorld.
I try to be disciplined and continue adding unit tests to the hundreds of
unit tests wherever sth. could go wrong, but ever again I go off the track
and code several methods and even entire classes without any tests.
It’s simple stuff and hey, this is ruby :-).
Then I sit here for 3 hours trying to understand why the dammed computer
does not do what it should. It’s that feeling I hate most. You waste
time .. I mean I could as well go skiing or drink a bottle of vodka ..
would be about the same productivity progress on my code and at least I
would enjoy the sun.
After hitting my head long enough and starting to isolate the stuff .. I
found it .. I had forgotten one return in a most trivial three line long
method. Shame on me. Now I will go back to being test-infected. test-first
is even better. Dammit .. sorry for the rant, but I doubt there are many
systems like computers where one comma at the wrong place can make
everything go boom. Oh well, try to modify the DNA and do not know what you
are doing. :-).
|
| XPlorations: The Humble Yo
|
|
25 Sep 04 |
|
[print
link
all
] |
|
(Source: Bill Wake) "The Humble Yo" The humble "Yo!" is
a simple convention for getting help. link Nice
explanation of why not asking for help can actually hurt the team.
|
| XP style process and battle-fields
|
|
25 Sep 04 |
|
[print
link
all
] |
|
Not that I want to promote war in any way, but these posts in the
extremeprogramming-ML made me smile:
Phlip:
During the planning game, you review last week's
finished stories, and they inspire you to write some
new cards, to edit some cards, and to toss some cards.
Then you (the Onsite Customer) re-sort all the cards,
and draw off the top batch for the next week.
But another input into this system that affects the
planning game - the competition.
The USA occupied Iraq using an effective new battle
technique. In traditional advances, you send a
diversionary force against one of your enemies flanks,
draw them that way, then send your main force against
their other flank.
Modern soldiers, with cell-phones and such, follow a
more agile approach. You simply send two forks of your
forces, probing towards both flanks. You use sensitive
algorithms to detect the defending commander's
decision which flank to defend. If you can rapidly
turn one advance into the diversion, and the other
into the main attack, you will soon collapse the
opposition's ability to effectively make decisions.
Agile onsite customers can play this card too. If you
detect your competition's marching orders, in
real-time (using either sensitive algorithms,
good-old-fashioned industrial espionage, or just
reading their self-congratulatory Web site), you can
then request iteration features which provide the
minimum amount of code needed to start your project
towards blocking the competition's advance. This
technique will, again, collapse the competition's
ability to make decisions.
Or convince them to hire an XP coach or three. So
either way it's a win-win-win for us! ;-)
Steven’s reply: :-)
Or you could follow the agile strategy that Microsoft
pioneered - announcing products with your competitions'
features before you even start implementing them.
|
|
|