LeMay & Galt Media welcomes Nathan Statz
August 2nd, 2010 • all posts • 2 comments
I have some extremely exciting news!
I’ve always known that I wanted to grow my company — LeMay & Galt Media — fast, but I didn’t quite expect that it would grow this fast. Just six months after the company’s launch in January 2010, we are pleased to welcome our second part-time employee, Nathan Statz (well, third employee if you count me).
Nathan is a former senior reporter and online editor of Image & Data Manager Magazine. He has recently returned to Australia after a stint overseas — including in Dubai, where he worked as assistant editor at Arabian Computer News for some time.
Nathan’s also an awesome StarCraft II commentator — I highly recommend you check out his YouTube channel for some recent matches. He’s also on Twitter as @Sephyre. His new work phone number is 02 8011 4376, and his email address is nathan@lemayandgalt.com.
Myself and the company’s other journalist, Jenna Pitcher, primarily work on LeMay & Galt Media’s first product, Australian technology newswire Delimiter. However, Nathan has not joined the company to work on Delimiter. Instead, he will lead a new wing of the company focused on custom publishing projects.
Custom publishing is a word broadly used to describe publications that are produced ‘on-demand’ for other companies. An example would be a magazine produced for a technology vendor that they distribute to their internal staff or customers. It’s not public relations work, but it does generally come out of an organisation’s marketing budget.
I’ve done a bit of custom publishing work in the past, primarily in the magazine world. However, I have always felt that there was room for the medium to evolve and shift onto the internet and develop more of an audience engagement model than the offline model involves.
Recently I had the chance to test out some of these theories when I covered Salesforce.com’s Cloudtopia conference in Singapore on the company’s own Cloudtopia blog.
What I found was that the custom publishing model does have legs in the online media environment. Companies are looking for ways to join the online conversation, but don’t always have the skills to produce enough content to truly do so themselves. But I think LeMay & Galt Media can help them with this. And as a first step, Nathan will be taking over the operation of the Cloudtopia blog, to produce content about cloud computing in the Asia-Pacific region.
Now, there are some important things to note about how this wing of LeMay & Galt Media will operate.
Firstly, to prevent conflicts of interest, no Delimiter writer (including myself) will be able to work on any custom publishing projects, and Nathan will not be able to work on Delimiter. Nathan will be in charge of editorial on Cloudtopia — not me. There will be a strict firewall between the two parts of the business — and any custom publishing projects will not affect the way that Delimiter covers any of the companies we deal with from a journalistic viewpoint.
Don’t expect Delimiter to go easy on Salesforce.com in Australia just because we’re working with them on Cloudtopia — we won’t! We’ve made this clear. And if you think we are going easy, please do publicly analyse and critique our approach and let us know your thoughts. We’re big boys. Tell us what you think!
Secondly, LeMay & Galt Media won’t accept custom publishing work which we are not comfortable with. Nathan has editorial freedom on the Cloudtopia blog and we will carefully examine any new client engagement in this area to ensure it is ethically sound. We’re only going to engage with companies which are interested in having an open and honest dialogue with online readers — no marketing fluff.
With all of these formalities out of the way, please welcome Nathan!
The Young Turks of Aussie tech journalism are feeling their strength
June 30th, 2010 • all posts • No comments
I remember the time when I first started working full-time as a technology journalist like it was yesterday.
The month was January, the year was 2005, and it was a summer like no other. I had finally cut myself loose from a string of part-time, freelance and short full-time engagements in other journalism verticals (architecture, home renovation, mortgage broking and so on), and the simultaneous ties of university life, and made a new commitment – one that continues to shape my career in powerful ways.
I had landed a reporting job with one of Australia’s largest online technology titles – ZDNet.com.au.
Like anyone going into their first serious news reporting job for the first time, looking back, I know that I was naïve. I had a solid grounding in technology courtesy of my short-lived career in the IT industry, I had a passion for writing and some raw journalism training behind me, but really, I knew very little about the deep dynamics of the industry.
Fortunately, I fell into the capable hands of one of the industry’s greatest news editors – Iain Ferguson.
Fergo was completely different from editors I had had in previous journalism roles. The thing that made it great working with him was that when you clocked onto a good story – a decent scoop, or some kind of scandal – his eyes would light up and he’d inject a sense of tremendous excitement in the newsroom.
It made you want to work hard to find scoops and deliver great stories – just to see that gleam.
Of course, the other thing he imposed was the discipline to see that story through to publication in an ethical and professional way that would enhance the stature of ZDNet.com.au as a whole. Energetic journalists need editors who share their vision – but rein them in when they go too far.
I enjoyed working for ZDNet.com.au, but things really took a step forward when IDG staffer Steven Deare joined the ship as a fellow news reporter.
What I realized when Deare joined was just how much competition ZDNet.com.au had in the market, and how much we had to live up to – he really opened my eyes to the wider tech journalism community.
At the time there were a number of senior journalists around the traps who had earned their stripes and were kicking goals for their respective publications. Names like Emma Connors, Ben Woodhead, Chris Jenkins, Michael Sainsbury, Natalie Apostolou and so on.
I was pretty intimidated by these journalists and I had reason to be – as a junior reporter these guys were the big fish and I was just a minnow – I had barely broken any stories at all.
But when Deare joined ZDNet.com.au, a subtle shift happened in our team and we started to want to take it to the big guns. The pair of us started listening to Fergo and then-senior journalist Munir Kotadia a lot and amping up to really earn our stripes in the big leagues.
It’s that same energy and passion that I am seeing coming up through the ranks of journalists in Australia’s tech community right now.
If I was to go back a year, I was a bit depressed about the state of tech journalism in Australia.
But today when I attended a press conference held by Communications Minister Stephen Conroy and NBN Co CEO Mike Quigley, it wasn’t ‘old names’ who were asking the tough questions and not taking ‘no’ for an answer.
It was young guns like James Hutchinson, who asked a series of intelligent questions, and Ben Grubb, who has a nose for news like a greyhound and never lets go until he has the answer he wants.
Over the past few months I’ve been really impressed with how the young guns are sticking it to us fogies. I thought Ben Grubb’s data retention scoop for ZDNet.com.au was one of the biggest stories this year, and he didn’t let the issue lie when the Attorney-General’s Department stonewalled us all on the issue.
He went back to a raft of ‘Deep Throat’ sources in the ISP industry and pulled out even more detail in a bigger expose that put the Government in its place completely.
These days, half the time I start following a story, I do a Google search for background info, and realize that James Hutchinson at Computerworld or David Ramli at ARN have already broken the same story I was planning to – and several days earlier – those bastards! ;)
I haven’t yet met Josh Taylor at ZDNet.com.au, but he’s also also starting to pull yarns out of his ass like a motherfucker, and again, I expect big things from him.
One of the best things about ITJourno is that it formalizes much of the inherent competition that journalists in other sectors also experience but don’t have a formal avenue to express.
Through ITJourno’s daily Epitome column (flawed though it may be – and sometimes it has been deeply flawed indeed), Australian tech journos have a decent way to find kudos for their work and have their greatest moments recognized in front of their peers – and then recognize the work of others in turn.
And this is a beautiful thing – because, as we all know, competition between journalists breeds the biggest scoops, the best stories, and helps us all keep the bastards honest and serve our readers.
Seeing the work being done by some of the young guns in our field over the past few months, I feel a renewed sense of optimism for tech journalism in this country. It’s in good hands. A new generation has arisen to challenge the old, to take up the flame, and to again re-define what Australian technology journalism is all about.
There are some editors and senior journalists doing great work too – I especially like what Brett Winterford has done with iTnews, and of course Nadia Cameron has left her mark on the industry with ARN. I’m also a fan of APC’s vigorous community, and I’m still jealous that James Riley is the only tech journalist in the Canberra press gallery.
But it’s seeing the work of energetic reporters that gets me most optimistic about the future.
So kudos to the young guns and — game on!
How I would save newmatilda.com
June 25th, 2010 • all posts • 11 comments
newmatilda.com stops publishing today. But is it the end for this “fiercely independent” website, which since 2004 has been providing intelligent coverage of Australian current affairs?
If it was up to me, no.
In my opinion, the problems facing newmatilda.com are the same problems that face any online publication. In short, when content is freely available on the internet, how do you monetise the content you are publishing in order to fairly pay those who create the content and enable your business to meet its basic costs?
Firstly, let’s look at what newmatilda.com’s expenses currently are and ideally, should be.
newmatilda.com editor Marni Cordell has stated that the publication has five staff, plus contributor feeds, rent, defamation insurance and upgrades to the website.
Looking at newmatilda.com’s about page, it looks as if at least three of those staff, Cordell herself, managing editor Rod McGuinness and advertising manager Phil Rutherford, are full-time staff, with half a dozen other staff working part-time or perhaps on a casual basis.
This means that newmatilda.com already has annual expenses of probably around $150,000 for its three-full-time staff, plus, say, at least $50,000 for the rest of the part-time staff.
The company’s archives page reveals newmatilda is publishing three to four articles a day, with most of those being contributors — perhaps say one per day by newmatilda.com staff themselves. Given that newmatilda.com has stated that it pays its contributors “below industry rates”, we could perhaps estimate a rate of $200 to $300 per article for external contributors.
Let’s say that one of those articles is contributed for free (not an unusual occurrence for someone in academic or business circles who wanted to gain some free publicity).
But assuming something like 230 working days per year at minimum, it still looks like newmatilda.com would be spending an additional cool $50,000 per year to produce its content.
Web hosting costs virtually nothing — $20 a month at mediatemple, a quality US-based hosting outfit, and to be honest I don’t think insurance costs much either — it’s unlikely that newmatilda.com would be the subject of a lawsuit, as it doesn’t seem to conduct much investigative journalism — mainly opinionated pieces and analysis.
Rent in a cheap startup office could be as low as $20,000 per year, plus a few amenities — let’s say a round total of $30,000. So all up newmatilda.com could be looking at $300,000 per year just to keep the lights on. Assuming we have overestimated, let’s say $250,000 at absolute minimum.
Frankly speaking, it is highly unlikely that newmatilda.com has been making anywhere near that amount of money on its site — I have not witnessed many major advertising placements on the site, it doesn’t have subscriptions, and as far as I know, it doesn’t have events.
It’s no wonder that newmatilda.com is, as Marni Cordell has stated, looking for an “immediate injection of funds from a like-minded investor”. I personally believe the publication has been burning through cash at an amazing rate.
Mr Fixit
So what would I do to fix the situation if I took over newmatilda.com? The first thing to realise about newmatilda.com is that the company is spending vastly more money than it needs to to keep afloat. To illustrate this point, let’s take the example of a similarly sized site, Tim Burrowes’ Mumbrella — a publication we all know and love.
Mumbrella publishes vastly more articles than newmatilda.com does on a daily basis — sometimes up to ten — and it does so primarily using in-house staff — Tim himself, and I believe he normally has a deputy editor as well. The articles are much briefer, sure, but they are a great deal spicier and engaging than the newmatilda.com content, and they get the job done.
It doesn’t appear as if Marni Cordell or Rod McGuinness (I assume they are the two full-time editors) do much writing themselves — they are mainly commissioning editors. In comparison, Tim writes a stack of content himself every day and has occasional opinion pieces contributed, likely for free.
It’s a similar situation with my own publication, Delimiter — which licenses its content out to various publishers in Australia’s technology section.
I can’t afford to pay contributors anything, so I write almost all of the content myself — and like Mumbrella, Delimiter publishes far more than newmatilda.com, at a vastly reduced cost. My only real expense is my own wage (I’m not yet paying myself a full-time wage), and the wage of my part-time journalist, Jenna. But Delimiter’s revenues are steadily growing.
My business model wouldn’t work for newmatilda.com. But the point here is that in both the Mumbrella and Delimiter cases, the editorial staff produce much more content on a per head basis than the newmatilda.com staff do.
This may sound incredibly, incredibly harsh. But if I bought newmatilda.com, the first thing I would do would be to get rid of all the editorial staff, and put it under the control of an editor who was incredibly prolific like Tim and I are. With them writing at least two articles a day (it’s not hard!) and sourcing a few free contributions a week, newmatilda.com would already be producing a similar level of content as it was before — at half the cost or less.
This is pretty much the model that rival public affairs blog the Punch works on.
Secondly, I would cancel newmatilda.com’s rent cost by moving the office into Delimiter’s own — for which we pay peanuts, because it’s a startup office out in the suburbs. But nobody cares where your office is located for a publication which primarily produces commentary.
Next: I would look closely at the performance of newmatilda.com’s sales manager, Phil Rutherford. Not only does Phil have limited experience in the Australian market, according to his biography, but he is “new to online media”. It could be that Phil is kicking goals for newmatilda.com, but when I hear a sales guy is “new to online media”, it really rings warning bells for me.
I’d carefully evaluate how his performance was going. It might be better — in fact it almost always is better — to hire a young gun with a few years’ experience and work closely with them.
As newmatilda.com has a VERY strong email audience — over 9,600 email users, I would focus on selling advertising packages, especially to financial and technology companies, who love educated, big-spending audiences who read political sites — through newmatilda.com’s daily email alerts.
I’d also start to hold small events in cheap locations, gradually building up to offer big conferences that would provide a significant revenue stream for the site, encouraging readers to come and debate issues in real life with Australian speakers (most of whom will usually speak for free). Mumbrella does quite a few events — why shouldn’t newmatilda.com?
Next, I would re-launch the site, modelling it along the lines of the Huffington Post and the Punch. newmatilda.com’s design is a bit 2005 — it’s closed down, you have to register to comment, there isn’t a lot of white space, the images are small and so on. Making sure the site ran on WordPress for easy upgrades, I’d re-launch it with a similar design to the Punch.
Huge images. White space. Controversial-looking headlines. Plenty of embedded YouTube, and easy ways for readers to engage with the site and innovative advertising packages. Even boost the text size. Make it larger, more vibrant.
Finally, I would try and inject some colour into newmatilda.com’s editorial. Drag it down a notch, make it less high-falutin and “Radio National” and a bit more controversial — going for some more hardline angles. The site also needs to be a bit more “entertainment” and bit less “academic”. It’s too dry and needs juicing up a bit. I’m not saying dumb it down — just make it look a bit sexier.
I have a suspicion that newmatilda.com will cost more than my company could pay to buy out the publication — and that most potential investors will feel the same way. I also feel that the company would baulk at selling the publication to someone like me who would sack the staff and build the company back up again from its shell.
But this may be a better alternative than leaving the site sitting on the web to rot, with no new content and certainly no money coming in.
Reddit installation errors on Ubuntu
June 23rd, 2010 • all posts • No comments
Hi everyone,
I’ve been following these instructions (to the letter) to try and get
Reddit working in a virtual machine on Ubuntu Intrepid Ibex:
http://code.reddit.com/wiki/RedditStartToFinishIntrepid
I got as far as this line:
sudo python setup.py develop --find-links http://www.crummy.com/software/BeautifulSoup/download/3.x/
Which returns the following error.
Can anyone help with this?
renai@ubuntu1:~/reddit/r2$ sudo python setup.py develop --find-links
http://www.crummy.com/software/BeautifulSoup/download/3.x/
Installing pylibmc
Downloading http://github.com/downloads/ketralnis/pylibmc/pylibmc-1.0-reddit-04.tar.gz
Processing pylibmc-1.0-reddit-04.tar.gz
Running pylibmc-1.0-reddit-04/setup.py -q bdist_egg --dist-dir /tmp/
easy_install-o6rb7Z/pylibmc-1.0-reddit-04/egg-dist-tmp-xkP_NN
warning: no files found matching 'MANIFEST'
In file included from _pylibmcmodule.c:34:
_pylibmcmodule.h:42:36: error: libmemcached/memcached.h: No such file
or directory
In file included from _pylibmcmodule.c:34:
_pylibmcmodule.h:71: error: expected declaration specifiers or ‘...’
before ‘*’ token
_pylibmcmodule.h:71: error: expected ‘)’ before ‘*’ token
_pylibmcmodule.h:73: error: expected declaration specifiers or ‘...’
before ‘*’ token
_pylibmcmodule.h:73: error: expected ‘)’ before ‘*’ token
_pylibmcmodule.h:77: error: ‘MEMCACHED_MAX_KEY’ undeclared here (not
in a function)
_pylibmcmodule.h:105: error: expected specifier-qualifier-list before
‘_PylibMC_IncrCommand’
_pylibmcmodule.h:115: error: expected specifier-qualifier-list before
‘memcached_return’
_pylibmcmodule.h:121: error: ‘MEMCACHED_FAILURE’ undeclared here (not
in a function)
_pylibmcmodule.h:121: warning: excess elements in struct initializer
_pylibmcmodule.h:121: warning: (near initialization for
‘PylibMCExc_mc_errs[0]’)
_pylibmcmodule.h:121: warning: excess elements in struct initializer
_pylibmcmodule.h:121: warning: (near initialization for
‘PylibMCExc_mc_errs[0]’)
_pylibmcmodule.h:121: warning: excess elements in struct initializer
_pylibmcmodule.h:121: warning: (near initialization for
‘PylibMCExc_mc_errs[0]’)
_pylibmcmodule.h:122: error: ‘MEMCACHED_HOST_LOOKUP_FAILURE’
undeclared here (not in a function)
_pylibmcmodule.h:122: warning: excess elements in struct initializer
_pylibmcmodule.h:122: warning: (near initialization for
‘PylibMCExc_mc_errs[1]’)
_pylibmcmodule.h:122: warning: excess elements in struct initializer
_pylibmcmodule.h:122: warning: (near initialization for
‘PylibMCExc_mc_errs[1]’)
_pylibmcmodule.h:122: warning: excess elements in struct initializer
_pylibmcmodule.h:122: warning: (near initialization for
‘PylibMCExc_mc_errs[1]’)
_pylibmcmodule.h:123: error: ‘MEMCACHED_CONNECTION_FAILURE’ undeclared
here (not in a function)
_pylibmcmodule.h:123: warning: excess elements in struct initializer
_pylibmcmodule.h:123: warning: (near initialization for
‘PylibMCExc_mc_errs[2]’)
_pylibmcmodule.h:123: warning: excess elements in struct initializer
_pylibmcmodule.h:123: warning: (near initialization for
‘PylibMCExc_mc_errs[2]’)
_pylibmcmodule.h:123: warning: excess elements in struct initializer
_pylibmcmodule.h:123: warning: (near initialization for
‘PylibMCExc_mc_errs[2]’)
_pylibmcmodule.h:124: error: ‘MEMCACHED_CONNECTION_BIND_FAILURE’
undeclared here (not in a function)
_pylibmcmodule.h:124: warning: excess elements in struct initializer
_pylibmcmodule.h:124: warning: (near initialization for
‘PylibMCExc_mc_errs[3]’)
_pylibmcmodule.h:124: warning: excess elements in struct initializer
_pylibmcmodule.h:124: warning: (near initialization for
‘PylibMCExc_mc_errs[3]’)
_pylibmcmodule.h:124: warning: excess elements in struct initializer
_pylibmcmodule.h:124: warning: (near initialization for
‘PylibMCExc_mc_errs[3]’)
_pylibmcmodule.h:125: error: ‘MEMCACHED_WRITE_FAILURE’ undeclared here
(not in a function)
_pylibmcmodule.h:125: warning: excess elements in struct initializer
_pylibmcmodule.h:125: warning: (near initialization for
‘PylibMCExc_mc_errs[4]’)
_pylibmcmodule.h:125: warning: excess elements in struct initializer
_pylibmcmodule.h:125: warning: (near initialization for
‘PylibMCExc_mc_errs[4]’)
_pylibmcmodule.h:125: warning: excess elements in struct initializer
_pylibmcmodule.h:125: warning: (near initialization for
‘PylibMCExc_mc_errs[4]’)
_pylibmcmodule.h:126: error: ‘MEMCACHED_READ_FAILURE’ undeclared here
(not in a function)
_pylibmcmodule.h:126: warning: excess elements in struct initializer
_pylibmcmodule.h:126: warning: (near initialization for
‘PylibMCExc_mc_errs[5]’)
_pylibmcmodule.h:126: warning: excess elements in struct initializer
_pylibmcmodule.h:126: warning: (near initialization for
‘PylibMCExc_mc_errs[5]’)
_pylibmcmodule.h:126: warning: excess elements in struct initializer
_pylibmcmodule.h:126: warning: (near initialization for
‘PylibMCExc_mc_errs[5]’)
_pylibmcmodule.h:127: error: ‘MEMCACHED_UNKNOWN_READ_FAILURE’
undeclared here (not in a function)
_pylibmcmodule.h:127: warning: excess elements in struct initializer
_pylibmcmodule.h:127: warning: (near initialization for
‘PylibMCExc_mc_errs[6]’)
_pylibmcmodule.h:127: warning: excess elements in struct initializer
_pylibmcmodule.h:127: warning: (near initialization for
‘PylibMCExc_mc_errs[6]’)
_pylibmcmodule.h:127: warning: excess elements in struct initializer
_pylibmcmodule.h:127: warning: (near initialization for
‘PylibMCExc_mc_errs[6]’)
_pylibmcmodule.h:128: error: ‘MEMCACHED_PROTOCOL_ERROR’ undeclared
here (not in a function)
_pylibmcmodule.h:128: warning: excess elements in struct initializer
_pylibmcmodule.h:128: warning: (near initialization for
‘PylibMCExc_mc_errs[7]’)
_pylibmcmodule.h:128: warning: excess elements in struct initializer
_pylibmcmodule.h:128: warning: (near initialization for
‘PylibMCExc_mc_errs[7]’)
_pylibmcmodule.h:128: warning: excess elements in struct initializer
_pylibmcmodule.h:128: warning: (near initialization for
‘PylibMCExc_mc_errs[7]’)
_pylibmcmodule.h:129: error: ‘MEMCACHED_CLIENT_ERROR’ undeclared here
(not in a function)
_pylibmcmodule.h:129: warning: excess elements in struct initializer
_pylibmcmodule.h:129: warning: (near initialization for
‘PylibMCExc_mc_errs[8]’)
_pylibmcmodule.h:129: warning: excess elements in struct initializer
_pylibmcmodule.h:129: warning: (near initialization for
‘PylibMCExc_mc_errs[8]’)
_pylibmcmodule.h:129: warning: excess elements in struct initializer
_pylibmcmodule.h:129: warning: (near initialization for
‘PylibMCExc_mc_errs[8]’)
_pylibmcmodule.h:130: error: ‘MEMCACHED_SERVER_ERROR’ undeclared here
(not in a function)
_pylibmcmodule.h:130: warning: excess elements in struct initializer
_pylibmcmodule.h:130: warning: (near initialization for
‘PylibMCExc_mc_errs[9]’)
_pylibmcmodule.h:130: warning: excess elements in struct initializer
_pylibmcmodule.h:130: warning: (near initialization for
‘PylibMCExc_mc_errs[9]’)
_pylibmcmodule.h:130: warning: excess elements in struct initializer
_pylibmcmodule.h:130: warning: (near initialization for
‘PylibMCExc_mc_errs[9]’)
_pylibmcmodule.h:131: error:
‘MEMCACHED_CONNECTION_SOCKET_CREATE_FAILURE’ undeclared here (not in a
function)
_pylibmcmodule.h:131: warning: excess elements in struct initializer
_pylibmcmodule.h:131: warning: (near initialization for
‘PylibMCExc_mc_errs[10]’)
_pylibmcmodule.h:131: warning: excess elements in struct initializer
_pylibmcmodule.h:131: warning: (near initialization for
‘PylibMCExc_mc_errs[10]’)
_pylibmcmodule.h:131: warning: excess elements in struct initializer
_pylibmcmodule.h:131: warning: (near initialization for
‘PylibMCExc_mc_errs[10]’)
_pylibmcmodule.h:132: error: ‘MEMCACHED_DATA_EXISTS’ undeclared here
(not in a function)
_pylibmcmodule.h:132: warning: excess elements in struct initializer
_pylibmcmodule.h:132: warning: (near initialization for
‘PylibMCExc_mc_errs[11]’)
_pylibmcmodule.h:132: warning: excess elements in struct initializer
_pylibmcmodule.h:132: warning: (near initialization for
‘PylibMCExc_mc_errs[11]’)
_pylibmcmodule.h:132: warning: excess elements in struct initializer
_pylibmcmodule.h:132: warning: (near initialization for
‘PylibMCExc_mc_errs[11]’)
_pylibmcmodule.h:133: error: ‘MEMCACHED_DATA_DOES_NOT_EXIST’
undeclared here (not in a function)
_pylibmcmodule.h:133: warning: excess elements in struct initializer
_pylibmcmodule.h:133: warning: (near initialization for
‘PylibMCExc_mc_errs[12]’)
_pylibmcmodule.h:133: warning: excess elements in struct initializer
_pylibmcmodule.h:133: warning: (near initialization for
‘PylibMCExc_mc_errs[12]’)
_pylibmcmodule.h:133: warning: excess elements in struct initializer
_pylibmcmodule.h:133: warning: (near initialization for
‘PylibMCExc_mc_errs[12]’)
_pylibmcmodule.h:136: error: ‘MEMCACHED_NOTFOUND’ undeclared here (not
in a function)
_pylibmcmodule.h:136: warning: excess elements in struct initializer
_pylibmcmodule.h:136: warning: (near initialization for
‘PylibMCExc_mc_errs[13]’)
_pylibmcmodule.h:136: warning: excess elements in struct initializer
_pylibmcmodule.h:136: warning: (near initialization for
‘PylibMCExc_mc_errs[13]’)
_pylibmcmodule.h:136: warning: excess elements in struct initializer
_pylibmcmodule.h:136: warning: (near initialization for
‘PylibMCExc_mc_errs[13]’)
_pylibmcmodule.h:137: error: ‘MEMCACHED_MEMORY_ALLOCATION_FAILURE’
undeclared here (not in a function)
_pylibmcmodule.h:137: warning: excess elements in struct initializer
_pylibmcmodule.h:137: warning: (near initialization for
‘PylibMCExc_mc_errs[14]’)
_pylibmcmodule.h:137: warning: excess elements in struct initializer
_pylibmcmodule.h:137: warning: (near initialization for
‘PylibMCExc_mc_errs[14]’)
_pylibmcmodule.h:137: warning: excess elements in struct initializer
_pylibmcmodule.h:137: warning: (near initialization for
‘PylibMCExc_mc_errs[14]’)
_pylibmcmodule.h:139: error: ‘MEMCACHED_SOME_ERRORS’ undeclared here
(not in a function)
_pylibmcmodule.h:139: warning: excess elements in struct initializer
_pylibmcmodule.h:139: warning: (near initialization for
‘PylibMCExc_mc_errs[15]’)
_pylibmcmodule.h:139: warning: excess elements in struct initializer
_pylibmcmodule.h:139: warning: (near initialization for
‘PylibMCExc_mc_errs[15]’)
_pylibmcmodule.h:139: warning: excess elements in struct initializer
_pylibmcmodule.h:139: warning: (near initialization for
‘PylibMCExc_mc_errs[15]’)
_pylibmcmodule.h:140: error: ‘MEMCACHED_NO_SERVERS’ undeclared here
(not in a function)
_pylibmcmodule.h:140: warning: excess elements in struct initializer
_pylibmcmodule.h:140: warning: (near initialization for
‘PylibMCExc_mc_errs[16]’)
_pylibmcmodule.h:140: warning: excess elements in struct initializer
_pylibmcmodule.h:140: warning: (near initialization for
‘PylibMCExc_mc_errs[16]’)
_pylibmcmodule.h:140: warning: excess elements in struct initializer
_pylibmcmodule.h:140: warning: (near initialization for
‘PylibMCExc_mc_errs[16]’)
_pylibmcmodule.h:147: error: ‘MEMCACHED_FAIL_UNIX_SOCKET’ undeclared
here (not in a function)
_pylibmcmodule.h:147: warning: excess elements in struct initializer
_pylibmcmodule.h:147: warning: (near initialization for
‘PylibMCExc_mc_errs[17]’)
_pylibmcmodule.h:147: warning: excess elements in struct initializer
_pylibmcmodule.h:147: warning: (near initialization for
‘PylibMCExc_mc_errs[17]’)
_pylibmcmodule.h:147: warning: excess elements in struct initializer
_pylibmcmodule.h:147: warning: (near initialization for
‘PylibMCExc_mc_errs[17]’)
_pylibmcmodule.h:148: error: ‘MEMCACHED_NOT_SUPPORTED’ undeclared here
(not in a function)
_pylibmcmodule.h:148: warning: excess elements in struct initializer
_pylibmcmodule.h:148: warning: (near initialization for
‘PylibMCExc_mc_errs[18]’)
_pylibmcmodule.h:148: warning: excess elements in struct initializer
_pylibmcmodule.h:148: warning: (near initialization for
‘PylibMCExc_mc_errs[18]’)
_pylibmcmodule.h:148: warning: excess elements in struct initializer
_pylibmcmodule.h:148: warning: (near initialization for
‘PylibMCExc_mc_errs[18]’)
_pylibmcmodule.h:149: error: ‘MEMCACHED_FETCH_NOTFINISHED’ undeclared
here (not in a function)
_pylibmcmodule.h:149: warning: excess elements in struct initializer
_pylibmcmodule.h:149: warning: (near initialization for
‘PylibMCExc_mc_errs[19]’)
_pylibmcmodule.h:149: warning: excess elements in struct initializer
_pylibmcmodule.h:149: warning: (near initialization for
‘PylibMCExc_mc_errs[19]’)
_pylibmcmodule.h:149: warning: excess elements in struct initializer
_pylibmcmodule.h:149: warning: (near initialization for
‘PylibMCExc_mc_errs[19]’)
_pylibmcmodule.h:152: error: ‘MEMCACHED_BAD_KEY_PROVIDED’ undeclared
here (not in a function)
_pylibmcmodule.h:152: warning: excess elements in struct initializer
_pylibmcmodule.h:152: warning: (near initialization for
‘PylibMCExc_mc_errs[20]’)
_pylibmcmodule.h:152: warning: excess elements in struct initializer
_pylibmcmodule.h:152: warning: (near initialization for
‘PylibMCExc_mc_errs[20]’)
_pylibmcmodule.h:152: warning: excess elements in struct initializer
_pylibmcmodule.h:152: warning: (near initialization for
‘PylibMCExc_mc_errs[20]’)
_pylibmcmodule.h:153: error: ‘MEMCACHED_INVALID_HOST_PROTOCOL’
undeclared here (not in a function)
_pylibmcmodule.h:153: warning: excess elements in struct initializer
_pylibmcmodule.h:153: warning: (near initialization for
‘PylibMCExc_mc_errs[21]’)
_pylibmcmodule.h:153: warning: excess elements in struct initializer
_pylibmcmodule.h:153: warning: (near initialization for
‘PylibMCExc_mc_errs[21]’)
_pylibmcmodule.h:153: warning: excess elements in struct initializer
_pylibmcmodule.h:153: warning: (near initialization for
‘PylibMCExc_mc_errs[21]’)
_pylibmcmodule.h:155: error: ‘MEMCACHED_UNKNOWN_STAT_KEY’ undeclared
here (not in a function)
_pylibmcmodule.h:155: warning: excess elements in struct initializer
_pylibmcmodule.h:155: warning: (near initialization for
‘PylibMCExc_mc_errs[22]’)
_pylibmcmodule.h:155: warning: excess elements in struct initializer
_pylibmcmodule.h:155: warning: (near initialization for
‘PylibMCExc_mc_errs[22]’)
_pylibmcmodule.h:155: warning: excess elements in struct initializer
_pylibmcmodule.h:155: warning: (near initialization for
‘PylibMCExc_mc_errs[22]’)
_pylibmcmodule.h:157: warning: excess elements in struct initializer
_pylibmcmodule.h:157: warning: (near initialization for
‘PylibMCExc_mc_errs[23]’)
_pylibmcmodule.h:157: warning: excess elements in struct initializer
_pylibmcmodule.h:157: warning: (near initialization for
‘PylibMCExc_mc_errs[23]’)
_pylibmcmodule.h:157: warning: excess elements in struct initializer
_pylibmcmodule.h:157: warning: (near initialization for
‘PylibMCExc_mc_errs[23]’)
_pylibmcmodule.h:168: error: ‘MEMCACHED_BEHAVIOR_NO_BLOCK’ undeclared
here (not in a function)
_pylibmcmodule.h:169: error: ‘MEMCACHED_BEHAVIOR_TCP_NODELAY’
undeclared here (not in a function)
_pylibmcmodule.h:170: error: ‘MEMCACHED_BEHAVIOR_HASH’ undeclared here
(not in a function)
_pylibmcmodule.h:171: error: ‘MEMCACHED_BEHAVIOR_KETAMA_HASH’
undeclared here (not in a function)
_pylibmcmodule.h:172: error: ‘MEMCACHED_BEHAVIOR_KETAMA’ undeclared
here (not in a function)
_pylibmcmodule.h:173: error: ‘MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED’
undeclared here (not in a function)
_pylibmcmodule.h:174: error: ‘MEMCACHED_BEHAVIOR_DISTRIBUTION’
undeclared here (not in a function)
_pylibmcmodule.h:175: error: ‘MEMCACHED_BEHAVIOR_CACHE_LOOKUPS’
undeclared here (not in a function)
_pylibmcmodule.h:176: error: ‘MEMCACHED_BEHAVIOR_SUPPORT_CAS’
undeclared here (not in a function)
_pylibmcmodule.h:177: error: ‘MEMCACHED_BEHAVIOR_BUFFER_REQUESTS’
undeclared here (not in a function)
_pylibmcmodule.h:178: error: ‘MEMCACHED_BEHAVIOR_VERIFY_KEY’
undeclared here (not in a function)
_pylibmcmodule.h:179: error: ‘MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT’
undeclared here (not in a function)
_pylibmcmodule.h:180: error: ‘MEMCACHED_BEHAVIOR_SND_TIMEOUT’
undeclared here (not in a function)
_pylibmcmodule.h:181: error: ‘MEMCACHED_BEHAVIOR_RCV_TIMEOUT’
undeclared here (not in a function)
_pylibmcmodule.h:182: error: ‘MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT’
undeclared here (not in a function)
_pylibmcmodule.h:183: error: ‘MEMCACHED_BEHAVIOR_IO_MSG_WATERMARK’
undeclared here (not in a function)
_pylibmcmodule.h:184: error: ‘MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARK’
undeclared here (not in a function)
_pylibmcmodule.h:185: error: ‘MEMCACHED_BEHAVIOR_IO_KEY_PREFETCH’
undeclared here (not in a function)
_pylibmcmodule.h:186: error: ‘MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY’
undeclared here (not in a function)
_pylibmcmodule.h:187: error: ‘MEMCACHED_BEHAVIOR_NOREPLY’ undeclared
here (not in a function)
_pylibmcmodule.h:188: error: ‘MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS’
undeclared here (not in a function)
_pylibmcmodule.h:189: error: ‘MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS’
undeclared here (not in a function)
_pylibmcmodule.h:190: error: ‘MEMCACHED_BEHAVIOR_SORT_HOSTS’
undeclared here (not in a function)
_pylibmcmodule.h:191: error: ‘MEMCACHED_BEHAVIOR_RETRY_TIMEOUT’
undeclared here (not in a function)
_pylibmcmodule.h:192: error: ‘MEMCACHED_BEHAVIOR_POLL_TIMEOUT’
undeclared here (not in a function)
_pylibmcmodule.h:193: error: ‘MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE’
undeclared here (not in a function)
_pylibmcmodule.h:194: error: ‘MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE’
undeclared here (not in a function)
_pylibmcmodule.h:199: error: ‘MEMCACHED_HASH_DEFAULT’ undeclared here
(not in a function)
_pylibmcmodule.h:199: error: initializer element is not constant
_pylibmcmodule.h:199: error: (near initialization for
‘PylibMC_hashers[0].flag’)
_pylibmcmodule.h:200: error: ‘MEMCACHED_HASH_MD5’ undeclared here (not
in a function)
_pylibmcmodule.h:200: error: initializer element is not constant
_pylibmcmodule.h:200: error: (near initialization for
‘PylibMC_hashers[1].flag’)
_pylibmcmodule.h:201: error: ‘MEMCACHED_HASH_CRC’ undeclared here (not
in a function)
_pylibmcmodule.h:201: error: initializer element is not constant
_pylibmcmodule.h:201: error: (near initialization for
‘PylibMC_hashers[2].flag’)
_pylibmcmodule.h:202: error: ‘MEMCACHED_HASH_FNV1_64’ undeclared here
(not in a function)
_pylibmcmodule.h:202: error: initializer element is not constant
_pylibmcmodule.h:202: error: (near initialization for
‘PylibMC_hashers[3].flag’)
_pylibmcmodule.h:203: error: ‘MEMCACHED_HASH_FNV1A_64’ undeclared here
(not in a function)
_pylibmcmodule.h:203: error: initializer element is not constant
_pylibmcmodule.h:203: error: (near initialization for
‘PylibMC_hashers[4].flag’)
_pylibmcmodule.h:204: error: ‘MEMCACHED_HASH_FNV1_32’ undeclared here
(not in a function)
_pylibmcmodule.h:204: error: initializer element is not constant
_pylibmcmodule.h:204: error: (near initialization for
‘PylibMC_hashers[5].flag’)
_pylibmcmodule.h:205: error: ‘MEMCACHED_HASH_FNV1A_32’ undeclared here
(not in a function)
_pylibmcmodule.h:205: error: initializer element is not constant
_pylibmcmodule.h:205: error: (near initialization for
‘PylibMC_hashers[6].flag’)
_pylibmcmodule.h:206: error: ‘MEMCACHED_HASH_MURMUR’ undeclared here
(not in a function)
_pylibmcmodule.h:206: error: initializer element is not constant
_pylibmcmodule.h:206: error: (near initialization for
‘PylibMC_hashers[7].flag’)
_pylibmcmodule.h:214: error: ‘MEMCACHED_DISTRIBUTION_MODULA’
undeclared here (not in a function)
_pylibmcmodule.h:214: error: initializer element is not constant
_pylibmcmodule.h:214: error: (near initialization for
‘PylibMC_distributions[0].flag’)
_pylibmcmodule.h:215: error: ‘MEMCACHED_DISTRIBUTION_CONSISTENT’
undeclared here (not in a function)
_pylibmcmodule.h:215: error: initializer element is not constant
_pylibmcmodule.h:215: error: (near initialization for
‘PylibMC_distributions[1].flag’)
_pylibmcmodule.h:216: error:
‘MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA’ undeclared here (not in a
function)
_pylibmcmodule.h:216: error: initializer element is not constant
_pylibmcmodule.h:216: error: (near initialization for
‘PylibMC_distributions[2].flag’)
_pylibmcmodule.h:224: error: expected specifier-qualifier-list before
‘memcached_st’
_pylibmcmodule.h:252: error: expected declaration specifiers or ‘...’
before ‘memcached_return’
_pylibmcmodule.h:264: error: expected declaration specifiers or ‘...’
before ‘_PylibMC_SetCommand’
_pylibmcmodule.h:266: error: expected declaration specifiers or ‘...’
before ‘_PylibMC_SetCommand’
_pylibmcmodule.h:267: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or
‘__attribute__’ before ‘_PylibMC_RunSetCommand’
_pylibmcmodule.h:273: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or
‘__attribute__’ before ‘_PylibMC_IncrDecr’
_pylibmcmodule.c: In function ‘PylibMC_ClientType_new’:
_pylibmcmodule.c:54: error: ‘PylibMC_Client’ has no member named ‘mc’
_pylibmcmodule.c:54: warning: implicit declaration of function
‘memcached_create’
_pylibmcmodule.c:54: warning: statement with no effect
_pylibmcmodule.c: In function ‘PylibMC_ClientType_dealloc’:
_pylibmcmodule.c:61: error: ‘PylibMC_Client’ has no member named ‘mc’
_pylibmcmodule.c:62: warning: implicit declaration of function
‘memcached_free’
_pylibmcmodule.c:62: error: ‘PylibMC_Client’ has no member named ‘mc’
_pylibmcmodule.c: In function ‘PylibMC_Client_init’:
_pylibmcmodule.c:82: warning: implicit declaration of function
‘memcached_behavior_set’
_pylibmcmodule.c:82: error: ‘PylibMC_Client’ has no member named ‘mc’
_pylibmcmodule.c:82: error: ‘MEMCACHED_BEHAVIOR_BINARY_PROTOCOL’
undeclared (first use in this function)
_pylibmcmodule.c:82: error: (Each undeclared identifier is reported
only once
_pylibmcmodule.c:82: error: for each function it appears in.)
_pylibmcmodule.c:88: error: ‘memcached_return’ undeclared (first use
in this function)
_pylibmcmodule.c:88: warning: statement with no effect
_pylibmcmodule.c:88: error: expected ‘;’ before ‘rc’
_pylibmcmodule.c:93: error: ‘memcached_server_st’ undeclared (first
use in this function)
_pylibmcmodule.c:93: error: ‘list’ undeclared (first use in this
function)
_pylibmcmodule.c:93: error: invalid operands to binary * (have ‘struct
PylibMC_Behavior *’ and ‘struct PylibMC_Behavior *’)
_pylibmcmodule.c:93: warning: statement with no effect
_pylibmcmodule.c:95: warning: implicit declaration of function
‘memcached_servers_parse’
_pylibmcmodule.c:95: warning: statement with no effect
_pylibmcmodule.c:102: error: ‘rc’ undeclared (first use in this
function)
_pylibmcmodule.c:102: warning: implicit declaration of function
‘memcached_server_push’
_pylibmcmodule.c:102: error: ‘PylibMC_Client’ has no member named ‘mc’
_pylibmcmodule.c:102: warning: statement with no effect
_pylibmcmodule.c:104: error: ‘MEMCACHED_SUCCESS’ undeclared (first use
in this function)
_pylibmcmodule.c:105: error: too many arguments to function
‘PylibMC_ErrFromMemcached’
_pylibmcmodule.c:115: error: ‘PylibMC_Client’ has no member named ‘mc’
_pylibmcmodule.c:116: error: ‘MEMCACHED_BEHAVIOR_USE_UDP’ undeclared
(first use in this function)
_pylibmcmodule.c:122: warning: implicit declaration of function
‘memcached_server_add’
_pylibmcmodule.c:122: error: ‘PylibMC_Client’ has no member named ‘mc’
_pylibmcmodule.c:122: warning: statement with no effect
_pylibmcmodule.c:125: warning: implicit declaration of function
‘memcached_server_add_udp’
_pylibmcmodule.c:125: error: ‘PylibMC_Client’ has no member named ‘mc’
_pylibmcmodule.c:125: warning: statement with no effect
_pylibmcmodule.c:133: warning: implicit declaration of function
‘memcached_server_add_unix_socket’
_pylibmcmodule.c:133: error: ‘PylibMC_Client’ has no member named ‘mc’
_pylibmcmodule.c:133: warning: statement with no effect
_pylibmcmodule.c:140: error: too many arguments to function
‘PylibMC_ErrFromMemcached’
_pylibmcmodule.c: In function ‘PylibMC_Client_get’:
_pylibmcmodule.c:364: error: ‘memcached_return’ undeclared (first use
in this function)
_pylibmcmodule.c:364: warning: statement with no effect
_pylibmcmodule.c:364: error: expected ‘;’ before ‘error’
_pylibmcmodule.c:375: warning: implicit declaration of function
‘memcached_get’
_pylibmcmodule.c:375: error: ‘PylibMC_Client’ has no member named ‘mc’
_pylibmcmodule.c:377: error: ‘error’ undeclared (first use in this
function)
_pylibmcmodule.c:377: warning: assignment makes pointer from integer
without a cast
_pylibmcmodule.c:385: error: ‘MEMCACHED_SUCCESS’ undeclared (first use
in this function)
_pylibmcmodule.c:394: error: too many arguments to function
‘PylibMC_ErrFromMemcached’
_pylibmcmodule.c: At top level:
_pylibmcmodule.c:399: error: expected declaration specifiers or ‘...’
before ‘_PylibMC_SetCommand’
_pylibmcmodule.c: In function ‘_PylibMC_RunSetCommandSingle’:
_pylibmcmodule.c:407: error: ‘bool’ undeclared (first use in this
function)
_pylibmcmodule.c:407: warning: statement with no effect
_pylibmcmodule.c:407: error: expected ‘;’ before ‘success’
_pylibmcmodule.c:426: error: ‘false’ undeclared (first use in this
function)
_pylibmcmodule.c:426: warning: initialization makes integer from
pointer without a cast
_pylibmcmodule.c:428: error: ‘success’ undeclared (first use in this
function)
_pylibmcmodule.c:428: warning: statement with no effect
_pylibmcmodule.c:432: warning: implicit declaration of function
‘_PylibMC_RunSetCommand’
_pylibmcmodule.c:432: error: ‘f’ undeclared (first use in this
function)
_pylibmcmodule.c:434: warning: statement with no effect
_pylibmcmodule.c: At top level:
_pylibmcmodule.c:449: error: expected declaration specifiers or ‘...’
before ‘_PylibMC_SetCommand’
_pylibmcmodule.c: In function ‘_PylibMC_RunSetCommandMulti’:
_pylibmcmodule.c:494: error: ‘false’ undeclared (first use in this
function)
_pylibmcmodule.c:494: warning: assignment makes integer from pointer
without a cast
_pylibmcmodule.c:525: error: ‘bool’ undeclared (first use in this
function)
_pylibmcmodule.c:525: warning: statement with no effect
_pylibmcmodule.c:525: error: expected ‘;’ before ‘allsuccess’
_pylibmcmodule.c:537: error: ‘allsuccess’ undeclared (first use in
this function)
_pylibmcmodule.c: In function ‘_PylibMC_SerializeValue’:
_pylibmcmodule.c:590: error: ‘false’ undeclared (first use in this
function)
_pylibmcmodule.c:590: warning: assignment makes integer from pointer
without a cast
_pylibmcmodule.c:596: warning: return makes integer from pointer
without a cast
_pylibmcmodule.c:608: warning: return makes integer from pointer
without a cast
_pylibmcmodule.c:618: warning: return makes integer from pointer
without a cast
_pylibmcmodule.c:626: warning: return makes integer from pointer
without a cast
_pylibmcmodule.c:666: warning: return makes integer from pointer
without a cast
_pylibmcmodule.c:677: warning: return makes integer from pointer
without a cast
_pylibmcmodule.c:686: error: ‘true’ undeclared (first use in this
function)
_pylibmcmodule.c:686: warning: return makes integer from pointer
without a cast
_pylibmcmodule.c: At top level:
_pylibmcmodule.c:690: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or
‘__attribute__’ before ‘_PylibMC_RunSetCommand’
_pylibmcmodule.c: In function ‘PylibMC_Client_set’:
_pylibmcmodule.c:782: error: ‘memcached_set’ undeclared (first use in
this function)
_pylibmcmodule.c:782: warning: passing argument 2 of
‘_PylibMC_RunSetCommandSingle’ from incompatible pointer type
_pylibmcmodule.c:782: warning: passing argument 3 of
‘_PylibMC_RunSetCommandSingle’ from incompatible pointer type
_pylibmcmodule.c:782: error: too many arguments to function
‘_PylibMC_RunSetCommandSingle’
_pylibmcmodule.c: In function ‘PylibMC_Client_replace’:
_pylibmcmodule.c:789: error: ‘memcached_replace’ undeclared (first use
in this function)
_pylibmcmodule.c:789: warning: passing argument 2 of
‘_PylibMC_RunSetCommandSingle’ from incompatible pointer type
_pylibmcmodule.c:789: warning: passing argument 3 of
‘_PylibMC_RunSetCommandSingle’ from incompatible pointer type
_pylibmcmodule.c:789: error: too many arguments to function
‘_PylibMC_RunSetCommandSingle’
_pylibmcmodule.c: In function ‘PylibMC_Client_add’:
_pylibmcmodule.c:795: error: ‘memcached_add’ undeclared (first use in
this function)
_pylibmcmodule.c:795: warning: passing argument 2 of
‘_PylibMC_RunSetCommandSingle’ from incompatible pointer type
_pylibmcmodule.c:795: warning: passing argument 3 of
‘_PylibMC_RunSetCommandSingle’ from incompatible pointer type
_pylibmcmodule.c:795: error: too many arguments to function
‘_PylibMC_RunSetCommandSingle’
_pylibmcmodule.c: In function ‘PylibMC_Client_prepend’:
_pylibmcmodule.c:801: error: ‘memcached_prepend’ undeclared (first use
in this function)
_pylibmcmodule.c:801: warning: passing argument 2 of
‘_PylibMC_RunSetCommandSingle’ from incompatible pointer type
_pylibmcmodule.c:801: warning: passing argument 3 of
‘_PylibMC_RunSetCommandSingle’ from incompatible pointer type
_pylibmcmodule.c:801: error: too many arguments to function
‘_PylibMC_RunSetCommandSingle’
_pylibmcmodule.c: In function ‘PylibMC_Client_append’:
_pylibmcmodule.c:807: error: ‘memcached_append’ undeclared (first use
in this function)
_pylibmcmodule.c:807: warning: passing argument 2 of
‘_PylibMC_RunSetCommandSingle’ from incompatible pointer type
_pylibmcmodule.c:807: warning: passing argument 3 of
‘_PylibMC_RunSetCommandSingle’ from incompatible pointer type
_pylibmcmodule.c:807: error: too many arguments to function
‘_PylibMC_RunSetCommandSingle’
_pylibmcmodule.c: In function ‘PylibMC_Client_delete’:
_pylibmcmodule.c:816: error: ‘memcached_return’ undeclared (first use
in this function)
_pylibmcmodule.c:816: warning: statement with no effect
_pylibmcmodule.c:816: error: expected ‘;’ before ‘rc’
_pylibmcmodule.c:823: error: ‘rc’ undeclared (first use in this
function)
_pylibmcmodule.c:823: warning: implicit declaration of function
‘memcached_delete’
_pylibmcmodule.c:823: error: ‘PylibMC_Client’ has no member named ‘mc’
_pylibmcmodule.c:823: warning: statement with no effect
_pylibmcmodule.c:826: error: ‘MEMCACHED_SUCCESS’ undeclared (first use
in this function)
_pylibmcmodule.c:831: error: ‘MEMCACHED_NO_KEY_PROVIDED’ undeclared
(first use in this function)
_pylibmcmodule.c:836: error: too many arguments to function
‘PylibMC_ErrFromMemcached’
_pylibmcmodule.c: At top level:
_pylibmcmodule.c:845: error: expected declaration specifiers or ‘...’
before ‘_PylibMC_IncrCommand’
_pylibmcmodule.c: In function ‘_PylibMC_IncrSingle’:
_pylibmcmodule.c:858: error: ‘incr_func’ undeclared (first use in this
function)
_pylibmcmodule.c:858: warning: excess elements in struct initializer
_pylibmcmodule.c:858: warning: (near initialization for ‘incr’)
_pylibmcmodule.c:858: warning: excess elements in struct initializer
_pylibmcmodule.c:858: warning: (near initialization for ‘incr’)
_pylibmcmodule.c:859: warning: excess elements in struct initializer
_pylibmcmodule.c:859: warning: (near initialization for ‘incr’)
_pylibmcmodule.c:861: warning: implicit declaration of function
‘_PylibMC_IncrDecr’
_pylibmcmodule.c:869: error: ‘pylibmc_incr’ has no member named
‘result’
_pylibmcmodule.c: At top level:
_pylibmcmodule.c:873: error: expected declaration specifiers or ‘...’
before ‘_PylibMC_IncrCommand’
_pylibmcmodule.c: In function ‘_PylibMC_IncrMulti’:
_pylibmcmodule.c:964: error: ‘pylibmc_incr’ has no member named
‘delta’
_pylibmcmodule.c:964: warning: statement with no effect
_pylibmcmodule.c:965: error: ‘pylibmc_incr’ has no member named
‘incr_func’
_pylibmcmodule.c:965: error: ‘incr_func’ undeclared (first use in this
function)
_pylibmcmodule.c:965: warning: statement with no effect
_pylibmcmodule.c:966: error: ‘pylibmc_incr’ has no member named
‘result’
_pylibmcmodule.c:966: warning: statement with no effect
_pylibmcmodule.c: In function ‘PylibMC_Client_incr’:
_pylibmcmodule.c:1007: error: ‘memcached_increment’ undeclared (first
use in this function)
_pylibmcmodule.c:1007: warning: passing argument 2 of
‘_PylibMC_IncrSingle’ from incompatible pointer type
_pylibmcmodule.c:1007: error: too many arguments to function
‘_PylibMC_IncrSingle’
_pylibmcmodule.c: In function ‘PylibMC_Client_decr’:
_pylibmcmodule.c:1011: error: ‘memcached_decrement’ undeclared (first
use in this function)
_pylibmcmodule.c:1011: warning: passing argument 2 of
‘_PylibMC_IncrSingle’ from incompatible pointer type
_pylibmcmodule.c:1011: error: too many arguments to function
‘_PylibMC_IncrSingle’
_pylibmcmodule.c: In function ‘PylibMC_Client_incr_multi’:
_pylibmcmodule.c:1016: error: ‘memcached_increment’ undeclared (first
use in this function)
_pylibmcmodule.c:1016: warning: passing argument 2 of
‘_PylibMC_IncrMulti’ from incompatible pointer type
_pylibmcmodule.c:1016: error: too many arguments to function
‘_PylibMC_IncrMulti’
_pylibmcmodule.c: At top level:
_pylibmcmodule.c:1019: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or
‘__attribute__’ before ‘_PylibMC_IncrDecr’
_pylibmcmodule.c:1052: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or
‘__attribute__’ before ‘pylibmc_memcached_fetch_multi’
_pylibmcmodule.c: In function ‘PylibMC_Client_get_multi’:
_pylibmcmodule.c:1119: error: ‘memcached_return’ undeclared (first use
in this function)
_pylibmcmodule.c:1119: warning: statement with no effect
_pylibmcmodule.c:1119: error: expected ‘;’ before ‘rc’
_pylibmcmodule.c:1198: error: ‘rc’ undeclared (first use in this
function)
_pylibmcmodule.c:1198: warning: implicit declaration of function
‘pylibmc_memcached_fetch_multi’
_pylibmcmodule.c:1198: error: ‘PylibMC_Client’ has no member named
‘mc’
_pylibmcmodule.c:1202: warning: statement with no effect
_pylibmcmodule.c:1205: error: ‘MEMCACHED_SUCCESS’ undeclared (first
use in this function)
_pylibmcmodule.c:1206: error: too many arguments to function
‘PylibMC_ErrFromMemcached’
_pylibmcmodule.c:1217: error: incompatible types in assignment
_pylibmcmodule.c:1217: warning: statement with no effect
_pylibmcmodule.c:1227: warning: passing argument 2 of
‘PyDict_SetItemString’ from incompatible pointer type
_pylibmcmodule.c: In function ‘PylibMC_Client_set_multi’:
_pylibmcmodule.c:1369: error: ‘memcached_set’ undeclared (first use in
this function)
_pylibmcmodule.c:1370: warning: passing argument 2 of
‘_PylibMC_RunSetCommandMulti’ from incompatible pointer type
_pylibmcmodule.c:1370: warning: passing argument 3 of
‘_PylibMC_RunSetCommandMulti’ from incompatible pointer type
_pylibmcmodule.c:1370: error: too many arguments to function
‘_PylibMC_RunSetCommandMulti’
_pylibmcmodule.c: In function ‘PylibMC_Client_add_multi’:
_pylibmcmodule.c:1375: error: ‘memcached_add’ undeclared (first use in
this function)
_pylibmcmodule.c:1376: warning: passing argument 2 of
‘_PylibMC_RunSetCommandMulti’ from incompatible pointer type
_pylibmcmodule.c:1376: warning: passing argument 3 of
‘_PylibMC_RunSetCommandMulti’ from incompatible pointer type
_pylibmcmodule.c:1376: error: too many arguments to function
‘_PylibMC_RunSetCommandMulti’
_pylibmcmodule.c: In function ‘PylibMC_Client_get_behaviors’:
_pylibmcmodule.c:1450: warning: implicit declaration of function
‘memcached_behavior_get’
_pylibmcmodule.c:1450: error: ‘PylibMC_Client’ has no member named
‘mc’
_pylibmcmodule.c: In function ‘PylibMC_Client_set_behaviors’:
_pylibmcmodule.c:1471: error: ‘memcached_return’ undeclared (first use
in this function)
_pylibmcmodule.c:1471: warning: statement with no effect
_pylibmcmodule.c:1471: error: expected ‘;’ before ‘r’
_pylibmcmodule.c:1482: error: ‘r’ undeclared (first use in this
function)
_pylibmcmodule.c:1482: error: ‘PylibMC_Client’ has no member named
‘mc’
_pylibmcmodule.c:1482: warning: statement with no effect
_pylibmcmodule.c:1484: error: ‘MEMCACHED_SUCCESS’ undeclared (first
use in this function)
_pylibmcmodule.c:1486: warning: format ‘%d’ expects type ‘int’, but
argument 3 has type ‘struct PylibMC_Behavior *’
_pylibmcmodule.c: In function ‘PylibMC_Client_flush_all’:
_pylibmcmodule.c:1498: error: ‘memcached_return’ undeclared (first use
in this function)
_pylibmcmodule.c:1498: warning: statement with no effect
_pylibmcmodule.c:1498: error: expected ‘;’ before ‘rc’
_pylibmcmodule.c:1514: error: ‘rc’ undeclared (first use in this
function)
_pylibmcmodule.c:1514: warning: implicit declaration of function
‘memcached_flush’
_pylibmcmodule.c:1514: error: ‘PylibMC_Client’ has no member named
‘mc’
_pylibmcmodule.c:1514: warning: statement with no effect
_pylibmcmodule.c:1516: error: ‘MEMCACHED_SUCCESS’ undeclared (first
use in this function)
_pylibmcmodule.c:1517: error: too many arguments to function
‘PylibMC_ErrFromMemcached’
_pylibmcmodule.c: In function ‘PylibMC_Client_disconnect_all’:
_pylibmcmodule.c:1524: warning: implicit declaration of function
‘memcached_quit’
_pylibmcmodule.c:1524: error: ‘PylibMC_Client’ has no member named
‘mc’
_pylibmcmodule.c: In function ‘PylibMC_Client_clone’:
_pylibmcmodule.c:1540: error: ‘PylibMC_Client’ has no member named
‘mc’
_pylibmcmodule.c:1540: warning: implicit declaration of function
‘memcached_clone’
_pylibmcmodule.c:1540: error: ‘PylibMC_Client’ has no member named
‘mc’
_pylibmcmodule.c:1540: warning: statement with no effect
_pylibmcmodule.c: At top level:
_pylibmcmodule.c:1547: error: expected declaration specifiers or ‘...’
before ‘memcached_return’
_pylibmcmodule.c: In function ‘PylibMC_ErrFromMemcached’:
_pylibmcmodule.c:1548: error: ‘error’ undeclared (first use in this
function)
_pylibmcmodule.c:1548: error: ‘MEMCACHED_ERRNO’ undeclared (first use
in this function)
_pylibmcmodule.c:1552: error: ‘MEMCACHED_SUCCESS’ undeclared (first
use in this function)
_pylibmcmodule.c:1559: error: ‘PylibMC_McErr’ has no member named
‘name’
_pylibmcmodule.c:1560: error: ‘PylibMC_McErr’ has no member named ‘rc’
_pylibmcmodule.c:1561: error: ‘PylibMC_McErr’ has no member named
‘exc’
_pylibmcmodule.c:1561: warning: assignment from incompatible pointer
type
_pylibmcmodule.c:1567: warning: implicit declaration of function
‘memcached_strerror’
_pylibmcmodule.c:1567: error: ‘PylibMC_Client’ has no member named
‘mc’
_pylibmcmodule.c:1567: warning: format ‘%d’ expects type ‘int’, but
argument 3 has type ‘struct PylibMC_Behavior *’
_pylibmcmodule.c:1567: warning: format ‘%s’ expects type ‘char *’, but
argument 5 has type ‘int’
_pylibmcmodule.c: In function ‘_PylibMC_CheckKeyStringAndSize’:
_pylibmcmodule.c:1635: warning: comparison between pointer and integer
_pylibmcmodule.c:1637: warning: format ‘%d’ expects type ‘int’, but
argument 3 has type ‘struct PylibMC_Behavior *’
_pylibmcmodule.c: In function ‘init_pylibmc’:
_pylibmcmodule.c:1658: error: ‘LIBMEMCACHED_VERSION_STRING’ undeclared
(first use in this function)
_pylibmcmodule.c:1657: warning: passing argument 1 of
‘__builtin_strchr’ from incompatible pointer type
_pylibmcmodule.c:1662: warning: format ‘%s’ expects type ‘char *’, but
argument 3 has type ‘struct PylibMC_Behavior *’
_pylibmcmodule.c:1713: error: ‘PylibMC_McErr’ has no member named
‘name’
_pylibmcmodule.c:1716: error: ‘PylibMC_McErr’ has no member named
‘name’
_pylibmcmodule.c:1716: warning: passing argument 2 of ‘strncat’ from
incompatible pointer type
_pylibmcmodule.c:1717: error: ‘PylibMC_McErr’ has no member named
‘exc’
_pylibmcmodule.c:1717: warning: statement with no effect
_pylibmcmodule.c:1718: error: ‘PylibMC_McErr’ has no member named
‘name’
_pylibmcmodule.c:1718: error: ‘PylibMC_McErr’ has no member named
‘exc’
_pylibmcmodule.c:1718: warning: passing argument 2 of
‘PyModule_AddObject’ from incompatible pointer type
_pylibmcmodule.c:1720: error: ‘PylibMC_McErr’ has no member named
‘name’
_pylibmcmodule.c:1720: error: ‘PylibMC_McErr’ has no member named
‘exc’
_pylibmcmodule.c:1743: warning: passing argument 3 of
‘PyModule_AddStringConstant’ from incompatible pointer type
error: Setup script exited with error: command 'gcc' failed with exit
status 1
renai@ubuntu1:~/reddit/r2$ sudo apt-cache searc pylib
E: Invalid operation searc
renai@ubuntu1:~/reddit/r2$ sudo apt-cache search pylib
python-pylibacl - module for manipulating POSIX.1e ACLs
python-pylibacl-dbg - module for manipulating POSIX.1e ACLs (debug
extension)
python-codespeak-lib - The pylib library containing py.test, greenlets
and other niceties
python-libpcap - python libpcap wrapper
python-weblib - Yet another web programming framework for Python -
library
python-weblib-doc - Yet another web programming framework for Python -
docs
Help needed with custom Reddit
June 23rd, 2010 • all posts • No comments
hi everyone,
I’m working on a project involving an implementation of the Reddit open source code, as found here:
The only problem is, my technical skills are not up to this one.
What I need is someone to work on a contractual basis to help me implement a Reddit site to a domain that I will specify. I’ve tried going through the process myself but got bogged down.
Of course I can pay, but free offers of help will also be appreciated and taken up.
If you can help, email renai@delimiter.com.au.
Cheers,
Renai
Beer review: Red Angus Pilsner
June 17th, 2010 • all posts • 2 comments
The first thing you notice about Red Angus, a new pilsener beer created by the William Bull Brewery (De Bortoli Wines’ new venture into the beer market) is the nice shape of the bottle it ships in.
The 345ml bottle is fairly tall compared to many of the stubbies that Australians are used to, and a bit thinner. But that’s not a bad thing. The long, smooth neck gives it a bit of a flavour of sophistication and differentiates it from the norm.
The colour of the bottle is a dark brown, which gives it the same home-grown earthiness that you get from opening a bottle of Coopers’ Pale or Sparkling Ale. It gives you the impression that Red Angus is not a high-brow foreign beer like Heineken or a pretentious Australian beer like Tooheys Extra Dry.
Instead, it gives off an aura that Red Angus is a good old home grown Australian working class beer — an impression reinforced by the simple red label with a picture of the Red Angus cattle for which the beer itself is named.
And now to the most important thing — the drinking.
What you will probably think about Red Angus when you take your first sip of one is that it is a very bitter beer. This is definitely the first impression that you get from the beer and it’s one that I’ve heard mentioned several times around the office as we’ve been drinking it over the past few weeks.
However (and I’m fascinated to know how William Bull achieved this effect), this impression is not the lasting one you will take from Red Angus.
As you drink more of the beer, the bitter taste recedes and you start to appreciate what is really a most complex flavour for an Australian beer. The cool tart taste common to pilseners is here, and I agree with William Bull’s promotional material that the beer has a very fresh and clean feel.
It reminds me a little of the cool fresh fruitiness of a Corona, but where Corona has never been bitter, the little bite of Red Angus lends it a more interesting flavour.
Weight-wise, I wouldn’t say the beer has even the same level of ‘heaviness’ that a Pale Ale has, but it certainly has more volume than lagers you would drink in Australian pubs — it even has a slight cloudiness about it.
In volume, Red Angus performs well. I have been able to drink four or five of the beers without having any real bad feel about my body the next morning. Certainly the beer doesn’t have the lightness of a Heineken or a Corona, but neither does it have the heaviness of a Coopers Sparkling Ale which can cause a few gastro problems if you drink quite a few in one night (in my experience).
I would recommend, if you are going to drink a few beers in one night, that four or five bottles of Red Angus would be a good amount, with some food. Any more might make you feel a bit too heavy.
Overall there is much to like about Red Angus. It’s the sort of beer that Australian brewers should really be focusing on right now, if they are going to market beer to the Australian market. There’s a real gap in the market right now, I feel, between the mass-market lagers and the heavily stylised ales that the likes of Coopers are producing.
Red Angus has that feel of a beer that you could get used to easily and have as your regular. It’s not pretentious, there’s no ‘identity’ associated with it, but it has the subtlety that Australians like.
Disclosure: De Bortoli chief information officer Bill Robertson sent us a couple of cartons of Red Angus (and some wine, which we’ll get to at a future date) as a nice gesture after I covered his career in a profile on Delimiter. There is no commercial relationship between us though — I just promised him I’d review Red Angus because I like good Australian beer.
Image credits: William Bull Brewery
Sometimes I hate computers
June 15th, 2010 • all posts • 3 comments
So here is my sorry story of woe.
My PC has been functioning normally for some time.
Last week I bought a cheapish powered USB hub and plugged it into my home PC, which runs Windows 7.
This weekend I plugged that hub into my home PC. At some stage I hibernated the PC. Then later on I plugged my Kobo eReader into the hub to charge.
Later on I started the PC up. Only thing is, it now won’t start up. It just powercycles on for a second and a half with the fans at full, then powercycles off. Then back on for two seconds, then back off. There’s no display at all and it won’t get to the BIOS screen.
It looks like anything USB is not functioning — the keyboard and mouse are not lighting up etc.
I’ve taken out the BIOS battery and reseated the RAM, reseated the graphics card and so on, but my suspicion is that I have blown the USB section of the motherboard somehow.
Suggestions?
All else failing, where is the best place to take this machine in Sydney to get evaluated? It’s a fairly powerful beast, all up has cost me about $2500 over the years, including upgrades and a recent new graphics card, so can’t just start from scratch.
An open letter to newmatilda
May 27th, 2010 • all posts • 7 comments
hi newmatilda.com guys,
sorry to hear about the decision to stop publishing. It’s terrible news.
But I just wanted to clarify something with you guys. Will the existing newmatilda.com site remain online, with the archives and so on? The reason that I ask is, I have already received significant interest from people in the community to donate hosting space and admin time (as well as cash) to keep this site online.
I’m really not in favour of letting this excellent resource drop off the internet — I guess what I am saying is, let’s have a conversation about this, and see what solutions could be found.
I understand that the site is not the business, and that there are associated business issues, but I think it’s at least worth talking about where this could go. There is so much amazing content bundled up on newmatilda.com, it would be a shame to see it vanish forever.
I wouldn’t make this offer to discuss this if newmatilda.com wasn’t so staunchly Australian. That’s my passion — great Australian content. And I don’t want to just let a site which has created so much of it go quietly into the night.
There is also the potential, if the site remains online at least temporarily, that volunteers could be found to continue to edit articles. Sure, you might not be able to pay contributors any more, but you may be able to evolve it into a crowdsourced model that would stick around for longer than you might think.
In any regard, I wanted to invite you to open a conversation with the broader Australian community about this one. Let’s not just say “that’s enough, we’re shutting down”. Let’s see what else can be done before we just give up. After all — what is there to lose?
Kind regards,
Renai LeMay
Publisher, Delimiter
Proprietor, LeMay & Galt Media
Why it’s better to be small media
May 24th, 2010 • all posts • No comments
I had an interesting experience the other day during my attendance at a speech by the chief executive of Telstra, David Thodey.
Let me describe the situation.
There are perhaps two to three hundred people milling around as the business lunch that Thodey has delivered his speech to concludes. Some people are standing around chatting and swapping business cards, while others are making their way speedily from the venue, the ballroom of Sydney’s Shangri-La hotel.
I have been sitting on one of several tables filled with journalists who cover Australia’s technology scene, most of whom I recognize. I have been told earlier that Thodey would give a brief doorstop interview following the conclusion of the lunch, and so I quickly pack up my laptop and head for the door so that I can catch this.
As I exit the room I see that there are half a dozen television cameras set up in the lobby outside, and many journalists who I do not recognize – and some that I do – clustered around them.
I smile wryly to myself for reasons that will soon become apparent and head over to await Thodey’s appearance. For some minutes I stand idly by, chatting to several other journalists who I know about the executive’s speech and what we think about it.
Then the moment arrives.
Flanked by several members of Telstra’s PR team – who I know well – Thodey strides out in front of the TV cameras. An electric charge fills the air as the crowd of journalists – which has now reached numbers of several dozen – maybe 30 – surges in with their microphones, to catch his every word.
It is everything that you have seen on television – broadcasts from outside the front of courtrooms, the disgraced resigning politician giving brief comments to the media scrum, and so on. You know the caricacture and it is true to the stereotype.
I hang back on the edges of the scrum as I dislike the jostling that goes on in these moments.
Journalists who I do not know – and one or two that I do – thrust questions at Thodey like weapons. What is the status of Telstra’s negotiations with the Government over the National Broadband Network. What will Telstra do if they fail? What is Thodey’s plan to deal with Telstra’s sinking share price?
I don’t remember the exact questions being asked.
But one thing is clear – they are all questions to which I already know the answers. In fact, having followed every public statement that Thodey has made since he became chief executive of Telstra in mid-2009, I believe I could have taken his place and conducted the interview in his place.
The problem is that there are no answers yet to almost all of the questions, and for some of the questions, we already know the answers.
And yet most of my fellow journalists hang on Thodey’s every word as if their life depends on it. They push and shove to get a better angle for their microphone or for their camera. They interrupt each other, jump in, ask multiple questions to hog the limelight and so on.
One journalist who had had the opportunity to ask Thodey whatever questions he wanted in a private one on one interview the day before even asked several questions, which surprised me.
After a few minutes, the Telstra PR representatives call time and the journalists’ fervour subsides as they reluctantly put away their notebooks and recording devices. Several journalists follow Thodey up the stairs, asking more questions, but I am not one of them.
To gain insight into this event you need to realize that most of the journalists who attended Thodey’s speech do not cover the movements of Telstra on a day to day basis. In fact, I would guess that most of them were business journalists who would only cover Telstra a few dozen times a year – at the company’s annual and half-yearly financial results time and for other significant announcements.
Still others of the journalists would have been TV reporters that would cover any event they were sent to, and so might only cover Telstra a couple of times a year.
And of course there would be magazine journalists who might cover Telstra once a month or so.
What this means is that Thodey’s speech was covered by people who, in the main, do not cover Telstra on a day to day basis. They do not cover the intricacies of small executive movements at the telco, the gossip of its NBN negotiations, changes in its pricing plans, product launches, union negotiations and so on.
They do not attend telecommunications conferences and speak to Telstra’s wholesale customers, or attend user group conference and speak to Telstra’s retail customers. They are not combing the forums of Whirlpool looking for telco gossip or speaking to Telstra’s current and future suppliers about its needs.
These are not important enough issues to rate on the scale of most of the journalists who attended the lunch, because their beat is much wider than Telstra. Their job is to cover the really big business issues, the big national issues, and bring them to a massive national audience.
The upshot of this is that those journalists – not through their own fault, merely through the current structure of Australia’s mainstream industry – can not provide the same level of insight into Telstra’s operations than dedicated journalists on the telecommunications beat can.
We need only look at the example of Australian journalist Michael Sainsbury, who solely covered the telecommunications sector, to see an example of how highly specialized journalists can do justice to coverage of a certain issue or sector.
For many years, Sainsbury’s journalism dominated Australia’s telecommunications sector. His words were followed by the entire industry on a daily basis, because he had a level of insight into its operations that no mainstream generalist journalist could match.
And his name is still legend – despite his shift to being the Australian’s China correspondent – because of this.
I cannot claim to have anywhere near the level of skill or contacts that Sainsbury had, although I hope to catch him one day. And that is not what I am arguing in this article.
But what I do want to argue is that the future of media is clearly not in a pack of generalist journalists stringently questioning the CEO of Telstra for 20 minutes one day per month in a plush lobby in the bowels of the Shangri-La hotel.
In fact, the future of Australia’s media industry lies in micro-journalism. It lies in only a handful of dedicated, passionate journalists following Thodey around every day of his professional working life. Seeking to cover the executive and his company in the sort of detail that only dedicated specialist journalists can bring.
We don’t need another Michael Sainsbury to cover expose the inner workings of Thodey’s life and Telstra. Instead, we need five or six Michael Sainsburys, to provide the sort of insight and intricate coverage that audiences are increasingly demanding this decade.
For my own part, I’m glad I’m not a generalist journalist. I just cover Australia’s technology sector, and I do it every day. I’d rather know one thing really well, than know a thousand things only at a surface level. You get to know the people better that way, and you get better stories. And if the lifework of a journalist is to tell people’s stories, then that is what matters most.
Disclosure: Salesforce.com work
May 20th, 2010 • all posts • 9 comments
hi everyone,
I’ve got an important disclosure regarding next week that I think people should know about — particularly those of you who follow me on Twitter.
Salesforce.com has invited me to head up to Singapore next week to help them cover their Cloudforce conference on Monday 24th and Tuesday 25th of May.
This will be a paid blogging engagement, where I will be blogging and publishing photos and video on a Salesforce.com blog, and Twittering about the conference.
Importantly, the work I will be doing there will not be published on Delimiter, nor made available to any of the other publications which licence its content.
There is the obvious point that Delimiter only covers what’s happening in Australia — but also, it’s hard to pretend there is editorial independence on articles when a vendor is directly funding them ;)
Delimiter will continue as normal while I am away for those two days, with journalist Jenna Pitcher continuing to publish articles, and a number of my own articles written previously will go live during the two days as well.
I wish to emphasise that I considered seriously the ethics of undertaking this engagement before I agreed to. In the end, three factors weighed my decision in the positive.
Firstly, the work will be outside Australia and so won’t directly conflict with Delimiter, which only covers Australia. I wouldn’t, for example, undertake an engagement of this nature for an IT company in Australia — although, I would consider undertaking this sort of engagement for non-IT company in Australia — for example, a conference of pizza manufacturers.
Secondly, the fact that the work will be published on Salesforce.com’s own blog means that readers will easily be able to separate the work I am doing there and my work on other sites such as Delimiter and Keeping the Door. It will be clear what I am being paid to do and what I am not.
This will be less clear on Twitter, but then my Twitter account has always been a complex mishmash of all of my work and personal lives, and I believe that my Twitter followers trust me and are adept at interpreting the complex @renailemay situation.
And Salesforce has given me complete editorial freedom. Of course, I am not going to be writing articles saying that the company’s products suck — and I’m sure, nobody would expect me to.
Lastly, I view this engagement as an experiment which I have long been interested in undertaking as a test of my own ideas.
Those of you who have been around the traps for a while will remember Robert Scoble’s engagement as a blogger with Microsoft. In my opinion, Scoble was quite adept in his role as a staff Microsoft blogger in representing the company’s interests while also being able to publish his objective viewpoint on them.
I have long felt that as a journalist, it is hard to bring the sort of hyperlocal coverage to company conferences that you would like to, because intrinsically your job is to bring stories from that conference to a larger audience.
Partially my role at Cloudforce will be to do that. But I also am quite interested in reporting on the conference for the people who are attending — as they are attending — and I have a feeling that the best way to approach this is as an embedded blogger. In this sense you have an undivided agenda. I am aiming to help the Salesforce.com blog become the ’soul’ of the conference.
Anyway, now you know what I will be doing next Monday and Tuesday. Please post your thoughts about all of this below this article :)


