<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>Advogato blog for salmoni</title>
    <link>http://www.advogato.org/person/salmoni/</link>
    <description>Advogato blog for salmoni</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Thu, 28 Aug 2008 16:11:23 GMT</pubDate>
    <item>
      <pubDate>Sat, 19 Jul 2008 03:45:49 GMT</pubDate>
      <title>19 Jul 2008</title>
      <link>http://www.advogato.org/person/salmoni/diary.html?start=581</link>
      <guid>http://www.advogato.org/person/salmoni/diary.html?start=581</guid>
      <description>My daughter, Louise Rhiannon Masaredo Salmoni was born at&#xD;
1.52pm yesterday. Both mother and baby are doing well.&#xD;
&#xD;
&lt;p&gt; &lt;a href="http://farm4.static.flickr.com/3145/2681654588_60f736d23f_b.jpg" &gt;&lt;img src="http://farm4.static.flickr.com/3145/2681654588_60f736d23f_m.jpg" alt="picture of my daughter"&gt;&lt;/a&gt;&#xD;
&#xD;
&lt;p&gt; I'm totally in love with her: My life has just changed for&#xD;
ever...&#xD;
</description>
    </item>
    <item>
      <pubDate>Thu, 10 Jul 2008 03:31:17 GMT</pubDate>
      <title>10 Jul 2008</title>
      <link>http://www.advogato.org/person/salmoni/diary.html?start=580</link>
      <guid>http://www.advogato.org/person/salmoni/diary.html?start=580</guid>
      <description>Busy, busy, busy. &#xD;
