Well, apparently I am Smalltalk. According to this highly reputable quiz I found on the Internet :-)
Which Programming Language are You?
Given that I was responsible for an early UK port of Smalltalk-80 (the heavy lifting being done by Mario Wolczko) I don't particularly mind this verdict, but I don't do Smalltalk any more. It's wrong about the objectification, though.
April 29, 2007
April 26, 2007
Other People's Time
Would you rather work with a contractor who gives you a due date and sticks to it or one you could never be entirely certain of? If the project slips, how good will communications be?
Seth Godin here relates why it's important to keep public events to a schedule. Conferences aren't about the muckety-mucks, they're about the hard-working stiffs who've forked over their cash. Well, the conferences I organize are, anyway.
If a meeting's not about the participants, why are they there?
Seth Godin here relates why it's important to keep public events to a schedule. Conferences aren't about the muckety-mucks, they're about the hard-working stiffs who've forked over their cash. Well, the conferences I organize are, anyway.
If a meeting's not about the participants, why are they there?
Posted by
Steve
at
22:28
No comments:
Labels:
chairman,
conference,
public relations,
pycon,
python,
time management
April 23, 2007
Python Acknowledged at IEEE
The May/June edition of the prestigious Computing in Science and Engineering (CiSE) magazine is a single-subject issue on the topic of Python. This is surely a recognition of the language's value to scientists, and a vindication of the work put in by scientists all over the world to apply Python to scientific tasks.
CiSE is a joint publication of the IEEE Computer Society and the American Institute of Physics. Unfortunately not all articles are available electronically to non-members.
CiSE is a joint publication of the IEEE Computer Society and the American Institute of Physics. Unfortunately not all articles are available electronically to non-members.
Posted by
Steve
at
14:52
3 comments:
Labels:
advocacy,
applications,
dynamic languages,
python,
science
Bet Your Business on Python
It is encouraging to see that increasingly businesses are depending on Python to give them a strategic advantage in their marketplaces. The most recent comment of note comes from yet another PyCon sponsor, ITA Software, who use Twisted quite heavily in airline scheduling applications. They are a new phenomenon to the airline business: a company that provides responsive service without the use of mainframe heavy-iron. You can read the whole eWeek article to get more context about ITA's use of Python, but the quote I liked best was from Dan Kelley, ITA's director of application integration:
"So we think, absolutely, that it's ready for prime time. What we're doing is saying to a billion-dollar business, 'Yes, we can write components in this particular programming language, and they will keep your airline running.'"Note that ITA don't use Python exclusively, and they see one of the advantages of distributed systems as being able to choose appropriate languages for each component.. I don't believe anyone thinks Python is perfect - it's a waste of time to seek perfection in a programming language because the concept is so subjective. Just the same it's nice to see real businesses coming out with this kind of informed opinion about Python in fairly mainstream publications. Quite apart from the general advocacy benefits it is useful, among other things, as ammunition against the dynamic language bigots should any such ammunition be needed.
Posted by
Steve
at
10:29
No comments:
Labels:
advocacy,
applications,
commercial,
open source,
python,
quality,
travel
April 20, 2007
MSDN Webmasters: Read Peter Norvig!
Peter Norvig's an interesting chap. I mean, head of research for Google, that's got to be an interesting job, right? One of the blogs in Planet Python (I can't remember whose, unfortunately, because the "How'd I get here" button in Firefox can't tell me what Thunderbird was looking at when I clicked a link (oh, all right, three minutes research tells me it was Peter Bengtsson)) recently pointed me at a recent Norvig gem, the spelling corrector in 21 lines of Python.
I don't believe I've previously mentioned in these pages that I am dabbling with ASP.NET. Shrieks of horror resound around the halls of Holden Web. It's been interesting in the sense of the Chinese curse that dooms you to live in "interesting times". The learning curve is steep (and any regular readers of comp.lang.python will know that that metaphor has been lately subjected to the Belgian logic chopper, to nobody's very great illumination). But I digress.
One of the things I have spent a lot of time doing, given the large-ish nature of the framework I am trying to learn, is look things up in the MSDN documentation. Anyone who has corresponded with me will know that the standard of my typing is roughly the same as if you were to pay a squirrel to dance on the keyboard, which is to say I make typographical errors with a regularity that makes monotony seem interesting - the Secret Service characterize my typing style as "frequent use of backspace key". Consequently I have, in the last 24 hours, entered "sqldatasourec reference" into the MSDN search page no less than three separate times (see, when I find a way to bollix a word up I stick with it - I am only half a touch typist, so short entries not for human consumption are even more frequently wrong).
Three times I have been confronted with the helpful message "We're sorry, we couldn't find any results containing sqldatasourec reference". Now this is exceedingly strange. In trying to verify this behavior I made yet another error, entering the search string as "sqldatasource referenec", and while I saw the same(-ish) error message there was above it the helpful, dare I say Googlesque, question "Did you mean: sqldatasource reference" - which, of course, I did. Perhaps the correction corpus should be extended to include the subject material?
Just for devilment I entered the same two search phrases into Google's engine and sure enough it corrected them both. The obvious conclusion must be that Google know more about the content of MSDN than Microsoft do, but surely it wouldn't be fair to say that. Or maybe it would ...
I don't believe I've previously mentioned in these pages that I am dabbling with ASP.NET. Shrieks of horror resound around the halls of Holden Web. It's been interesting in the sense of the Chinese curse that dooms you to live in "interesting times". The learning curve is steep (and any regular readers of comp.lang.python will know that that metaphor has been lately subjected to the Belgian logic chopper, to nobody's very great illumination). But I digress.
One of the things I have spent a lot of time doing, given the large-ish nature of the framework I am trying to learn, is look things up in the MSDN documentation. Anyone who has corresponded with me will know that the standard of my typing is roughly the same as if you were to pay a squirrel to dance on the keyboard, which is to say I make typographical errors with a regularity that makes monotony seem interesting - the Secret Service characterize my typing style as "frequent use of backspace key". Consequently I have, in the last 24 hours, entered "sqldatasourec reference" into the MSDN search page no less than three separate times (see, when I find a way to bollix a word up I stick with it - I am only half a touch typist, so short entries not for human consumption are even more frequently wrong).
Three times I have been confronted with the helpful message "We're sorry, we couldn't find any results containing sqldatasourec reference". Now this is exceedingly strange. In trying to verify this behavior I made yet another error, entering the search string as "sqldatasource referenec", and while I saw the same(-ish) error message there was above it the helpful, dare I say Googlesque, question "Did you mean: sqldatasource reference" - which, of course, I did. Perhaps the correction corpus should be extended to include the subject material?
Just for devilment I entered the same two search phrases into Google's engine and sure enough it corrected them both. The obvious conclusion must be that Google know more about the content of MSDN than Microsoft do, but surely it wouldn't be fair to say that. Or maybe it would ...
April 11, 2007
Help Wanted!
Another post from Doug Napoleone says (among many other things) "I need to take the very clean and and elegant code of Steve Holden and stuff in into the somewhat organic and undocumented PyCon-Tech code."
It's strange how other people's perceptions of our code can be so different from our own. I am conscious of several areas where that code (published, by the way, as a part of my PyCon 2007 tutorial) really needs revision. But anyway, thanks for the tip of the hat, Doug.
Anyone wanting to help to improve the software support for PyCon should sign up for the PyCon Tech project. It would be a great way to get started in Django in a supportive environment.
It's strange how other people's perceptions of our code can be so different from our own. I am conscious of several areas where that code (published, by the way, as a part of my PyCon 2007 tutorial) really needs revision. But anyway, thanks for the tip of the hat, Doug.
Anyone wanting to help to improve the software support for PyCon should sign up for the PyCon Tech project. It would be a great way to get started in Django in a supportive environment.
April 10, 2007
Python is Not a Religion
The title of this piece is a quote from a post by Doug Napoleone on the subject of Python advocacy. Another quote: "Advocating Python for the sole purpose of promotion is idiocy." I quite agree with that one too. I don't really understand quite why one of my blog entries is referenced as ironically hypocritical, but I suppose I can live with that.
Nor am I sure who Doug is referring to as those who feel there is no need for Python advocacy. I certainly can agree, though, that there is absolutely no need for religious wars when it comes to choice of programming language, and that the appropriate question to ask is "is Python a good way to solve my problems". Anyone who sees Python as the solution to all programming problems is perceiving the language as a hammer and the problems as nails. There are many things that Python is good at (and many more it could be good at if someone wrote the right applications), but it's no more a panacea than any other language.
Doug's blog post appears to be a call for enthusiasts ("passionate people" is what he calls them) to come to the aid of the language. The sad fact is that the majority of the users of any technology (or any religion, come to that) - even users who profit vastly from its adoption - much prefer to be passive consumers than advocates, and this is the way of the world. Passion is all very well, but ultimately it needs to be directed to a goal, and shouldn't the goal of Python advocacy be helping people to solve technical problems more effectively?
While passionate people will help, I think advocacy needs planning as well as passion, and it's only when the two go together that language advocacy really helps. Support for the existing community is important, but so is increasing awareness of Python outside that community. I'm not convinced that most community members have the stomach for that task. It remains to be seen whether Python users are the best advocates for the language, but rightly or wrongly the Advocacy Coordinator position is currently planned as follows:
Nor am I sure who Doug is referring to as those who feel there is no need for Python advocacy. I certainly can agree, though, that there is absolutely no need for religious wars when it comes to choice of programming language, and that the appropriate question to ask is "is Python a good way to solve my problems". Anyone who sees Python as the solution to all programming problems is perceiving the language as a hammer and the problems as nails. There are many things that Python is good at (and many more it could be good at if someone wrote the right applications), but it's no more a panacea than any other language.
Doug's blog post appears to be a call for enthusiasts ("passionate people" is what he calls them) to come to the aid of the language. The sad fact is that the majority of the users of any technology (or any religion, come to that) - even users who profit vastly from its adoption - much prefer to be passive consumers than advocates, and this is the way of the world. Passion is all very well, but ultimately it needs to be directed to a goal, and shouldn't the goal of Python advocacy be helping people to solve technical problems more effectively?
While passionate people will help, I think advocacy needs planning as well as passion, and it's only when the two go together that language advocacy really helps. Support for the existing community is important, but so is increasing awareness of Python outside that community. I'm not convinced that most community members have the stomach for that task. It remains to be seen whether Python users are the best advocates for the language, but rightly or wrongly the Advocacy Coordinator position is currently planned as follows:
- User groups how-to and content resources (40%)
- Web site content showcasing Python capabilities (40%)
- User group infrasructure support (5%)
- Reactive and proactive response to queries and support requests (15%)
April 9, 2007
Buildbot Machines Wanted
I know there are quite a few hosting companies now who represent themselves as Python-friendly. Rather than trawl through the Wiki pages, however, and email each one separately I am sending this request to the comp.lang.python list (and putting it on my blog) in the hope of attracting those companies who are more involved with the Python community.
There is a particular problem, highlighted recently by this comment from Dennis Lee Beiber:
I am trying to address this problem, initially by making hosted Windows machines available for use as buildbots. I already have agreement from Grig Gheorghiu (who maintains the PSF's buildbots) to try and support these efforts, and from Microsoft to consider providing appropriate software.
What I don't have is hosting companies offering me space on machines in their racks. If anyone reading this can help out I'd appreciate it if they would get in touch with me (replying to the newsgroup post or commenting on the blog entry should do it). These machines would need remote desktop access so they could be managed without physical presence.
The intention is to try and shorten the "version lag" so that new versions of Python can be better supported more quickly. I don't guarantee that this will happen overnight, but I'd like to make a start.
There is a particular problem, highlighted recently by this comment from Dennis Lee Beiber:
Too many 3rd-party modules still aren't available in 2.5 versions for my tastes...This applies particularly (though not exclusively) to the Windows platform, for various reasons -- the most common one is that Linux developers frequently don't have a Windows machine available to help them test their builds and ensure that distributions are available.
I am trying to address this problem, initially by making hosted Windows machines available for use as buildbots. I already have agreement from Grig Gheorghiu (who maintains the PSF's buildbots) to try and support these efforts, and from Microsoft to consider providing appropriate software.
What I don't have is hosting companies offering me space on machines in their racks. If anyone reading this can help out I'd appreciate it if they would get in touch with me (replying to the newsgroup post or commenting on the blog entry should do it). These machines would need remote desktop access so they could be managed without physical presence.
The intention is to try and shorten the "version lag" so that new versions of Python can be better supported more quickly. I don't guarantee that this will happen overnight, but I'd like to make a start.
April 5, 2007
Give Me a Break, Microsoft
Well, it's going to be quite a long goodbye, but today I finally and irrevocably decided to stop buying Windows. As with most decisions of its kind this hasn't happened overnight. There have been the little annoyances, the bloat as more and more bits and pieces clamor for run time and screen real-estate, the ever-increasing startup time, but what's finally pushed me over the top is the Windows Genuine Advantage (or, as I like to think of it, the Make Microsoft Richer) program. I've been saying for over ten years now that Microsoft will become "the first IBM of the twenty-first century" and this program, coupled with the digital rights management (DRM) approach embodied in Windows Vista, has finally made me realize I am sick of this snake oil.
Windows Genuine Advantage has been bugging me for a while, sitting there as an uninstalled update. Eventually, as it was designed to, the continued notification on restart became annoying enough that I decided "what the hell, this Windows came from Dell, why don't I just install it and stop this annoyance". So I did. Right at the end there was a check box that said "when I click finish show me the benefits of Windows Advantage" or some such, and rather than uncheck it I thought I'd see if Microsoft could persuade me that this effort had in some trivial way been worthwhile. Unfortunately the justifications seem mostly to be bogus in the extreme.
First example: "A recent report from the market research firm IDC found that, if the global software piracy rate was lowered just 10 percentage points over the next 4 years, this would contribute a total of 2.4 million new jobs and $400 billion in economic growth to the global economy." This, accompanied by a link (that would have opened several popups had Firefox been dumb enough to let it) to the Business Software Alliance web site and an IDC white paper on "Expanding the Frontiers of Our Digital Future - Reducing Software Piracy to Accelerate Global IT Benefits". For some reason they go to great lengths to hide the URL of that white paper, and there appear to be a family of these documents, each tailored to their specific audiences, so the link I've included might not be "your" content if you come from somewhere where the prinicpal economic impact of IT has been to reduce the amount that can be spent on things like clean drinking water.
On page 4 we see, under the heading Who Wins and Why the point that "Governments benefit from $67 billion in new tax revenues for needed services that could [according to a unstated OECD cost estimates for government services] be used to provide:
On page 8 the authors try to convince us that "Lower Software Piracy Produces Higher IT Benefits". This section is accompanied by a wonderful graphic which I reproduce here as a classic example of how correlation is frequently taken to be causality. And yet I can find nothing anywhere in the paper that suggests the graphic might not equally well be entitled "Economic Growth Starts with High Piracy Rates" or "Poor People Steal Software Rather Than Do Without". The one thing IDC's methodology did not do was to look at single countries' change in "IT tax benefits" as the piracy rate changed, which it seems to me would be the only convincing way to demonstrate the benefits of such a change.
But I digress. In their discussions of the Genuine Software Initiative, Microsoft explain that downloading illegally-obtained software increases the chances of infection by malware and identity theft. Clearly these are things we would all like to avoid (and for my part it's why I tend not to buy anything from dodgy characters down back streets). They go on to say "In addition ... installing and using counterfeit software can prevent customers from obtaining some updates and premium add-ons." In other words, Microsoft will punish you still further for acquiring illegal software by refusing to provide updates to non-genuine copies. This seems fair enough, and it seems to me is the real thrust of Microsoft's policies: they don't care about your possible malware and identity theft issues (otherwise they would make their own products more secure), they care about whether they receive the revenue or not. The rest is just hokum designed to make people fearful about software theft, masquerading as a concern for the consumer.
I have to admit that Microsoft's update also bugged me by creating an automatic reboot event. This might not normally have been too troublesome (I had deferred it several times, and can only presume that the window appeared and consumed a random newline to gain permission to restart the system) had it not occurred during the installation of software. Aarrgghh!
The thing that really makes me want to run away from Windows, however, is Vista and its draconian approach to product registration and DRM issues. On the latter topic it's as though Microsoft were already a fully-fledged member of the Hollywood hegemony (which might give us clues about its media ambitions: I am sure that Microsoft is clever enough to sense the diminishing returns from software production). This paper by Peter Gutman enumerates some of the many ways in which DRM paranoia has caused Microsoft to choose to degrade content presentation and disable functionality that many users will desire.
With all the brains that Microsoft has at its disposal (and despite my occasional scathing criticism of the company and its products Microsoft does employ many very clever people), the best approach they could come up with for securing content in the 64-bit Vista environment was an insistence that drivers be digitally signed and approved by Microsoft. Fortunately it took about a month for NV Labs in India to design a system that completely subverted these protections. It's clear that Microsoft, like Hollywood, just doesn't understand that copy protection schemes are a busted flush. But they still continue to wrong-headedly pursue them because they know the majority of consumers will accept the technology unmodified and not even realize that in many legislations (i.e. those not subject to provisions similar to those of the USA's stupid Digital Millennium Copyright Act) their legal rights to fair-use copying are infringed by such systems.
One quite amusing result of Windows' present-day incorporation of DRM features is that in five or ten years' time Microsoft will have the content producers by the nuts. I can't say I'm sorry about that one. Microsoft like to paint themselves as subject to Hollywood's whims, but they are actually very cleverly positioning themselves to control the distribution channel. This would allow Microsoft to say "if you don't like our deal, tough, because it's the only game in town". This would be true if they weren't so busy throwing the desktop away. People are going to be really pissed when they find that they can't play their HD content on Vista, or that they have to repurchase after a disk crash.
The only systems I have left using Windows are laptops, and it's becoming increasingly easy to buy a laptop without a Windows you never plan to use. Unfortunately this won't stop me having to deal with people who can only provide me with low-resolution content because they can only talk to me over what Microsoft regard as an insecure (by which they mean non-protectable) channel. Microsoft say:
Gutman says at the start of his paper "The Vista Content Protection specification could very well constitute the longest suicide note in history". It certainly puts them in the running to become a shadow of their former selves. Notice, by the way, that while IBM is also a shadow of its former self it is still a significant organization.It just no longer has the 75% of the world computer market that it used to. When Microsoft looks back thirty years hence I hope it will realize that this obsession with DRM was what lost it the desktop dominance that fueled its growth into the largest software company in the world. I just hope they still sponsor PyCon.
Windows Genuine Advantage has been bugging me for a while, sitting there as an uninstalled update. Eventually, as it was designed to, the continued notification on restart became annoying enough that I decided "what the hell, this Windows came from Dell, why don't I just install it and stop this annoyance". So I did. Right at the end there was a check box that said "when I click finish show me the benefits of Windows Advantage" or some such, and rather than uncheck it I thought I'd see if Microsoft could persuade me that this effort had in some trivial way been worthwhile. Unfortunately the justifications seem mostly to be bogus in the extreme.
First example: "A recent report from the market research firm IDC found that, if the global software piracy rate was lowered just 10 percentage points over the next 4 years, this would contribute a total of 2.4 million new jobs and $400 billion in economic growth to the global economy." This, accompanied by a link (that would have opened several popups had Firefox been dumb enough to let it) to the Business Software Alliance web site and an IDC white paper on "Expanding the Frontiers of Our Digital Future - Reducing Software Piracy to Accelerate Global IT Benefits". For some reason they go to great lengths to hide the URL of that white paper, and there appear to be a family of these documents, each tailored to their specific audiences, so the link I've included might not be "your" content if you come from somewhere where the prinicpal economic impact of IT has been to reduce the amount that can be spent on things like clean drinking water.
On page 4 we see, under the heading Who Wins and Why the point that "Governments benefit from $67 billion in new tax revenues for needed services that could [according to a unstated OECD cost estimates for government services] be used to provide:
- 33 million computers for schools
- 45 million people with health care
- 6.6 million people with college educations
- 11 million children with schooling
- 435 million people with job training, or
- 132 million families with services like day care, maternity, or home help services
On page 8 the authors try to convince us that "Lower Software Piracy Produces Higher IT Benefits". This section is accompanied by a wonderful graphic which I reproduce here as a classic example of how correlation is frequently taken to be causality. And yet I can find nothing anywhere in the paper that suggests the graphic might not equally well be entitled "Economic Growth Starts with High Piracy Rates" or "Poor People Steal Software Rather Than Do Without". The one thing IDC's methodology did not do was to look at single countries' change in "IT tax benefits" as the piracy rate changed, which it seems to me would be the only convincing way to demonstrate the benefits of such a change.
But I digress. In their discussions of the Genuine Software Initiative, Microsoft explain that downloading illegally-obtained software increases the chances of infection by malware and identity theft. Clearly these are things we would all like to avoid (and for my part it's why I tend not to buy anything from dodgy characters down back streets). They go on to say "In addition ... installing and using counterfeit software can prevent customers from obtaining some updates and premium add-ons." In other words, Microsoft will punish you still further for acquiring illegal software by refusing to provide updates to non-genuine copies. This seems fair enough, and it seems to me is the real thrust of Microsoft's policies: they don't care about your possible malware and identity theft issues (otherwise they would make their own products more secure), they care about whether they receive the revenue or not. The rest is just hokum designed to make people fearful about software theft, masquerading as a concern for the consumer.
I have to admit that Microsoft's update also bugged me by creating an automatic reboot event. This might not normally have been too troublesome (I had deferred it several times, and can only presume that the window appeared and consumed a random newline to gain permission to restart the system) had it not occurred during the installation of software. Aarrgghh!
The thing that really makes me want to run away from Windows, however, is Vista and its draconian approach to product registration and DRM issues. On the latter topic it's as though Microsoft were already a fully-fledged member of the Hollywood hegemony (which might give us clues about its media ambitions: I am sure that Microsoft is clever enough to sense the diminishing returns from software production). This paper by Peter Gutman enumerates some of the many ways in which DRM paranoia has caused Microsoft to choose to degrade content presentation and disable functionality that many users will desire.
With all the brains that Microsoft has at its disposal (and despite my occasional scathing criticism of the company and its products Microsoft does employ many very clever people), the best approach they could come up with for securing content in the 64-bit Vista environment was an insistence that drivers be digitally signed and approved by Microsoft. Fortunately it took about a month for NV Labs in India to design a system that completely subverted these protections. It's clear that Microsoft, like Hollywood, just doesn't understand that copy protection schemes are a busted flush. But they still continue to wrong-headedly pursue them because they know the majority of consumers will accept the technology unmodified and not even realize that in many legislations (i.e. those not subject to provisions similar to those of the USA's stupid Digital Millennium Copyright Act) their legal rights to fair-use copying are infringed by such systems.
One quite amusing result of Windows' present-day incorporation of DRM features is that in five or ten years' time Microsoft will have the content producers by the nuts. I can't say I'm sorry about that one. Microsoft like to paint themselves as subject to Hollywood's whims, but they are actually very cleverly positioning themselves to control the distribution channel. This would allow Microsoft to say "if you don't like our deal, tough, because it's the only game in town". This would be true if they weren't so busy throwing the desktop away. People are going to be really pissed when they find that they can't play their HD content on Vista, or that they have to repurchase after a disk crash.
The only systems I have left using Windows are laptops, and it's becoming increasingly easy to buy a laptop without a Windows you never plan to use. Unfortunately this won't stop me having to deal with people who can only provide me with low-resolution content because they can only talk to me over what Microsoft regard as an insecure (by which they mean non-protectable) channel. Microsoft say:
Digital distribution offers consumers a convenient way to access their favorite content at any time, and with content protected with Windows Media DRM 10 they'll have even greater flexibility and choice. Today consumers can choose from a variety of content service providers, a multitude of devices, and a variety of "purchase and download" payment options and subscription models. Windows Media DRM 10 ensures that consumers will be able to enjoy even greater flexibility and choice by allowing them to acquire and/or transfer their subscription content to the devices of their choosing.I say this is complete tosh. The benefits of DRM are for the content owners and content providers, and Windows DRM allows them to provide copy-protected content that they can disable simply by adding it to a Certificate Revocation List. The "greater flexibiity and choice" is specious: Microsoft assume that content providers would choose not to make their content available digitally without DRM schemes, but in fact there has been no effective demonstration of this assertion. But I am used to corporate America pretending that their profit plans are really for my benefit.
Gutman says at the start of his paper "The Vista Content Protection specification could very well constitute the longest suicide note in history". It certainly puts them in the running to become a shadow of their former selves. Notice, by the way, that while IBM is also a shadow of its former self it is still a significant organization.It just no longer has the 75% of the world computer market that it used to. When Microsoft looks back thirty years hence I hope it will realize that this obsession with DRM was what lost it the desktop dominance that fueled its growth into the largest software company in the world. I just hope they still sponsor PyCon.
Posted by
Steve
at
07:45
2 comments:
Labels:
competition,
copyright,
digital rights management,
fairness,
microsoft,
vista,
windows
Subscribe to:
Posts (Atom)