skoop.dev

  • About
  • @skoop@phpc.social
  • Stopping my SSH connection from stalling

    March 14, 2011
    linux, ssh, timeout

    A quick tweet to ServerGrove triggered me to receive this link from them with a way to possibly prevent this. I took the server-side version, and added to my /etc/ssh/sshd_config:

    ClientAliveInterval 60

    I restarted my ssh daemon and connected again. I then went to pick up my son with the connection still open, and when I came back… no stalling anymore. I could still use the connection! So this seems to have solved this problem for me. Hopefully, it will for you as well. Yay for ServerGrove!

  • PHP on Azure content: The cool stuff

    February 23, 2011
    azure, contest, microsoft, php, symfony, winphp, zend framework

    Step out of your comfort zone

    Last year you might’ve seen several blogposts here about my experience working with PHP on Windows. It was because I participated in the WinPHP Challenge, another coding contest which was organized by Microsoft Netherlands. One of the reasons I participated in this contest was because I wanted to step out of my comfort zone. I had been working with linux and OSX for years and had not worked with Windows for a while. My last experiences with Windows and PHP (back in the days of PHP3, maybe early PHP4) had not been very good ones. Being forced to work with PHP on Windows was an eye-opener for me in how much PHP on Windows had improved.

    Aside from working with Windows again, it was the first time I seriously did some work with any “cloud” technology. This was also outside of my comfort zone, because I had not yet worked with any of this stuff anymore. I found out that in the end, this isn’t as hard as I had thought it would be, especially because there’s already libraries out there that can help you with your work. And that’s definitely something to remember: There’s libraries out there so even with programming contests like this one, it would be stupid to reinvent the wheel and write everything yourself.

    Work with cool new technologies

    With the WinPHP challenge, the only requirement was that the PHP app should run fine on Windows. In the end, my app ran fine on any platform that can run PHP, because the app itself wasn’t very special in terms of code. In terms of functionality, however, I specifically chose to work not just with Windows, but with Windows Azure technology. Why? Well, I wanted to play around with the cool new stuff. Windows itself can be considered an “old” technology (with a newer version every few years), where Azure is a completely new technology. And since I’d never really worked with “the cloud” before (other than CDN hosting), I thought it would be fun to play around with Azure a bit.

    Win cool prices

    The first price I won was slightly different from the one in the PHP on Azure contest, but the biggest and most important part is definitely the same: A ticket, flight and hotel for the MIX conference in Las Vegas! Fucking Las Vegas! I’m going this year, and I’ll definitely report back on my experience on this blog, but I’m really excited to be able to visit the MIX conference. Second and third prices are not bad either, with a nice Samsung Omnia 7 phone for second and Kinect sensor for third price. And I am happy that after a suggestion by yours truely, this year there’s also a price for the top blogger. Blogging is part of the contest and blogging can now also get you a price! The person that blogged the best (most, most extensive, best quality content, you name it) will win a Samsung Omnia 7 phone!

    Have fun

    The most important reason is and will always be to have fun. It’s fun to participate in a contest. To learn stuff, to develop stuff, to solve the problems you encounter. Communicate with the other contestants, see what progress they make, check how they solve their problems. It’s all about fun. So definitely have fun as well!

    So register now! Join the fun! Let’s make this the coolest contest ever, with the coolest projects and the coolest people around!

  • Would you like docs with that?

    February 15, 2011
    documentation, php, symfony, webinar

    This thursday, February 17th, I’m doing the presentation as a webinar in the Zend Webinar series. At 9AM PST (or 5PM GMT, 6PM CET) I’ll be explaining why documentation is important, and what types of documentation you can use for your project. The webinar should last for about an hour (unless there’s many questions), and should be interesting for most developers. I know, the topic doesn’t sound really sexy to most developers but it is really important.

    So feel free to register for the webinar and join me on thursday.

  • The future of magazines

    February 2, 2011
    ipad, magazines, php

    Fastforward to today. I still can not read long texts from screen without getting tired eyes. OK, let me rephrase that: I still can not read long texts from my laptop screen without getting tired eyes. At some point at the end of last year, during the holidays, our family got a gift from this friendly guy with the long white beard. No, not Santa Claus, but the Dutch version, Sinterklaas. The gift? You can guess it: an iPad.

    So with the iPad there and having seen tweets of people reading the magazine on the device, I decided to try that for a while. Now, having read some of the backlog of the magazine and also some of the newer editions, I can only say: This is the future of magazines. This is the way we’ll read them in the future. iPads (and similar devices) make for much easier reading.

    My setup right now is simple: I download the PDFs of the magazine on my laptop. I put them in a specific iPad folder within my Dropbox. I have created a seperate Dropbox account for the iPad, with which I have shared this iPad folder. I put all my PDFs in this folder, which then allows me to open them on my iPad.

    So. Had the magazine’s management lost all touch with reality? Or were they really looking into the future, and were they simply thinking of ingenius plans to rule the world. I can do nothing but conclude that it is the latter. They saw an opportunity and jumped on it, as one of the first I’ve ever seen make such a move. I am actually quite happy they did so, even while they did alienate a big part of their readerbase. I am quite sure they’ll get back most of those, one at a time, as soon as they buy their own iPad or similar device. They’ve just been an early adopter, and you need those in this world.

  • Barcodes and QR codes in PHP

    January 31, 2011
    barcodes, libraries, php, qrcodes, symfony, zend framework

    Barcodes first

    First, let’s have a look at barcodes. For this project, I will be working on some shipping labels. Postal services can be very strict in their demands on the labels (and rightfully so), so it was a nice surprise to see that Zend_Barcode – aside from supporting the regular standards – has support for several of the postal service standards, like Identcode (used by German postal service), Postnet and Royal Mail. This will surely be really important for my project.

    Using Zend_Barcode is really easy. I used my autoloader to autoload the Zend library in my project. Obviously, I had to also include the dependencies of Zend_Barcode (Zend_Loader, Zend_Validate, Zend_Exception and Zend_Registry). After that, it’s just setting up the right options based on the request, and outputting the barcode:
    As you can see, it’s just a matter of fetching the right options from the request, setting the response content type, and calling the Zend_Barcode factory to create the barcode, then render it. It doesn’t get any easier.

    Now for QR

    Now for QR I still had two options left. Usually, when I have two options left, and one is Google, I go for the Google solution. Why? Well, Google usually makes it really easy to use their API, is solid, and is always available. Oh, and *fast*. However, for this project, I decided against this. The main reason for this is that my application may end up running inside a hugely firewalled corporate network with very limited connectivity to the outside world. So I needed something stand-alone for this. The PHP QR Library seemed like a very decent solution and came recommended by people whom I trust a lot on this.

    Using PHP QR is possible even simpler than using the Barcode, because it’s a single standard so doesn’t really have rendering options. So it’s just passing along the information that needs to be in the QR code to the library and having it generate the graphic.
    I’m loading the qrlib file here (which includes all the library files), setting the content type and then simply calling QRcode::png() to have the library output a PNG for the passed text. That’s it!

  • Now a Sensio partner

    January 7, 2011
    doctrine, ingewikkeld, partnership, php, sensio, symfony, Symfony2, training

    With this partnership, a long standing wish of mine is finally fulfilled. I’ve been wanting to offer the Sensio training portfolio on symfony and Doctrine for some time now, and am happy to be able to do this now. The current portfolio includes symfony 1.4 & doctrine but of course you can expect new Symfony2 courses to be coming in the near future as well! For those that can not wait for those Symfony2 courses, there is already a Symfony2 workshop scheduled for March 2nd in Paris, right before the Symfony Live conference takes place in the same city.

    So as of this moment, you can contact me for in-house trainings for your development team. But I will also be organizing classroom training sessions where you can simply book a seat to attend the course. I am currently looking at organizing the first classroom sessions in March or April. If you have questions or suggestions, do let me know!

    Now, for champagne 🙂

  • Introducing phpOpenNOS

    January 3, 2011
    api, library, nos, open source, php, php5.3, webservice

    So what is it?

    Basically, the phpOpenNOS library is nothing more than a layer between the API and your application. It is there so you don’t have to develop the code to make the requests to the server. At this point, it implements all documented functionality in methods of the OpenNOS class. What you get returned are model classes with getters for all information the server returns.

    So what doesn’t it do?

    It doesn’t do any more than giving access to the API. Anything you want to do with the data, you’ll have to implement yourself.

    So how does it work

    As mentioned before, all functionality is implemented as methods of the OpenNOS class. So using this class, you have access to all the API methods. In the repository there is an example.php file that gives you some examples, and more in-depth documentation will follow soon. The code is quite easy to follow though, so probably looking at the method signatures and the docblocks should give you enough information on the available options. A simple example for fetching articles:

    <?php
    require_once 'src/phpOpenNOS/OpenNOS.php';
    
    $nos = new phpOpenNOS\OpenNOS('YOURAPIKEYHERE');
    $articles = $nos->getLatestArticles();
    

    It truly is this simple. The $articles above will now contain an array of Article model classes with get* methods for all properties.

    So where to get it?

    I already mentioned the repository above, but the code is available from Github. It is the first public repository on the new Ingewikkeld account, which is the account of the company I run with my wife. Because I’m using Github, I would recommend everyone to fork the repository and if you have any improvements or bugfixes, send a pull request so I can get in your fixes and improvements into the main repository. Get phpOpenNOS here at Github.

    The Future

    As mentioned, documentation is something I need to add. It will come, and hopefully it will come soon. In the README, you will also note that error handling is still in the TODO list: At this point there is no good error handling in place so I will have to add this at some point in the (near) future. Of course, I will keep following the development of the API and adapt the library to any changes in the API as well. And if you have any feedback on phpOpenNOS, I would gladly hear from you!

  • Speaking at Symfony Live 2011

    December 10, 2010
    conferences, paris, php, san francisco, sflive2011, symfony

    This talk is all about not using PHP. I have seen too often that developers or companies decide to use PHP for everything. And even though PHP is a very versatile language that can be used for a huge variation of things, it is not meant for all tasks. Sometimes it is better to go for software written in another language than PHP, simply because that software does a better job.

    A variation of software will come by. Things like Solr, Gearman, Memcache, Trac and Jira will be discussed as well as other tools not built in PHP but which will make your life as a developer a whole lot easier. It is important for everyone to realize that you should choose the best tool for the job, and not use a screw when a nail is best suited for the job.

    I am really looking forward to both Symfony Live conferences and meeting friends new and old. See you there!

  • International PHP Conference 2010

    October 14, 2010
    conferences, international php conference, ipc, ipc10, php, symfony, Symfony2

    Our morning started early as we were driving down to Mainz. We arrived as the opening keynote by Zeev Suraski ended, but right in time for the first regular session. My session of choice was Ian Barber’s talk on debugging. Ian gave a good overview of tools and strategies for debugging and described some really familiar situations. Though perhaps not always new information, still a good reminder on some solutions and approaches.

    Next up was Liip’s Jordi Boggiano, who was speaking on sharing knowledge and developer quality lifecycle. It is a wonder I didn’t get a sore neck from all the nodding I did during Jordi’s presentation, I could’ve given the same talk so much did I agree with him on how to share knowledge and inspire other developers to expand their own knowledge. The information itself was nothing new to me though, but it triggered a very nice discussion between the attendees on how to get people to indeed widen their knowledge and how this can be accomodated.

    After lunch I went to sit in on Ben Ramsey speaking on AtomPub. To me, Atom was only a content syndication format just like RSS, and I was not really aware of the whole AtomPub technology that actually allows you to use the Atom format to publish data as well. This talk inspired to have a look at AtomPub for future reference, as I am pretty sure this is a technology that I will be able to use at some point in the (near) future.

    A short break later, I was in the room for David Zuelke’s REST talk. David is always a good speaker and REST is an interesting topic, so I couldn’t be making a bad choice in this session. I didn’t, as David presented the REST structure. It was especially made clear by the examples of the (bad) Twitter REST interface and how this could actually be improved. Made me decide I should think a bit more on the next REST interface I build, as I definitely made some mistakes in the past.

    I decided to close the day with a talk by Tobias Schlitt and Kore Nordmann on extreme uses of PHPUnit. The speakers used examples to show how you could use PHPUnit to test some hard to test situations. I must admit though that after such a long day it was a bit hard to concentrate, so it was sometimes hard to follow everything.

    Tuesday morning we came in a bit late but I sneaked into Stefan Priebsch’ talk on refactoring anyway. I did a talk on refactoring some time ago at several conferences and I must say Stefan actually did a slightly better job in explaining the concept and some situations. I definitely think most of the attendees will have gathered some knowledge and I hope it has inspired them to take a look at their own code to see how they can improve it.

    I then attended Sebastian Bergmann’s talk on Agility and Quality. An interesting talk where I learned about some strategies of testing and launching new features in applications. Though these could be applied to any project, I think they will be especially useful in big applications and the next big application I’ll work on and am involved in the testing and deployment, I will have to research the topics a bit more and see if I can apply them to the project.

    I stayed in the “Agile track” for Thorsten Rinne speaking on Continuous Improvement. Thorsten gave a good (but slightly short) overview of the different tools that can be used to improve software. Some were already known to me, but tools like Cinder and Padawan were new to me and may be applied at some point in the future.

    After lunch and the keynote (which I skipped to make sure I was prepared for my first talk of the conference) I presented my “Integrating symfony and Zend Framework” talk. I’ve done this a couple of times before but had changed some of the examples. I think my talk went well and the examples actually improved a bit. I decided to also open source the autoloader I presented in this talk on Github.

    A nice initiative was made by Jordi Boggiano who did an ad-hoc session on Symfony2 in a free room during the last slot. Jordi did a nice presentation on some of the new features of Symfony2, that will have informed many of those present of the nice things that are coming once Symfony2 hits stable. After this session, it was time to chill for a bit, only to go back into one of the conference rooms with a beer in hand for the PHP Night Talk, a nice discussion with a panel of 4 on PHP and related topics, which was made even more interesting by the Twitterwall which was projected behind the panel, where some of the remarks made there (on and off-topic) added some fun to the discussion. After that, it was time for the casino party and the earlier mentioned waffles to celebrate the tenth anniversary of the conference.

    After two days of conference (and of course being at SymfonyDay the days before), I was quite overloaded with information. Even though I had planned to attend several talks, I ended up not attending many talks on wednesday. After doing my talk “Would you like docs with that?” (which I was not really satisfied with this time) I went to attend Derick Rethans’ talk on geolocation and maps with PHP (which he will also deliver at the PHPBenelux Conference in January). An interesting talk which triggered me put it on my TODO list to check back into OpenStreetMap, which seems to have improved a lot since I last looked at it.

    Some speaker interviews for the PHPBenelux Conference later, it was time to head back home after three intensive but awesome days. I hope to be attending International PHP Conference again next year, for sure!

  • Speaking at the International PHP Conference and SymfonyDay

    September 23, 2010
    conferences, documentation, frameworks, ipc, ipc10, php, sfdaycgn, symfony, zend framework

    SymfonyDay is becoming a nice traditional, even though it’s only going into it’s second year this year. With an impressive schedule it’s going to be an information-filled day for the attendees. Just like last year, I’ll be doing a workshop this year. This unfortunately means I will be missing the main conference track again which is a shame. For those interested in getting a ticket: Get yours with a discount now!

    Then I have half a day at home only to leave for Mainz again on the 11th for International PHP Conference, who also have an awesome schedule. Slightly unexpected but nevertheless very cool, today I have been added to the schedule with two of my talks: “Would you like docs with that?” will be on documentation: Why should you document? How should you document? And what tools are available for documentation? This and more gets answered.

    The documentation talk is on Wednesday, but my first speaking slot is on Tuesday. On Tuesday I will be speaking about integrating symfony and Zend Framework. I will show how easy it is NOT to restrict to a single framework, and explain why you should definitely not do so.

    If you’re going to either one of those conferences (or maybe to both?) I will see you there! Come and say hi!

Previous Page
1 … 18 19 20 21 22 … 61
Next Page

skoop.dev

  • Bandcamp
  • Mastodon
  • Bandcamp