| Smalltalk with Style
|
|
25 Sep 04 |
|
[print
link
all
] |
Stephane Ducasse posted this to the Squeak-ML. download
Smalltalk With Style is now freely available.
Thanks Suzanne, Ed, and Dave. This is a great book everybody should read!!
I added the chapter 27 of Smalltalk by Example.
I added a link to point to the book of Liu: Smalltalk, Object and Design
|
| ObjectGraph: a Ruby class inheritance hierarchy graph |
|
25 Sep 04 |
|
[print
link
all
] |
(Source: Mehr, Assaph, ruby-ML) A simple script that generates a graph of the ruby class hierarchy. The script relies on graphviz for generation of the PNG and HTML map files. Take a look at the basic Ruby class hierarchy on the project web site: link
|
| Using the right hammer ..
|
|
25 Sep 04 |
|
[print
link
all
] |
|
(Source: Robert Martin (UncleBob) in the pragprog-list) As a contractor you
must do the best job you can for your client. This includes picking the
best language for the situation. I agree that there are situations in which
Ruby might be the best technical solution, but the worst political
solution. In that case, you cannot use Ruby — you must use a
technically inferior, but politically preferable language. There are other
situations — more and more of them — in which Ruby is
politically acceptable, and technically superior.
|
| On reading a text file in Smalltalk
|
|
25 Sep 04 |
|
[print
link
all
] |
|
(Source: comp.lang.smalltalk, Lex Spoon) If you accept losing one notch of
performance, then you can make much clearer code in Smalltalk. The
"file lines" idiom in this thread is very useful, because you can
then use collect:, select:, etc., on the resulting collection of lines.
And it is important to consider that once you commit to, say, iterating
over an entire file, that the file must be reasonably small anyway to get
decent performance. The same issue exists with collections. Who cares if
collect: creates an extra collection or if WriteStream wastes space at the
end of a long underlying collection; if these concerns are really so
important then probably this huge collection should not exist and/or you
should not be iterating over the entire thing anyway.
To put it very simply: you just can not expect a program to work on
large data structures just because you micro optimized everywhere. If you
want to handle large data structures then it takes planning and specialized
algorithms and test cases. If you are not going to put in that effort, then
don’t sweat the small stuff. It is very liberating to code with an
eye towards correctness and towards algorithmic performance, and not to
worry about getting down the constant factor. It seems to lead to lower
stress, faster code production, and fewer bugs generated.
|
| ANN: Lafcadio 0.4.0
|
|
25 Sep 04 |
|
[print
link
all
] |
|
Lafcadio is an object-relational mapping layer for Ruby and MySQL. It lets
you treat database rows like first-class Ruby objects, minimizing the
amount of time you have to spend thinking about MySQL vagaries so you can
spend more time thinking about your program’s logic.
Its features include:
- A test-centric design that allows you extensively unit test any program
that runs on top of Lafcadio. It comes with a MockObjectStore, which mimics
the database and allows you to test database interactions without all the
annoying setup code of a real database-driven test.
- A block-driven querying language that will cover 99% of the ad-hoc queries
you have to do. These queries look like: child_users =
object_store.getUsers { |user| user.age.lt( 18 ) }
These queries can be run against the MockObjectStore, meaning they can be
unit-tested.
- In-Ruby triggers that can be written per domain class. These triggers can
be tested, too!
- Lafcadio makes very few assumptions of how your database was setup, and
comes complete with a lot of hooks to allow you to fit your pre-existing
database. Because programming’s a messy job, and we’re always
cleaning up after somebody’s mistakes (even if they were our own).
Lafcadio is production-ready and runs a number of websites, including
Rhizome.org, which more than 3 million hits a month.
link
|
| Smalltalk must be dead because ...
|
|
25 Sep 04 |
|
[print
link
all
] |
|
Donald Raab posted this goodie to the st-mailinglist.
It’s probably because in order to post in the Java ng he has to be
10x as verbose as in the Smalltalk ng.
He probably has to declare himself, cast himself, wrap himself in a try
catch block, bubble up any exceptions, use some external iterators,
implement some interfaces, and wrap up his primitives in real objects.
Maybe after auto-boxing and generics are supported, he’ll only have
to post 7 or 8x as often.
Don’t worry James, we appreciate and understand your terseness over
here. ;-)
|
| Compiere 251d and Oracle 10g and Java 1.5 beta
|
|
25 Sep 04 |
|
[print
link
all
] |
For all of you that want to be bleading-edge … Perez Juarez posted
this to the forum:
I have run Compiere251d with Oracle10g & Java 1.5 beta :-), and I am very nice.
You have to make the step:
1.- Copy the $ORACLE_HOME/jdbc/lib/ojdbc14.jar
to $COMPIERE_HOME/lib/oracle10g.jar
2.- Change into $COMPIERE_HOME/RUN_setup.sh in the -classpath oracle.jar for
oracle10g.jar
|
| Squeak: ObjectiveCPlugin process
|
|
25 Sep 04 |
|
[print
link
all
] |
(Source: Avi Bryant, squeak-ML) A while ago, Alain Fischer announced his
new ObjectiveC plugin, allowing Squeak to use Apple’s Cocoa and other
ObjectiveC libraries. Todd Blanchard and I have since done some further
work on it, and it’s at the point now where it can begin be used to
build Cocoa UIs from within Squeak. As a quick test, I built a native OS X
UI for the system browser, which you can see in this screenshot: img
src="
The code is on SqueakSource: kilana.unibe.ch:8888/ObjectiveCBridge/ObjectiveC-avi.70.mcz
You can get a prebuilt plugin (for use with Ian’s 3.7 VM) here: beta4.com/~avi/ObjectiveCPlugin
The browser demo can be run with "CCBrowser test". It requires
this nib file: beta4.com/~avi/CCBrowser.tgz
You need to untar that and place it inside Contents/Resources/English.lproj
of your VM application bundle. I’m announcing this partly because
I’ve run out of steam on it for now, and am hoping someone else will
take it the next step of building UIs for the various Squeak tools
(browsers, debuggers, workspaces, inspectors, etc) in Cocoa. A custom
NSMorphicView would also be cool, although might be pretty tricky. Anyway,
if someone does try to take this on, I’ll be more than happy to
answer any questions they have about the underlying bridge code.
|
| Using SVG in Borges
|
|
25 Sep 04 |
|
[print
link
all
] |
|
Interesting blog-entry on naseby + ruby + stuff. link
|
| RubyGems, the apt-get for ruby |
|
25 Sep 04 |
|
[print
link
all
] |
|
Why do I love Debian? Coz of the package management system. Now Ruby has the same nice feature, called RubyGems
Install: ruby install.rb
See what is available: gem --remote --list
Search for the string Doom in descriptions: gem --remote --search Doom
Install progressbar: gem --remote --install progressbar
Now relax, have a good milkshake in the sun. A big big thanks to the developers: Rich Kilmer, Chad Fowler, David Black, Paul Brannan, Jim Weirch, Curt Hibbs, Gavin Sinclair, etc.
|
| F*ing software patents will kill open source and small to medium size companies
|
|
25 Sep 04 |
|
[print
link
all
] |
I just now came across this link on
slashdot. The only thing I can say is that like in the RIAA (sic) cases one
really wonders about our politicians. And this is the weakest way of
putting it .. oh boy! Lessing has said it correctly: *If we don’t
fight for our freedom, we do not deserve it*. I am so sick of all these
stupid trivial patents like double-click, hyperlinks, etc. .. does anybody
care that obvious prior art exists?
The /. link
Some nice quotes :-)
Ministers were being trusted to represent the view of the government that sent
them... but it seems as if business interests have found that these
individuals are a weak link that can easily be "bought off" and convinced to act
on their own.
The corporations won the war.
|
| Napkin Look and Feel
|
|
25 Sep 04 |
|
[print
link
all
] |
|
Now I did it. I made a Java category in this blog. I think like Paul Graham
about Java and C#, but oh well ..
I coped
this from:
Napkin Look & Feel is a pluggable Java look and feel that looks like it
was scrawled on a napkin. You can use it to make provisional work actually
look provisonal, or just for fun.
The idea is to try to develop a look and feel that can be used in Java
applications that looks informal and provisional, yet be fully functional
for development. Often when people see a GUI mock-up, or a complete GUI
without full functionality, they assume that the code behind it is working.
While this can be used to sleazy advantage, it can also convince people who
ought to know better (like your managers) that you are already done when
you have just barely begun, or when only parts are complete.
|
| Gametrak
|
|
25 Sep 04 |
|
[print
link
all
] |
|
Gametrak. is a new videogames controller, giving you precise and intuitive
control in 3D space. link
Unlike cameras, infra-red, RF systems or tilt technologies, Gametrak.
allows movement forwards and backwards as well as up, down, left and right.
With Gametrak you can punch your opponents with your hands; sports games
let you pick up and play using real golf clubs or tennis racquets . you can
even bounce virtual basketballs!
Designed and manufactured by In2Games, Gametrak will launch across Europe
on PS2 in September 2004 with the revolutionary fighting game, Dark Wind.
Future Gametrak titles include golf, baseball, adventure, dancing and
basketball games.
FAQ
|
| Comment: Microsoft's rush to next-gen could see the Xbox take a tumble
|
|
25 Sep 04 |
|
[print
link
all
] |
(Source: Gamesindustry) from the article
Microsoft may be making a colossal mistake by trying to force
the industry into a next-generation cycle before it is ready
to move. Sony, with its enormous dominance of the market, could
probably just about get away with it - if it moved, the industry
would have to move with it, however much it hated the idea. But
Microsoft, still a relatively small player in the games industry,
just doesn't look like a company that has the influence needed to
force a shift like this. It may be backed up by the biggest
software company in the world, but publishers will still look at
the bottom line - in this case, installed base and cost of
development - and base their decisions on that alone. Herein lies
the arrogance; Microsoft isn't used to making decisions as an
industry small-fry, and it's trying to act like an industry leader
in an industry it simply doesn't lead.
|
| PlayStation 2: Computational Cluster |
|
25 Sep 04 |
|
[print
link
all
] |
The NCSA has constructed a PlayStation 2 Linux cluster as a test bench for scientific computation on "toy" hardware. The cluster consists of 65 compute nodes, 4 user login and development nodes, and 1 prototype node for software installation tests. All the nodes run the Sony Linux distribution for PlayStation 2. The compute nodes fill a 24-inch rack; 5 shelves at 13 per shelf (see left); link
Looking forward to see such solutions for the new upcoming Playstation 3.
|
| This I believe! - Tom's 60 TIBs
|
|
25 Sep 04 |
|
[print
link
all
] |
|
Tom Peters is back with more Big Ideas for your job, your company, and your
life. The marketing and strategy guru holds forth on why audacity matters,
why women are the future of leadership, and why diversity is crucial to
business success. Those who have never read Tom will find an excellent
primer here; those well-versed in Peters’ ideas can get up to speed
on his latest thoughts. link direct pdf download
|
| Root: An Object-Oriented Data Analysis Framework
|
|
25 Sep 04 |
|
[print
link
all
] |
Sven C. Koehler, our hard-coding dataminer has sent me an email while his
code was probably exploring the DNA of some beauty. I wonder whether it was
the beauty the root-team uses in their logo? Hey, just because of the logo,
one ought to give root a try.
What I was impressed about:
http://root.cern.ch/root/Mission.html
``We started the ROOT project in the context of the NA49 experiment at
CERN. NA49 generates an impressive amount of data, about 10 Terabytes
of raw data per run.'';
``Thanks to the builtin CINT C++ interpreter the command language,
the scripting, or macro, language and the programming language are
all C++. The interpreter allows for fast prototyping of the macros
since it removes the time consuming compile/link cycle. It also
provides a good environment to learn C++. If more performance is
needed the interactively developed macros can be compiled using a
C++ compiler.'';
http://root.cern.ch/root/Architecture.html
``The backbone of the ROOT architecture is a layered class
hierarchy with, currently, around 310 classes grouped in about 24
frameworks divided in 14 categories. This hierarchy is organized in
a mostly single-rooted class library, that is, most of the classes
inherit from a common base class TObject. While this organization
is not very popular in C++, it has proven to be well suited for our
needs (and indeed for almost all successful class libraries: Java,
Smalltalk, MFC, etc)''.
|
| WebDav in 10 minutes: HTTP gave you read, now DAV gives you write access
|
|
25 Sep 04 |
|
[print
link
all
] |
|
The stated goal of the WebDAV (DAV) working group is (from the charter) to
"define the HTTP extensions necessary to enable distributed web
authoring tools to be broadly interoperable, while supporting user
needs", and in this respect DAV is completing the original vision of
the Web as a writeable, collaborative medium.
But, people working on DAV have had goals which extend beyond simple web
page authoring. Some view DAV as a network filesystem suitable for the
Internet, one that works on entire files at a time, with good performance
in high-latency environments. Others view DAV as a protocol for
manipulating the contents of a document management system via the Web. An
important goal of DAV is to support virtual enterprises, being the primary
protocol supporting a wide range of collaborative applications.
Importantly, a major goal is the support of remote software development
teams. A final goal of DAV is to leverage the success of HTTP in being a
standard access layer for a wide range of storage repositories — HTTP
gave them read access, while DAV gives them write access.
Well, the website clains WebDAV in 2 minutes .. I think 10-20 minutes is
more realistic :-). A good starter.
Apache2 already comes with mod_dav.
|
| R.W. Hamming on Round-Off
|
|
25 Sep 04 |
|
[print
link
all
] |
Sven C. Koehler has started to read "Numerical Methods for Scientists
and Engineers". He was so kind to send me a few quotes he likes from
the introduction.
Most books on computing stress the estimation of roundoff,
especially the bounding of roundoff, but we shall concentrate
on the avoidance of roundoff. It seems better to avoid roundoff
than to estimate what did not have to occur if common sense and
few simple rules had been followed before the problem was put on
the machine.
Another standard algorithmic problem both in mathematics and in the use
of computation to solve problems is the solution of simultaneous linear
equations. Unfortunately much of what is commonly taught is usually not
relevant to the problem as it occurs in practice; nor is any completely
statisfactory method of solution known at present. Because the solution
of simultaneous linear equations is so often a standard library package
supplied by the computing center and because the corresponding
description is so often misleading, it is necessary to discuss the
limitations (and often the plain foolishness) of the method used by the
package. Thus it is necessary to examine carefully the obvious flaws and
limitations, rather than pretending they do not exist.
update: (sorry, German only;) A big thanks to Sven C. Koehler for this
summary
Ich habe es nun in den groessten Teilen ueberflogen. Die Ideen sind nicht
wirklich neu: Umformen von Gleichungen, Vermeiden ungefaehr gleichgrosse
Zahlen von einander abzuziehen, Approximation. Beim Loesen von
Gleichungssystemen schlägt er z.B. vor, ein Verfahren einzusetzen, das
kein wiederholtes Dividieren benoetigt, dann wird's auch nicht ungenau.
Trotzdem mag ich das Buch, weil es in mir den Eindruck weckt, dass es
sehr fundiert ist. Es ist voll von mathematischen Formeln, die ich alle
nicht wirklich verstanden habe, aber ich werde in jedem Fall wieder darin
nach Erklaerungen suchen, wenn ich mal wieder ein Numerik-Problem habe.
Ich glaube für dich ist as Buch eher langweilig, das meiste kennst du
bestimmt aus dem Studium. :-)
|
| Good to know: Offline NT Password & Registry Editor, Bootdisk / CD
|
|
25 Sep 04 |
|
[print
link
all
] |
|
I’ve put together a single floppy or CD which contains things needed
to edit the passwords on most systems.
The bootdisk supports standard (dual)IDE controllers, and most
SCSI-controllers with the drivers supplied in a seperate archive below. It
does not need any other special hardware, it will run on 486 or higher,
with at least 32MB (I think) ram or more. Unsupported hardware: MCA, EISA,
i2o may not work. Some newer IDE/SCSI-raid systems may not work either.
Tested on: NT 3.51, NT 4, Windows 2000 (except datacenter?), Windows XP
(all versions), Window Server 2003 (at least Enterprise).
DANGER WILL ROBINSON! If used on users that have EFS encrypted files, and
the system is XP or later service packs on win2k, all encrypted files for
that user will be UNREADABLE! and cannot be recovered unless you remember
the old password again
link
|
|
|