After a couple of times around the loop I looked properly at the warnings on that final page before the “install” button, and made some php.ini changes in line with what it requested – increasing the memory_limit and the upload_file_size. I also installed php5-curl (I’m an ubuntu user so this is just an aptitude package for me) and the install ran like a dream at that point. I’m disappointed that SugarCRM couldn’t give me better feedback than just a 404, but it seems like it needed some settings that I didn’t have – so if you see the same behaviour, don’t give up but heed the warnings and it should be able to install itself absolutely fine. Hope this helps!
Author Archives:
Giving Up The Day Job
The slightly longer version really is this. Two and a half years ago, I left a job at a type of company I usually describe as a yet-another-website company, where literally every new project was another CMS website. Which was fun for about the first 4 months and got old pretty quickly. Two and a half years at Ibuildings and I haven’t done yet-another-anything, the projects have been technical, challenging and my colleagues are the best qualified set of people I’ll probably ever work with.
Along the way I’ve also done a wide variety of other things, most of which are achievements beyond my wildest dreams, some within the scope of this job and some on my own time but of course influenced by all that I’ve learned. I’ve delivered training, led projects, been published, become a regular conference speaker and travelled internationally doing so, collaborated on an open source project, edited a developer portal and hosted a major international PHP conference. I’ve even learned to say those things about myself in public without feeling too much of a fraud!
At this point, there are so many things I want to be doing, writing, speaking and so on, as well as some interesting development projects, that holding down my 9-5 as well has become untenable; that’s the main motivation for this change. I don’t intend to take another full time job, although I don’t have a lot of paying work lined up so please bear in mind that I am looking for some ;)
Things I would like to be doing:
- Working with development teams on skills, tools and process (think teach a man to fish, rather than sell him a fish)
- API development
- Technical writing
- Meeting cool and interesting people and embarking on cool and interesting projects together
Advice on achieving any or all of the above is appreciated – if any of you can also think of me when discussing business, write me a linked in recommendation, or retweet my announcement of my news, that would be fabulous!!
If you’re still reading, then I’ll share a little something with you. I decided that with a career move, I needed a little rebrand, so here is my new angel avatar. I hope you like her :)
Wish me luck in my new (ad)venture, I’ll be keeping everyone up to date as always!
Retrieving Product Attributes from Magento’s V2 API
It actually wasn’t complicated but without V2 API documentation, it wasn’t at all clear what to feed in to get the result I was looking for. It turns out you can just pass an array of desired attributes, shown here with the info method from the product_catalog:
// connect to soap server
$client = new SoapClient('http://magentoinstall.local/api/v2_soap?wsdl=1');
// log in
$session = $client->login('user', 'pass');
// product info
$attributes = new stdclass();
$attributes->attributes = array('product_title', 'description', 'short_description', 'price');
$list = $client->catalogProductInfo($session, , NULL, $attributes);
There were two tricks – one was realising that I could pass that final (undocumented) argument, and the other was understanding how to format that. Hopefully anyone doing battle with the same thing will find this post and get over this little challenge much faster than I did :)
Speaking at FrOSCon
I haven’t visited this part of Europe before so I’m also including a couple of days to see the area, and really looking forward to the trip. Since there are technologies other than PHP, and since I’m rarely in Germany, I know I’m going to meet a lot of new people … and I can’t wait :)
Something Special from PHPWomen
The inscription reads:
Lorna Mitchell
In recognition of your extraordinary efforts
PHPWomen
Although I took the photos of this outside, this item now has pride of place on my mantlepiece, where I can look at it and reflect on what a huge influence the PHPWomen have been, and continue to be, for me and so many others.
PHPNW10: Call for Papers
So what are you waiting for? Go submit your talk at our call for papers page. If you need more assistance then you should check out these resources (and yes, some of them are mine but I feel strongly about this topic and want all you interesting and hesitant people to start speaking!)
- podcast: How and Why to Become a Speaker (lornajane.net)
- How to Submit a Conference Talk (lornajane.net – and I know more about this now, maybe I should update it?)
- Getting Accepted (tek.phparch.com)
Are you submitting? What tips would you offer to those thinking of doing so? Already we’re at over 50 submissions, more than last year, so competition is tough but oh my goodness, I’m so excited :)
Working with Branches in Git
Available Branches and The Current Branch
This is the easy bit:
$ git branch
* api
master
$
The entry with the star next to it is the current branch, so here you can see that I have branches “master” and “api” and I’m currently working on the “api” branch. If you only have one branch it will usually be called “master”.
Creating and Changing Branches
My experience is with Subversion until now, and branching is really different in git (because it actually has branches rather than just copies, this is definitely a feature, but it is a different approach from how I had used them before). So you can switch your working copy around to look at different branches, which threw me a bit to begin with. To change branches, just checkout the one you want:
$ git checkout master
Switched to branch 'master'
$
If you actually wanted a new branch simply name it and ask checkout to create it if it doesn’t exist, by using the -b switch:
$ git checkout -b demo
Switched to a new branch 'demo'
$
So now my branch command shows me this:
$ git branch
api
* demo
master
$
Pushing Branches
This is very much an optional step. Many of my branches are private branches – meaning that I branch on the development server, finish the feature at hand, and then merge the changes into my master branch without pushing the branch to anywhere else. To share changes with others though, I sometimes like to push my changes up to github – which is my “origin” remote on my repo. So to push the demo branch we just made, I would simply do:
$git push origin demo
Total 0 (delta 0), reused 0 (delta 0)
To [email protected]:lornajane/joind.in.git
* [new branch] demo -> demo
$
If you use “git push” on its own, it will push all branches which exist on both the local repo and the origin – but will not push any private branches unless you specify that it should.
Resources
The http://help.github.com site, Github’s own documentation, is actually brilliant and has really helped me to get up to speed with working with my own code and contributions from others.
* The only problem I’ve had with code on github recently is that I merged totally the wrong changeset into the main project root. Which really isn’t the fault of the source control system :)
Accessing the Magento V2 API
However they have then released a new version of the API, with very little documentation. So here are two calls – one to the v1 API and one to the v2 – which I hope will help illustrate the differences. The example I’ll give is the customer list functionality, including filtering the result set – because this was a total mystery when I started working with the v2 API!
$options = array(
"location" => 'http://magentoinstall.local/index.php/api/index/index/',
"uri" => 'http://magentoinstall.local/api/'
);
$client = new SoapClient(NULL, $options);
$session = $client->login('user', 'pass');
$list = $client->call($session, 'customer.list', array(array("customer_id" => "42")));
To make the same call with API version 2, we need to address the method in a different way, using the structure
$client = new SoapClient('http:/magentoinstall.local/api/v2_soap?wsdl=1');
$session = $client->login('user', 'pass');
$filter = new StdClass();
$filter->filter = array(array("key" => "customer_id", "value" => "42"));
$list = $client->customerCustomerList($session, $filter);
I haven’t used either of the APIs a lot but once I was able to call the same method via both available services, I wanted to share the approach here in the hope that this would help someone else trying to solve the same problem. It is certainly not obvious from the documentation how to interact with the v2 API and I had some real puzzles getting the filtering working. These snippets are from my working code so I hope they are helpful to someone!
Your Open Source Stories
Last month, I gave a talk at TEK-X entitled “Open Source Your Career”. Personally I think that a lot of the high fliers in this profession use their community activities as a boost to their professional development, and I know that this has been true for me too. So in my talk I told stories about situations I’d met in my professional life and how I’d either achieved or made new opportunities by building on skills and experience (and network) that I’ve come across in my community activities.
For example I said to my CTO, Ivo Jansch that I was giving this talk and he asked what it was about. I said that, in a nutshell, I didn’t think Ibuildings would have trusted any of their developers to host the Dutch PHP Conference unless they’d seen that person hosting events elsewhere – as a volunteer co-host of PHPNW, I gained some experience doing this sort of thing. His response really brought home how true it is that getting out there can reap rewards in ways we don’t expect – or in my case don’t even recognise. He simply said “one reason you have the job you have now is the fact that you did an oracle podcast for zend once which I heard when I received your CV”. It hadn’t occurred to me that activities like that would have helped when I was changing jobs.
What I Need From You
I’m giving this talk again, at FrOSCon in Germany in August. It was a huge amount of fun to deliver last time but I’d really like to pull in more stories from other people to include in my talk. So … have you ever got involved with something outside of your day job, only to realise later that it was a good career move? And would you let me tell your story?
Answers on a postcard, by email, or in the comments field below. Any and all input is very gratefully received :)
Text Commands for Skype
/alertsoff
The / lets skype know its a command – much like IRC! There’s a full list I found on Skype’s support site, very handy :)