&#xD;
&lt;p&gt; But not much to show for it. My wife and I are expecting our&#xD;
first child next Friday.&#xD;
This will be a nervous week indeed.&#xD;
&#xD;
&lt;p&gt; For my statistics project, I&#xD;
wrote a Python module to import &lt;a href="http://spss.com" &gt;SPSS&lt;/a&gt; files and was wondering&#xD;
whether anyone would be interested in it if I released it as&#xD;
open source. It's one piece of code that would greatly&#xD;
benefit from community testing. So far, it seems to work on&#xD;
the SPSS files I have without problem but SPSS have added&#xD;
extra things to the format. Cleverly (or rather obviously,&#xD;
but nice to know that they've done it), older versions of&#xD;
the software can still read the new formats, but they just&#xD;
ignore the extra bits that the new formats have. My software&#xD;
does just that: it ignores all the extra bits, though I&#xD;
suspect that there may be some cases where my software&#xD;
misses completely. For example, the architecture: I believe&#xD;
mine only reads one endian.&#xD;
&#xD;
&lt;p&gt; But it could be useful for some people. There are already&#xD;
FOSS versions in R and PSPP (I think the R version came from&#xD;
the PSPP code) but they are in C and a Python version might&#xD;
be useful. I wonder if &lt;a href="http://scipy.org" &gt;SciPy&lt;/a&gt;&#xD;
has it? Currently, it can import via COM, but that is&#xD;
Windows only so of limited application. A pure Python module&#xD;
would have no such restrictions. Scientists using Python&#xD;
might appreciate being able to cut one more string to SPSS&#xD;
so I think I will release it. If anyone here is interested,&#xD;
let me know and it could be the spur that motivates me to&#xD;
release it!&#xD;
&#xD;
&lt;p&gt; I've started a &lt;a href="http://usernumber1.com" &gt;usability&#xD;
consultancy&lt;/a&gt; officially instead of doing work ad hoc.&#xD;
This should be fun as I have to learn marketing very quickly&#xD;
indeed. In the Philippines, I think there is one independent&#xD;
consultant who is serious about the work (ie, has&#xD;
advertising) and a few others who seem to do it as a&#xD;
sideline. However, in nearby Hong Kong, there are two that I&#xD;
can find: &lt;a href="http://www.apogeehk.com/" &gt;Apogee&lt;/a&gt; and&#xD;
&lt;a href="http://www.customerinput.com/" &gt;Customer Input&lt;/a&gt;.&#xD;
Looking through Google adwords shows that there is only a&#xD;
small market in HK compared to say the UK. However, we will&#xD;
be operating internationally so the location is of less&#xD;
importance. It does create some difficulties in terms of&#xD;
meeting the clients, but for general applications, I can&#xD;
easily get a good sample of users of varying abilities. It's&#xD;
also about time to put my remote testing experience to, erm,&#xD;
the test.&#xD;
&#xD;
&lt;p&gt; I'm also toying with the idea of joining the &lt;a href="www.upassoc.org/" &gt;UPA&lt;/a&gt; whom I gave a talk for &lt;a href="http://www.uigarden.net/forums/showthread.php?t=525" &gt;some&#xD;
while ago&lt;/a&gt;, but I need to check whether I will get my&#xD;
money's worth. It could be good for being noticed by&#xD;
potential customers.&#xD;
&#xD;
</description>
    </item>
    <item>
      <pubDate>Thu, 5 Jun 2008 12:15:33 GMT</pubDate>
      <title>5 Jun 2008</title>
      <link>http://www.advogato.org/person/salmoni/diary.html?start=579</link>
      <guid>http://www.advogato.org/person/salmoni/diary.html?start=579</guid>
      <description>I have finished a new Python module which is designed to&#xD;
import SPSS data files as a Python object. It seems to work&#xD;
quite well with the data sets I have. Not all functions are&#xD;
enabled yet: some of the type 7 records are not working yet,&#xD;
but for some I have to reverse engineer the solution and for&#xD;
others I need new data sets that use the subtype records.&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; When it's a bit more solid, I will probably release it under&#xD;
the AGPL. &#xD;
&#xD;
&lt;p&gt; &lt;p&gt; llkc - I guess I didn't explain well. My idea isn't an&#xD;
interactive debugger, though there are elements of that in&#xD;
it. The best thing is to produce the code.&#xD;
&#xD;
&lt;p&gt; In other news, I should (hopefully, all being well!) be&#xD;
doing some consultancy soon. I'm not sure of the size of the&#xD;
job, but it sounds like a good one (ie, interesting and a&#xD;
challenge).&#xD;
</description>
    </item>
    <item>
      <pubDate>Sun, 1 Jun 2008 03:11:24 GMT</pubDate>
      <title>1 Jun 2008</title>
      <link>http://www.advogato.org/person/salmoni/diary.html?start=578</link>
      <guid>http://www.advogato.org/person/salmoni/diary.html?start=578</guid>
      <description>I noticed that Google have opened their appengine up&#xD;
completely now. Signups are ongoing &lt;a href="http://appengine.google.com/" &gt;here&lt;/a&gt; and it doesn't&#xD;
seem as though there is any limit to the number of users&#xD;
this time. Prices are also available &lt;a href="http://googleappengine.blogspot.com/" &gt;here&lt;/a&gt;.&#xD;
</description>
    </item>
    <item>
      <pubDate>Sat, 31 May 2008 14:39:22 GMT</pubDate>
      <title>31 May 2008</title>
      <link>http://www.advogato.org/person/salmoni/diary.html?start=577</link>
      <guid>http://www.advogato.org/person/salmoni/diary.html?start=577</guid>
      <description>Perhaps this has been done, but I have been thinking about&#xD;
my ideal IDE for Python.&#xD;
&#xD;
&lt;p&gt; I like editors and have tried many. I also like interactive&#xD;
interpreters and have tried many. But my issue is that I&#xD;
often have to have both running at the same time (and yes, I&#xD;
know there are editors with interpreters running in them at&#xD;
the same time, but that's not what I'm thinking of).&#xD;
&#xD;
&lt;p&gt; But what about a dynamic editor/interpreter?&#xD;
&#xD;
&lt;p&gt; It sounds fanciful and I'm just beginning to think of the&#xD;
architecture but here is how it would work with Python.&#xD;
&#xD;
&lt;p&gt; You type some code in. It works interactively, so only&#xD;
executes when a block is entered. Or it may not. Each code&#xD;
block has a flag next to it that when activated causes the&#xD;
code to be marked as executable. When executed, only that&#xD;
code is run.&#xD;
&#xD;
&lt;p&gt; Ok, still fairly basic. &#xD;
&#xD;
&lt;p&gt; But what about if the user could also interactively run code&#xD;
separately from the stored blocks. So if I type in a large&#xD;
program, I can still type 'print "hi"' in the middle, click&#xD;
it, and it and only it will run.&#xD;
&#xD;
&lt;p&gt; But even better: what about if I can execute the code block&#xD;
by block or even line by line?&#xD;
&#xD;
&lt;p&gt; Again, this is not totally revolutionary. But what if you&#xD;
could change existing code and cause the program (assuming&#xD;
that it's still running and waiting for the user to enter&#xD;
the next code) to step back to a previous state? And then&#xD;
run up to the end with the new code?&#xD;
&#xD;
&lt;p&gt; And then when saving, the user can save a working version&#xD;
(with the interactive bits in place) and a "parade" version&#xD;
with all the interactive bits taken out.&#xD;
&#xD;
&lt;p&gt; I'm not sure this has been done (though if anything can,&#xD;
it's probably Eclipse or Emacs). I have probably described&#xD;
this idea poorly, but I think it could be a good thing that&#xD;
unifies the best of editor/IDE operation with the best of&#xD;
interpreters operation.&#xD;
&#xD;
&lt;p&gt; I'll have to work on a prototype and test it myself to see&#xD;
if it works.</description>
    </item>
    <item>
      <pubDate>Thu, 29 May 2008 08:53:21 GMT</pubDate>
      <title>29 May 2008</title>
      <link>http://www.advogato.org/person/salmoni/diary.html?start=576</link>
      <guid>http://www.advogato.org/person/salmoni/diary.html?start=576</guid>
      <description>&lt;b&gt;Python Consulting&lt;/b&gt;&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; This is an announcement that I will be doing Python&#xD;
consulting from now. My expertise covers Python, wxPython,&#xD;
NumPy and SQLAlchemy; and the primary area of my work is on&#xD;
numeric analysis / statistics, though of course you get a PhD in&#xD;
human-computer interaction thrown in if you want interfaces&#xD;
made.&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; If anyone has any Python work they would like help with, I&#xD;
can offer a discount on open source code. I can work&#xD;
internationally as long as requirements can be sent&#xD;
electronically. The best way to contact me as salmoni - at -&#xD;
gmail.com&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; Apart from that, all is well here in the Philippines! The&#xD;
coding on the new project is going well and I'm considering&#xD;
farming off the database viewer/importer tool as a separate&#xD;
component for database management. I'm not exactly sure what&#xD;
functionality would be necessary for this, but suffice to&#xD;
say that the basics should be easy to implement (and the&#xD;
middling / advanced stuff a nightmare!).&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; &lt;b&gt;Factorial ANOVA of large sets&lt;/b&gt;&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; I've also solved all the problems concerning factorial&#xD;
analysis of variance for extremely large datasets (ie, those&#xD;
too large to fit into memory). I will crack on with this&#xD;
code now to get it done and to make an industrial quality&#xD;
heavy-weight data analysis tool. This will be open sourced&#xD;
in time, after testing anyway. The real problems that I have&#xD;
are a) getting hold of an environment (ie, a machine with a&#xD;
massive database on it), and b) getting comparison results,&#xD;
though SAS should be able to deliver on this. I understand&#xD;
that SPSS will face problems if the data are too big for&#xD;
memory; but SAS can work around this just like my code can.&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; Moore's Law makes this of decreasingly utility; but it's&#xD;
nice to have software that you know can handle any task.&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; &lt;b&gt;Article&lt;/b&gt;&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; I've also enquired about submitting an article to a Python&#xD;
journal about how to use the code module to implement an&#xD;
interactive interpreter and embed it within a Python&#xD;
program. This comes from work on the statistics program&#xD;
where I wrote one for quick debugging and found it so good&#xD;
that I extended it a little to be used as a permanent tool.&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; One problem we found is that when declaring and using a&#xD;
variable, a user would have to write:&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; &lt;code&gt;x = newvar()&lt;/code&gt;&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; or&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; &lt;code&gt;newvar("x")&#xD;
&lt;br&gt;x.data([3,4,5,6])&lt;/code&gt;&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; It would make more sense (to novices) to write&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; &lt;code&gt;newvar(x)&#xD;
&lt;br&gt;x.data(3,4,5,6)&lt;/code&gt;&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; It does this now. What I did was override the&#xD;
code.InteractiveInterpreter.showtraceback method to catch&#xD;
NameErrors (which are risen when x is sent to newvar because&#xD;
x doesn't exist). Then the code works out the command and&#xD;
sends it again to the newvar method but with the x in&#xD;
quotes. It's minor stuff but less annoying to users.&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; And if a database has awkward variable names that are not&#xD;
valid variable names in Python, they cannot be used: so I&#xD;
added a catcher to showtraceback that catches&#xD;
AttributeErrors and tests to see if a string has been issued&#xD;
with a program method:&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; &lt;code&gt;"Variable 1 (2000)".variance()&lt;/code&gt;&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; This would never work normally within Python without&#xD;
overriding the string class (which is another possibility).&#xD;
However, the catcher above can catch this attribute error&#xD;
and redirect the 'variance()' bit to the proper variable&#xD;
definition.&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; All this just means that the application is beginning to&#xD;
work around its users instead of demanding that they work&#xD;
around it.&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; I also added lots of alternative names for descriptive&#xD;
tests so:&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; &lt;code&gt;x.samplestandarddeviation()&#xD;
&lt;br&gt;x.standarddeviation()&#xD;
&lt;br&gt;x.stddev()&#xD;
&lt;br&gt;x.stdev()&#xD;
&lt;br&gt;x.sd()&lt;/code&gt;&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; all call the same function. This helps because when I've&#xD;
used a new statistics program, I have to find out the exact&#xD;
name for the functions. This way, I don't have to remember&#xD;
which one: I just pick a common one, and away I go! :-)&#xD;
</description>
    </item>
    <item>
      <pubDate>Tue, 27 May 2008 11:46:40 GMT</pubDate>
      <title>27 May 2008</title>
      <link>http://www.advogato.org/person/salmoni/diary.html?start=575</link>
      <guid>http://www.advogato.org/person/salmoni/diary.html?start=575</guid>
      <description>I spent the weekend wrestling with factorial ANOVA code&#xD;
