<?xml version="1.0"?>
<rss version="2.0.">
  <channel>
    <title>Advogato blog for star</title>
    <link>http://www.advogato.org/person/star/</link>
    <description>Advogato blog for star</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Fri, 25 Jul 2008 17:21:43 GMT</pubDate>
    <item>
      <pubDate>Thu, 18 Oct 2001 21:57:51 GMT</pubDate>
      <title>18 Oct 2001</title>
      <link>http://www.advogato.org/person/star/diary.html?start=5</link>
      <guid>http://www.advogato.org/person/star/diary.html?start=5</guid>
      <description>Todays useless script, is because I found I was doing this
by hand.  I keep seeing these long URL requests full of Ns
in my apache log.  And the 404's looking for foolish .exe's.
 So I have a new script at my &lt;a
href="http://pretender.parts-unknown.com/linux"&gt;scripts
page. &lt;/a&gt;  This is &lt;a
href="http://pretender.parts-unknown.com/Pretender/scripts/msg-infected-server.expect"&gt;
msg-infected-server.expect&lt;/a&gt;.  You just pass it a server as
the argument and it attempts to email it this message to
that server.
&lt;p&gt;
&lt;PRE&gt;
Hello, your server appears to be infected with some kind
of a worm, code red or NIMBDA, it attacked my server.

&lt;p&gt; &lt;p&gt; Please update your server.
http://windowsupdate.microsoft.com
most of these worms fixes have been available for more than 
six months.

&lt;p&gt; &lt;p&gt; I have not included my email address as I do not like
recieved
infected attachments.  Thanks!

&lt;p&gt; &lt;p&gt; from a concerned Internet user.

&lt;p&gt; &lt;p&gt; &lt;/pre&gt;
note this entry was modified to have the expect version
rather than the netcat version since nc would feed data
faster than the server could react so it wouldn't accept the
connection.</description>
    </item>
    <item>
      <pubDate>Fri, 12 Oct 2001 15:57:58 GMT</pubDate>
      <title>12 Oct 2001</title>
      <link>http://www.advogato.org/person/star/diary.html?start=4</link>
      <guid>http://www.advogato.org/person/star/diary.html?start=4</guid>
      <description>So I am still facinated that nearly a hundread hits per
month on my web server are for my static route script.  It has
one seriouos flaw that it contains and embedded tab, so you
cannot copy and paste it and expect to use it.  The embedded
tab is just so it can accept either tab or space in the
config file.  NOONE has ever written me about this script,
to say it sucks or they liked it, or I did it all wrong. 
What are all these people doing?
&lt;p&gt;
Attempt to codify last nights supper.&lt;p&gt;
&lt;b&gt;Three Mushroom Chicken&lt;/b&gt;&lt;p&gt;

&lt;p&gt; 2 chicken breasts&lt;br&gt;
4 tablespoons butter&lt;br&gt;
1 onion&lt;br&gt;
4 cloves garlic&lt;br&gt;
2 teaspoons poultry seasoning&lt;br&gt;
2 teaspoons black pepper&lt;br&gt;
1 dash of salt&lt;br&gt;
6 shitake mushrooms&lt;br&gt;
9 button mushrooms&lt;br&gt;
2 portobello mushrooms&lt;br&gt;
2 cups chardonay (preferbly fruity)&lt;br&gt;
&lt;p&gt;
Dice the onion, place in a pan with the butter.  Then chop
the shitake and button mushrooms.  Mince the garlic and add
the garlics, and shitake and button mushrooms to the onions,
and stir.  Add the chicken breasts, sprinkle half the
poultry seasoning and half the black pepper on the two
chicken breasts, also lightly salt.  Place the portobello
mushrooms on top of the chicken breasts.  Add half a cup of
wine, cover (this dish will be cooked near high for the
entire time it is cooking).  After the wine has evaporated,
flip the chicken over, season the other side with the rest
of the poultry seasoning, black pepper, and a little salt
and replace the portobellos on top.  Add another 1/2 cup of
wine and cook covered.  Flip the chicken and add more wine
at least 4 more times (you may add less than 1/2 a cup from
now on).  Once the Chicken is cooked through, uncover and do
not add wine, but flip rappidly for a few minutes untill it
has a brown edge.&lt;p&gt;
server with the portobello on top, and the onion, mushroom
saute covering the chicken.  also serve with the asparagus
tomato salad, and sliced potatos.
&lt;p&gt;
&lt;b&gt;asparagus tomato salad&lt;/b&gt;
&lt;p&gt;
1 bunch aspargus&lt;br&gt;
2 cloves garlic&lt;br&gt;
2 tomatos&lt;br&gt;
lettuce leaf&lt;br&gt;
  salt&lt;br&gt;
  black pepper&lt;br&gt;
  balsamic vinegar&lt;br&gt;
&lt;p&gt;

&lt;p&gt; Tear off and was 1 large lettuce leave per serving.  Place
on the plate.  Slice the tomato in lateral rounds, place 4-6
rounds on the lettuce covering it.  Add vinegar, salt, and
pepper to the tomatos.  Steam the aspargus with garlic for
less than 5 minutes (remember when steaming the steamer must
be steaming before you add the food) so that the aspargus is
bright green and should remain slightly crunchy.  Place the
aspargus on the tomatos, dash a little more salt and pepper
on aspargus.
&lt;p&gt;
&lt;b&gt;steamed purple potatos&lt;/b&gt;
&lt;p&gt;
2   purple potatos&lt;br&gt;
2   cloves garlic&lt;br&gt;
1/2 cup button mushrooms (whole)&lt;br&gt;
salt&lt;br&gt;
pepper&lt;br&gt;
&lt;p&gt;
Prepare steamer.  Slice potatos laterally into 3mm slices. 
Add potatos, garlic, and mushrooms into the steamer.  Steam
for over 15 minutes, untill potatos are soft.  Serve, and
salt and pepper to taste.</description>
    </item>
    <item>
      <pubDate>Thu, 11 Oct 2001 04:13:15 GMT</pubDate>
      <title>11 Oct 2001</title>
      <link>http://www.advogato.org/person/star/diary.html?start=3</link>
      <guid>http://www.advogato.org/person/star/diary.html?start=3</guid>
      <description>Well I figured I would post something.  For those people who
have
ever been by my desk, which &lt;b&gt;is not&lt;/b&gt; most of you, I have
crazy colours everywhere that give people headaches.&lt;p&gt;
Now I have made it easy so you can do this yourself! And now
it doesn't require getting any crazy code to compile that
didn't ship with your favourite OS.  You too can use &lt;a
href="http://www.rslomkow.org/Pretender/scripts/xterm-setter"&gt;
xterm-setter&lt;/a&gt; and get the crazy colours you need.  Sorry
it only works for xterms, not gnome-terminal, kterm, zvt, MacOS
term or any other crazy or much improved terminal.  If you
want to read more about it you can go &lt;a
href="http://www.parts-unknown.com/linux/"&gt;here&lt;/a&gt; but it
wont' really help. &lt;p&gt;
Have fun, and bond to the colours!!!</description>
    </item>
    <item>
      <pubDate>Sun, 11 Jun 2000 08:29:06 GMT</pubDate>
      <title>11 Jun 2000</title>
      <link>http://www.advogato.org/person/star/diary.html?start=2</link>
      <guid>http://www.advogato.org/person/star/diary.html?start=2</guid>
      <description>Ok it took me long enough to get this here, but I did add
some more
information about what you need to get nautilus compiled to
the &lt;a
href=""&gt;HACKING&lt;/a&gt; file.  I know it is a lot of stuff to
get out of
CVS, but within two months it will be much less and will be
fairly
simple.  I have started the project to minimize the number
packages
that need to come that way, but it will take some time, as I
have other
things to worry about.  I also will need to coordinate a
release of
some modules as there are some bug fixes that nautilus needs
from
packages like ORBit.&lt;p&gt;
&lt;b&gt;Build Stuff&lt;/b&gt;
&lt;p&gt;
OK, todays topic on build stuff is what to do about
packages!&lt;p&gt;
One interesting problem with open source development is you
may have to
switch back and forth between three different ways of
recieving code fairly
frequently.  The three majore forms are.
&lt;ul&gt;
&lt;li&gt;CVS
&lt;li&gt;Release Tar Balls
&lt;li&gt;System Package
&lt;/ul&gt;
Now what I want is to create sensible meta data for
modules.  We can
call them module objects, that have all the properties you
will need
when refering to a module.  Most likely the functions you
will want are 
build(), get_code(), clean(), install(), remove_code(),
update_code(),
clean(), get_state(), configure(). &lt;P&gt;
So the properties of a module object would be.

&lt;p&gt; &lt;li&gt;Name
	&lt;ul&gt;&lt;em&gt;Simply a way to reference the module.&lt;/em&gt;&lt;/ul&gt;

&lt;li&gt;Version
	&lt;ul&gt;&lt;em&gt;A number to reference what release this&lt;/em&gt;&lt;/ul&gt;

&lt;li&gt;Type
	&lt;ul&gt;CVS
		&lt;ul&gt;name
			&lt;ul&gt;&lt;em&gt;the name in the repository&lt;/em&gt;&lt;/ul&gt;
		location
		
&lt;ul&gt;&lt;em&gt;:pserver:rslomkow@cvs.gnome.org:/cvs/gnome&lt;/em&gt;&lt;/ul&gt;
		branch&lt;/ul&gt;
	Release Tar Ball
		&lt;ul&gt;name
			&lt;ul&gt;&lt;em&gt;basename of tarball&lt;/em&gt;&lt;/ul&gt;
		location
		
&lt;ul&gt;&lt;em&gt;ftp://ftp.gnome.org/pub/foo/bar/mod-version.tgz&lt;/em&gt;&lt;/ul&gt;&lt;/ul&gt;
	System Package
		&lt;ul&gt;name
			&lt;ul&gt;&lt;em&gt;system package name&lt;/em&gt;&lt;/ul&gt;
		location
		
&lt;ul&gt;&lt;em&gt;ftp://ftp.gnome.org/pub/foo/bar/mod-version.tgz&lt;/em&gt;&lt;/ul&gt;&lt;/ul&gt;

&lt;p&gt; 
&lt;li&gt;Build Prefixes
	&lt;ul&gt;&lt;em&gt;arguments to the configure command&lt;/em&gt;&lt;/ul&gt;

&lt;li&gt;Setup Script
	&lt;ul&gt;&lt;em&gt;a set of commands to prepare a build area.  That
are specific
	to the module.&lt;/em&gt;&lt;/ul&gt;

&lt;p&gt;

&lt;p&gt; At the moment I don't warrent the confusion of additional
logic in this
object to handle how you build, I am just going to leave
that to the
configure() and build().
&lt;p&gt;

&lt;p&gt; Now the tricky part is how to allow the user to be able to
override
parts of the object, in a simple config file.  Which brings
up the
issue, should I create as of yet a new configuration file
format? Or
should I make it easy for it to be interpreted by my
parser.  I know
all the user interface guys say make it easy for the user! 
But If I
make a new format then they have to learn somthing new! Most
people
knkow how to write basic perl these days.  Also if I make it
easily
machine interperatable then extending it may be easier.
&lt;p&gt;
&lt;b&gt;Human Interest&lt;/b&gt;
&lt;p&gt;
It is amazing how small the software world is.  Just a
couple years
ago, everything was made by mysterious people elsewhere, now
I have met
the people who wrote most of the software I use.  And it
seems the web
just extends and fills in the gaps.  You take a new job and
meet
another 20.&lt;/ul&gt;</description>
    </item>
    <item>
      <pubDate>Mon, 5 Jun 2000 05:30:16 GMT</pubDate>
      <title>5 Jun 2000</title>
      <link>http://www.advogato.org/person/star/diary.html?start=1</link>
      <guid>http://www.advogato.org/person/star/diary.html?start=1</guid>
      <description>Well Today I finally got nautilus compiled on my home debian
machine.  Yay!!!  It turns out that if you use and old
version of libpng such as 0.96, everything (imlib,
gnome-libs, nautilus) will compile fine, but as soon as you
run it you will get SIGSEV in __morecore in libc.so.6.  It
will drive you batty and won't be able to run nautilus.  I
am not sure where the correct place to check for the version
of libpng is.  libpng 1.0.3 and higher work fine. (debian
package libpng2 and libpng2-dev ) will give you what you
need.  So I now have a full configuration for what you need
to build gnome and nautilus on Debian.  Perhaps I will post
the needed packages a little later.
&lt;p&gt;
I am still working on my portable development tools. 
Currently I am focusing on things that work for both a
bourne derived shell and perl.  I am doing most things in
perl, but it makes sense to have hooks so korn, bourne,
bash, and zsh users can have their environment setup the
same way the build is.
&lt;p&gt;
I have some working prototypes, all ready packaged up to be
used as perl libraries that I use to do gnome builds.  I
will add some more functionality soon. &lt;p&gt;
&lt;li&gt;incremental build of multi-package systems
&lt;li&gt;notion of a purge build, that will wipe out the
destination directories and the source directories
&lt;li&gt;a generalized notion of levels of rebuild
&lt;p&gt;
I also wrote a static route startup script using a config
file.  It is designed for Debian, since they seem to still
be lacking this, at least with potato Debian has a sensible
networking script.  If you need static routes for your
machine you can grab &lt;a
href="http://www.rslomkow.org/Pretender/scripts/static_route.html"&gt;my
stuff here&lt;/a&gt;.  It just uses a very basic config file and
will add and remove the routes with a stop and start.</description>
    </item>
    <item>
      <pubDate>Fri, 26 May 2000 01:47:05 GMT</pubDate>
      <title>26 May 2000</title>
      <link>http://www.advogato.org/person/star/diary.html?start=0</link>
      <guid>http://www.advogato.org/person/star/diary.html?start=0</guid>
      <description>Yay today I did my first commit to &lt;A
