I recently had the pleasure of some free time recently – with three kids this does not come often – so I decided to finally plug my Kinect into my PC. I find it kind of funny how long it actually took for this to happen. Over a year ago I finally joined the real world and made the decision to finally make a new console gaming purchase.
Like everyone, I had to choose between the PS3 and Xbox 360. Each of course has their pros and cons. But when it came down to it, I could develop for the Xbox and Kinect for free and this became the deciding decision factor.
So finally over a year later I finally plugged my Kinect into my PC’s USB port!
It is said that anyone ever involved in setting up a process of managing software development had an idea of coming up with his own custom tool and workflow. Specifically in web software development.
We’ve all been there. We’ve gone through all existing tools and, this way or another, found our best shot. Heard of kanban? It’s as easy as 1–2–3 to tear it into pieces, take what fits, and call yourself agile. Daily inertia inside a busy software house hive has proved it all right.
In our line of business, we work on various projects simultaneously and have to stay ABC at all times, therefore well-optimized workflow is a must. It’s also a moral boost and sanity check for developers. Top-down and bottom-up — both have to meet.
OK the past few posts have been dealing with Contact forms and howto create them with CakePHP along with file uploads. This post is going to be about howto create a contact form which works with Ajax using jQuery. Updates are coming thick and fast with the framework and this is using 2.3.0 and will be workable with the whole 2.x releases.
It’s another Monday, so we figured it might be the right time for the new issue of From Monterail with Love. We’re announcing something special this time:
If you like the series, subscribe to our newsletter so you’ll have a similar digest delivered right to your mailbox once a month.
But for today, we’ve got some free e-books, and a couple of security and tests-related links. Enjoy.
Something to read
If you are a regular developer, chances are that occasionally you need to transform yourself into a sever admin. To make this less painful, I recommend diving into The Debian’s Administrator Handbook.
I recently had the opportunity to begin exploring and toying around with Windows Phone 8 development.
Why you ask? Why not really, but mostly because I was giving a free phone and it’s an untapped market when it comes to apps. At this stage it’s not over diluted like the Android and iPhone stores are. That and of course there is an option to create apps using HTML, Javascript, and CSS – technologies I’ve used and mastered for years!
I actually submitted my first app last weekend – and sadly – it got rejected :( I was given two reasons; firstly I did set a default application icon, whoops my bad. Secondly, I didn’t properly handle the back button since there are “multiple pages” in my application.
It took me several hours to finally found the answer so I thought I would share it. Please note, this feels like a bit of a hack, but I wasn’t able to get the “suggested” solutions working…
Do you remember the beauty march in Wrocław last year? The amazing event happened and we’re proudly announcing that its sequel is coming in less than a month: the “fresh Ruby-oriented conference in Wrocław, Poland” will take place on March 1–3rd, 2013.
Visit this year’s website.
There’s a dashboard in one of our applications that shows data from various external services. The more data we were adding to this dashboard, the worse its performance and user experience was getting until the site eventually became unusable. It got to the point where its user had to wait 10 seconds or even more for the content to show up. Unfortunately, caching didn’t help much.
Here’s the story of what we did to reduce the load time.
The dashboard
Being a web developer typically means you’ve probably been around computers your whole life. This means that you’ve troubleshooted them, broke them, fixed them, fixed them for others, etc… As time has gone by and I’ve dedicated myself to the art and craft of development, I’ve slowly drifted away from supporting computers.
However, I recently upgraded my work laptop from Windows 7 to Windows 8 – what a frustrating experience this was! But not the purpose of this article, just part of the train tracks of a good story!
(Nuts and bolts of Magento? Maybe…)
Magento EE 1.11
Once in a while we’d like to intercept Magento’s “add to cart” event and do some fun things with that. Maybe apply a discount or add a specialty product, or as I’ll show in this case, block a user from adding a product to the cart.
As I usually like to show specific examples, let’s consider the following problem:
Using Magento’s EE customer segments we’d like to ensure that a person can purchase some “restricted” product only once, while they are in the given segment.
If they try to add this restricted product to the cart again, while being in our previously-designated segment, we’ll block that action and redirect them back to the cart with an error message.
The best way to handle these sorts of tasks is by employing Magento’s Event/Observer pattern.
Recently in a CakePHP app (2.x) I needed to return some XML from a Controller action, abnormally the manual was a little thin in this area and I just couldn't get it to return my specific view from an xml folder. This is what I had todo to get it running correctly.
Every so often there is a new buzz word in the web development/design industry. A few years ago it was HTML5 and CSS3. Now it seems to be “responsive design”. And of course this makes a lot of sense. With more and more Internet users accessing the content on their laptop or desktop PC, tablets, and mobile phones, websites need to be able to be ready to serve up the content in an appropriate fashion.
In this article, I want to take a step back and help simplify this process because by stopping and thinking just a little bit, it doesn’t need to be complicated. In fact it’s quite simple.
At the time of writing this article, my blog is only about 50% responsive, I am planning a new design soon that will take it to the next level.
Many of the web applications I build have to talk to other webservices. Sometimes those services are internal API servers, sometimes they are external. In both situations, I want a simple, easy to use client library.
In my previous post I went through the process of creating a contact form which allowed you to upload a file. In this post I'm going to follow on with that code and being writing tests to ensure that it's working as expected.
As I'm just getting started in Test Driven Developement (TDD) so these tests have come after the code was written, normally you would write tests before any appli...
It seems like it happened yesterday. I arrived at the flat in a crumbling tenement located in the Old Town of Wrocław and my journey into the Ruby world began. The community was already large and very active, so I wouldn’t call myself Columb, but—at least—I can tell you about my first year experience and share both bright and dark sides of the story.
Background
I didn’t join the awesome Monterail guys as a complete novice. I was working in the industry since 2007, mostly as a PHP programmer. As the world was moving forward, I felt like PHP kept standing in the same place, and to stand still is to move back.
RubyGems.org has been compromised.
The exploit could potentially tamper with some gems, therefore all of them are assumed to be unsafe to use at the moment. Which means that any deployment involving downloads of any gems from RubyGems.org should be carried out with extreme caution. All downloaded gems have to be verified in order to remain on the safe side.
The Ruby community reacted quickly— it’s now possible to compare checksums of downloaded gems with the checksums of their known-to-be-safe versions hosted on mirroring sites.
A new stable release of CakePHP has just been released a few days ago, version 2.3. With this many great new changes have come out of it. You can read the full change log here:
http://bakery.cakephp.org/articles/lorenzo/2013/01/28/cakephp_2_3_0_is_out
One of the things that immediately caught my mind was this great big bolded sentence:
IMPORTANT: Model::find('first') will now return an empty array when no records are found. Make sure you update your tests!
Immediately after reading this I thought major code changes were going to be required; however, luckily my fear was unfounded. Let me provide an example...
A new version of Forum has been released, version 3.3.0. Please download the new tag or view the documentation. If you have any questions, be sure to send me an email or comment on this post. If you run into any problems, be sure to report an issue on the Github repository.
Version: 3.3.0
Tested On: PHP 5.4.3, CakePHP 2.3.0, Composer
Requires: PHP 5.3, CakePHP 2, Composer
Commit Hash: 3fbe1526b2be48402c15ee67541306252d0fc992
Changes:
One of my most popular articles is howto upload files and images using CakePHP so I thought it would be a good idea to give it a little update using the latest version which is currently 2.2.5 and will be workable for the whole 2.x family.
I'll also combine the file uploading with a simple contact form which is a very common element in almost all websites and will hopefully provide you...
Dies ist eine Serie von Beiträgen über den Bau eines eigenen FreeNAS Servers.
Die Gehäuselüfter
Beginnen wir den Zusammenbau mit dem Austausch der Gehäuselüfter. Der alte
Gehäuselüfter lässt sich durch Lösen der vier Schrauben einfach aus der
Gehäusedecke entfernen. An dessen Stelle wird der 120mm Lüfter von be quiet!
gesetzt; das Gitter behalten wir natürlich bei.
I'm currently in the mood to cleanup all my Github repositories, and with this will come some changes. I am posting this to give a warning to anyone who is cloning my repositories either directly or via submodule, as some of the repository names (and URLs) will change. This overhaul is meant to free up some of my time as I plan to veer away from starting any new projects (unless it's part of a client request) and merely want to support my current projects with bug fixes and new features, if any. With this change, the following changes are happening:
The following projects will have their names changed: