| I need my daily dose of vim .. even in Mozilla
|
|
25 Sep 04 |
|
[print
link
all
] |
|
mozex.mozdev.org/
Mozex is an extension which allows the user to use external programs for
these actions:
- view page source
- edit content of textareas (possibly utilizing a spell-checker in the text
editor)
- handle mailto, news, telnet and FTP links
- download files
|
| 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
|
| 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, [space], vim, then the other enters screen -x.
- ctrl-d to exit screen)
|
| 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.
|
| 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
|
| Software for Slackers
|
|
25 Sep 04 |
|
[print
link
all
] |
|
I need this program to stop my internet addiction.
Are you a slacker? So am I. Do you browse the Web, read the news, and write
email all day in stead of working? So do I. Does it make you feel miserable
and apathetic? Do you tell yourself to stop browsing the fucking Web and
get some bloody work done? Do you have absolutely no discipline? I know
your pain.
But recent technological advancements have made it possible… There is
a cure for your disease!
Years of slacking at the renowned Massachusetts Institute of Technology
have resulted in a brilliant 461-line Perl script (which includes 130 lines
of comments for free!) that makes it all possible! Your productivity will
dramatically increase!
Today, I present Lockout: The Self-imposed, Computer-aided Work Enforcer.
This program will help you get some work done by not allowing you to browse
the Web. It won’t allow you to do anything but work. It’s a
miracle! Your colleagues will respect you, your Ph.D. adviser will
compliment you, and your boss, if you have one, will probably not notice
the difference! It’s amazing! Scroll down! Read more!
Get the program
|
| 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
|
| 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."
|
| 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
|
| Forth Database
|
|
25 Sep 04 |
|
[print
link
all
] |
Richard S. Westmoreland postd this to the Forth-ML.
In years past, we have implemented some extremely complicated databases in
Forth. The first was done in the mid 1970's for the company Cybek in NJ,
and it was used in some extremely complex applications. FORTH, Inc. also
did some very complex databases for other companies, one of which was still
in use last time I checked, at www.calmuni.com. That one was a
2-dimensional database, with a huge bit matrix in the center used to
calculate overlapping bonded indebtedness. A few years ago my contact there
told me that a state agency had just spent several million $$ trying to
replicate it using modern database tools, but the result was too large and
too slow to be usable.
In the late 1980's we added class-based techniques to it, which many people
liked (although I personally preferred the earlier, simpler version).
It's hard to describe the whole approach in a newsgroup post, though. It
certainly didn't resemble SQL!
|
| 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."
|
| Re: Forth, Befunge, Whitespace, or Malborge: which is hardest to write buggy code in?
|
|
25 Sep 04 |
|
[print
link
all
] |
(Source: comp.lang.forth)
>>Here is a version of Forth that runs under Windows, written in Whitespace:
>
>>
>>I can't get it to run. Do you think my browser has clobbered the code?
Hmmm. I did exactly as the web page[1] suggests: "What do you do? Simply
print it out and delete the file, ready to type in at a later date.
Nobody will know that your blank piece of paper is actually vital
computer code!" I sure hope that I didn't mistake my only copy of the
source code for an ordinary blank page!
Perhaps writing my Befunge[2] compiler in Malborge[3] and then making it
to a Forth[4] compiler written in Whitespace[1] wasn't such a good idea...
References:
1 http://compsoc.dur.ac.uk/whitespace/
2 http://dmoz.org/Computers/Programming/Languages/Befunge/
3 http://www.freebsd.org/cgi/query-pr.cgi?pr=28147
4 http://www.cbel.com/forth_programming_language/
|
| Quote of the day
|
|
25 Sep 04 |
|
[print
link
all
] |
|
(Source: Kent Beck posted this to the XP-mailinglist)
This from a lean manufacturing consultant:
Find the simple path to what works and follow it, always looking for a
simpler path.
Patrick D. Smith
|
| SCRUM vs XP
|
|
25 Sep 04 |
|
[print
link
all
] |
|
(Source: XP-mailinglist; thoughtful post by Ken Schwaber) Scrum is purely a project/product management process that can be applied to software projects, hardware projects, marketing projects, and any mix of the above. It does not contain engineering practices or any specific work practices. It is instead a way to maximize the ROI of work.
People who use Scrum in software development environment often adopt one or more of the XP practices to improve the engineering practices of the develpment organization. Scrum calls for an increment of potentially shippable product functionality every iteration. This means a fully cleaned up, refactored, tested, documented ready to go increment. Many organizations are incapable of this. It is easy to bring in XP practices because they are excellent and both Scrum and XP are pretty radically agile.
Project managers using Scrum are called ScrumMasters to differentiate the type of work they do ... they facilitate, manage the process, and optimize the team's productivity. They don't tell the team what to do, nor do they set of pairs of programmers, or parse out user stories. During the iteration, the team is entirely self- organizing ... whether it is doing software development or anything else related to the increment of functionality they are building.
XP seems to focus on team productivity... doing something the right way and as productively as possible. Scrum does this some, but instead focuses more on doing the right thing, getting ROI from building the 20% of the functionality that is necessary to get the value and maybe not building the rest.
We've implemented Scrum without telling the customer, users, or stakeholders. We've done this in one day. We seduce them into iterative, incremental development where they collaborate with us on what to do next. XP seems to require a steeper implementation curve with less acceptance from the users and customers. Scrum can't keep
the customers away.
Estimating is a subtle diffrence that points out the XP and Scrum dividing point. XP works hard to estimate very finely defined stories, and to measure and improve these estimates. Scrum keeps the requirements more broad, more in general user terms that are analyzed during the iteration. Estimating isn't as important. The team does what it can, and gets better and better at figuring out how much it can do each iteration as it learns each other, the business domain, and the technology - iteration by iteration. We care more about delivering business value that having defensible estimates, which become meaningless in a collaborative setting.
Scrum also has a formal methodology that lays out how to scale Scrum to any sort of project with any number of people in any number of locations ... all based on the optimized 7 person team. This is an important mangement requirement, but not so important to an engineering discipline like XP.
I feel we are blessed to have such compatible practices and processes to apply to our software engineering projects.
|
| [XP] RSS for Xprogramming blog
|
|
25 Sep 04 |
|
[print
link
all
] |
|
link
|
| The Rise of ``Worse is Better''
|
|
25 Sep 04 |
|
[print
link
all
] |
|
(Source: Richard Gabriel) Good characteristics:
1) Simplicity-the design must be simple, both in implementation and
interface. It is more important for the interface to be simple than the
implementation.
2) Correctness-the design must be correct in all observable aspects.
Incorrectness is simply not allowed.
3) Consistency-the design must not be inconsistent. A design is allowed to
be slightly less simple and less complete to avoid inconsistency.
Consistency is as important as correctness.
4) Completeness-the design must cover as many important situations as is
practical. All reasonably expected cases must be covered. Simplicity is not
allowed to overly reduce completeness.
www.jwz.org/doc/worse-is-better.html
|
| Introducing agile methods if the customer is obsessed by dead trees
|
|
25 Sep 04 |
|
[print
link
all
] |
|
(Source: posting to agile-testing@yahoogroups.com by John Goodsen) I think
a big mistake many of us make trying to introduce Agile development
practices, is we fall into the trap of agreeing that we are not providing
documentation. If your organization wants to see documents along the way,
don’t tell them they can’t have it! Tell them they will have
the most up to date documentation that they have ever seen, because you are
going to generate it directly from the code. Our teams use an XP process.
It doesn’t take much to tie in a tool to auto-gen design specs from
the code and if you are automating customer tests, you can put description
in the headers of tests methods and use a javadoc based generation of a
"requirements specification"… so rather than view your
organization as an enemy that requires an "undergound attack",
listen very carefully to what people are asking for and figure out how
Agile approaches can deliver it. We are not the enemy. We are the
liberator. We have exactly what they want, but we often fail to match up
our Agile solution with what the stakeholder is asking for.
When an organization wants more than the Agile process requires, it is easy
to show the additional cost each iteration, and as the team builds
credibility the customer/stakeholder(s) might be less inclined to want to
spend money each iteration producing documentation.
So have some courage, tell your stakeholders that they can have it
(whatever "it" is) if they want it and then make sure you follow
up with giving them a good picture of the cost and value they get from
"it". It’s their money - let them blow it if they want to.
Let them slow the velocity by asking for non-code related items. All you
can do is make it visible and help them down the path of figuring it out.
The sooner you start delivering some working code, the sooner you’ll
have the credibility to address their real process issues. "It"
will become less important the more iterations you deliver working tested
code.
The hard part is getting code started, right? Maybe you can disguise the
first few iterations as "prototyping" and use TDD as the process
for your prototyping? :-)
|
| 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 ...
|
| .. 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.
|
| XP success story: Sabre takes extreme measures
|
|
25 Sep 04 |
|
[print
link
all
] |
|
(Source: Computerworld) Using extreme programming practices, Sabre Airline
Solutions has reduced bugs and development times for its software products.
Sabre Airline Solutions had many years of experience with its AirFlite
Profit Manager, a big modeling and forecasting package that many airlines
use to wring more income out of flight schedules. Even so, Release 8 of the
software was four months late in 2000 after final system testing turned up
300 bugs. The first customer found 26 more bugs in the first three days of
its acceptance testing, and subsequent joint testing by Sabre and the
customer uncovered an additional 200 defects. www.computerworld.com/softwaretopics/software/story/0,10801,91646,00.html
|
|
|