HREF="http://www.advogato.org/project/nautilus"&gt;Nautilus&lt;/a&gt;,
OK it was someone elses code, but I did commit something.&lt;p&gt;
Right now I am going over some various idea for how to deal
with developer environments. &lt;p&gt;
&lt;li&gt;
Do not store data in the environment unless you have to.

&lt;li&gt;
Keep configuration information seperate from logic, or even
seperate from a particular programming language.

&lt;li&gt;
Use a sensible programming language.  I am choosing &lt;a
href="http://www.perl.org"&gt;perl&lt;/a&gt; despite some complaints
that it is not sensible.

&lt;li&gt;
Keep it easy, yet keep it simple.

&lt;p&gt;
&lt;b&gt;Configuration Information&lt;/b&gt;
You always need to have value pairs,  X=Y, this is simple
and generic and you will need it for any programming or
configuration.  It makes the most sense to store this in a
file, that you have other scripts/application parse to gain
the configuration.  This way you do not have to hard configs
into your application (other than the location of the
configs) and it makes it easily extensible, so you could
have an IDE load the configs, a series of installation
scripts, and possibly even and environment.   This also
bennifits maintainability greatly, if you only have to
change setting once!  Not in 15 million files.&lt;p&gt;
I am currently working on some tools so you can have a perl
modules or a bourne derived shell extract settings from the
same file and then set those settings for further use.
&lt;p&gt;
&lt;b&gt;sensible programming language&lt;/b&gt;
Maintainability, Maintainability, Maintainablity.  Tools do
not have heavy performance requirements.  They need to be
changed and adapted frequently, for integration with other
tools, other networks,  new releases of OS's.  They need to
be able to do fancy text processing and deal with
meta-data.   Your tools will also need to call other tools
at the OS level. Continual change, and text processing, and
calling external utilities makes scripting languages ideal
for this. &lt;p&gt;
Generally builds have enough complexity and logic, that you
want a language with decent referencing, library abilities,
and scopeing.&lt;p&gt;
Shell is a little weak, as is tcl.  Perl I chose because,
way more people know it than others (this is important for
maintainability), it is easy to learn &lt;em&gt;(if you are
familiar with programming in any other language - I would
&lt;b&gt;never&lt;/b&gt; reccomend perl as a first language)&lt;/em&gt;,  perl
integrates very nicely with calling outside programs, and
perl has LOTS of &lt;a href="http://www.cpan.org" &gt; usefull
ready made modules.&lt;/a&gt;  The problem with perl is that it
can be difficult to maintain your code, the language
discourges you from writing clean code, but it does not
require you to write unreadable code.
&lt;p&gt;
&lt;b&gt;keep it easy keep it simple&lt;/b&gt;  The idea for tools is to
make developers more effective, and to allow a new developer
to become effective quickly.  At the same time, it is not
worth while to reduce the number of commands if it requires
additonal  conceptioual complexity.  DO NOT make context
senstive setup commands.  This saves typing but does not
make it easier for people to become familiar with what is
going on.
&lt;p&gt;
Some other ideas are that their should be one command to do.
&lt;p&gt;
&lt;li&gt;
initialize an environment from scratch.
&lt;ul&gt;This just saves time.  New developer comes in, gets new
OS, runs one command gets all the required tools and setup,
should download the packages needed, should setup the
filsystem, give the developer the localizations they need.
&lt;/ul&gt;

&lt;li&gt;
update tools and source.
&lt;ul&gt;Things change, it happens.  Developer should have one
command to hit a centralized spot, and find out what changed
and be up to date.
&lt;/ul&gt;

&lt;li&gt;
build and release everything.

&lt;ul&gt;
This is really needed to verify that a setup is correct and
that the code that was there doesn't break anything.  It
needs to be done, it should do all related components.
&lt;/ul&gt;
&lt;li&gt;
initialize development environment to work on a project.
&lt;ul&gt;In a command line world this is one command, in a GUI
world this is a button or open the IDE config file, but
there should be one simple way to grab all the settings for
a project.  These need to be maintained regularly.
&lt;/ul&gt;
</description>
    </item>
  </channel>
</rss>