which was nice and fun. All seems to work alright but there&#xD;
is still some finishing and of course testing to do before&#xD;
it's anything like releasable. Plus I need to work on how to&#xD;
work things like post-hoc tests and simple effects for when&#xD;
a significant effect is observed. Lots of fun!&#xD;
</description>
    </item>
    <item>
      <pubDate>Thu, 22 May 2008 14:12:15 GMT</pubDate>
      <title>22 May 2008</title>
      <link>http://www.advogato.org/person/salmoni/diary.html?start=574</link>
      <guid>http://www.advogato.org/person/salmoni/diary.html?start=574</guid>
      <description>I've been having lots of fun working through factorial&#xD;
statistics code. Actually, I'm not being sarcastic because&#xD;
I've spent so much time preparing the data ready for&#xD;
analysis (that's the part that takes the most work), that&#xD;
the statistics code itself is a nice easily stroll. And&#xD;
curiously, it's fun. The preparation stage doesn't provide&#xD;
so much in the way of motivation because it doesn't really&#xD;
do anything from an end-users perspective. But the stats&#xD;
code can analyse factorial analysis of variance of arbitrary&#xD;
factors and that is a rather nice thing indeed. It actually&#xD;
does something!&#xD;
&#xD;
&lt;p&gt; In other news, the naming of the business (branding etc) is&#xD;
coming to a head and hopefully we should have formed our&#xD;
company soon and bought all the URLs etc. We had a blitz&#xD;
last weekend and managed to get some ideas that I thought&#xD;
were rather good. I won't mention them here because of&#xD;
squatters, but when we're ready, I will be able to announce&#xD;
them.&#xD;
&#xD;
&lt;p&gt; And once I have announced them, I can make a public release&#xD;
of the software! Yay!&#xD;
&#xD;
&lt;p&gt; The above factorial code won't be in it though as it's not&#xD;
anywhere near tested (though I should just add it anyway for&#xD;
users to look at and shake their heads at). The problem is&#xD;
that I like to release things that actually work properly.&#xD;
That goes against the principles of "release early, release&#xD;
often" mantra so I should learn to lose control and just get&#xD;
code out there.&#xD;
&#xD;
&lt;p&gt; Thanks to everyone from here who completed the questionnaire&#xD;
I linked to in my last diary entry. The information has been&#xD;
tremendously useful! And as I promised, the code will be&#xD;
open source code, probably under the AGPL (which ever one we&#xD;
choose - apparently there are two, both of which are very&#xD;
similar).&#xD;
</description>
    </item>
    <item>
      <pubDate>Sat, 17 May 2008 06:54:27 GMT</pubDate>
      <title>17 May 2008</title>
      <link>http://www.advogato.org/person/salmoni/diary.html?start=573</link>
      <guid>http://www.advogato.org/person/salmoni/diary.html?start=573</guid>
      <description>&lt;b&gt;Statistics software questionnaire&lt;/b&gt;&#xD;
&#xD;
&lt;p&gt; If anyone uses statistics software of any sort (whether&#xD;
Excel, SPSS, R, SAS or anything), I would be grateful if you&#xD;
could help by completing a survey we have put up at &lt;a href="http://www.surveymonkey.com/s.aspx?sm=IG5CH7BYXzWCdBEI1az3wQ_3d_3d" &gt;SurveyMonkey&lt;/a&gt;.&#xD;
It shouldn't take longer than a few minutes to complete and&#xD;
there are only ten questions. Feel free to expand upon your&#xD;
answers if possible.&#xD;
&#xD;
&lt;p&gt; Thank you very much in advance to those who complete it.&#xD;
&#xD;
&lt;p&gt; btw, it's all for the open source software that we're&#xD;
producing. We're stuck for a name now.</description>
    </item>
    <item>
      <pubDate>Wed, 14 May 2008 11:04:42 GMT</pubDate>
      <title>14 May 2008</title>
      <link>http://www.advogato.org/person/salmoni/diary.html?start=572</link>
      <guid>http://www.advogato.org/person/salmoni/diary.html?start=572</guid>
      <description>The market research has been going well and in our favour.&#xD;
We used a survey and interviews (blind for the first half to&#xD;
get opinions about the field and open the second half to get&#xD;
opinions about our product). We certainly have a strong&#xD;
market here.&#xD;
&#xD;
&lt;p&gt; And the development is going well though I have been stuck a&#xD;
lot on importing data. However, the tool is extremely&#xD;
flexible and useful - and it's great for merging data from&#xD;
different sources into one unified dataset which is&#xD;
something I think advanced users will appreciate.&#xD;
&#xD;
&lt;p&gt; I have also been trying to work on the interactive results&#xD;
without too much luck and have instead asked the opinions of&#xD;
the very knowledgeable people on the wxPython mailing list.&#xD;
They seem to come up with extremely helpful answers, but why&#xD;
not ask here?&#xD;
&#xD;
&lt;p&gt; My situation is this: I have a wxHTML frame displaying HTML&#xD;
results. These need to be dynamic - users will be able to&#xD;
select options that will mean the HTML needs to be changed&#xD;
and then redisplayed. The best way I can think of dealing&#xD;
with this is just to get the HTML (stored in a temporary&#xD;
memory file system) and remove the old code and insert the&#xD;
new code in its place and then re-display it. Does this seem&#xD;
like too much of a bad hack?</description>
    </item>
  </channel>
</rss>
