What is “real programming”?

Here is one disturbing read.

“Real programming”? Come on, sure webdev has its share of people who basically install and use content management systems and adjust appearance without implementing any functionality, but developing software that lives on server and can be used by client computers is as real as it gets.

Frameworks do the low level job for us these days, true. Just as C language does low level job so that programmers don’t have to use machine code. The idea of the lower level programming being more real then high level one is just silly and can do real damage as in above post.

Laravel – How To Fix Wrong Domain in Queue Jobs

There is a tricky problem that happens when queued job tries to get the URL (via URL helper or from config) – it doesn’t seem to “notice” the .env / config app.url setting.

The reason is that somehow the queue worker misses the current environment name (might only happen if it is managed system wide via upstart or similar service).

The solution would be to include the –env flag when running queue worker like that: Continue reading

Laravel Goodies

Here’s the list of packages that make Laravel development even easier.

Development

PHPUnit – require-dev or require in composer.json

"phpunit/phpunit": "~4.0" 

and then run tests in cli directly from installed binary:

vendor/bin/phpunit

PHPSpec – require-dev or require in composer.json

"phpspec/phpspec": "~2.1" 

and then similar to PHPUnit, run the tests using binary in vendor/bin

vendor/bin/phpspec desc App/Test

Profiling / debugginglaravel-debugbar

IDE auto-completion / PHPDoclaravel-ide-helper

Faker – use to seed Database with realistic Data.
require-dev or require in composer.json

"fzaninotto/faker": "1.4.*@dev"

and then just get an instance

$faker = Faker\Factory::create(); 

and use it to fake just about anything.
Continue reading

AI Web Develoment

Here is a fancy new project: the world’s first AI platform that designs websites. And the Worlds very first AI developer seems to speak English and have a sense of humor 🙂

Here is what they say on their website:

This is not a website builder. This is your personal AI web developer. Its first masterpiece is the website you’re looking at right now.

Sure thing it makes sense to look into the code, turns out there are actually some helpful comments in English, like these:

// Don't follow link
      event.preventDefault();

or even like these:

catch (e) {
    // noop
  }

Man, it’s Super-Future-Cyberpunk-Christmas-Today, this things seems like fun until it actually decides to take over the world.

Update: Local Subdomains under Ubuntu 14.04 Linux and Apache 2.4

Here we went through the Ubuntu 13.10 process, Ubuntu 14.04, though using the same Apache 2.4, again has a small thing that have to be done differently:

Config files in sites-available have a .conf (and not .config) extension
gksudo gedit /etc/apache2/sites-available/project.conf

As for the rest, previous Ubuntu 13.10 Tutorial can be used for newer Ubuntu as well.

Local Subdomains under Ubuntu Linux and Apache 2.4 Tutorial

The whole process was described in this article, but there are few quirks to fix in newer Ubuntu (namely 13.10 / Apache 2.4).

  1. Every config file in sites-available has to have a .config extension now, so instead of
    sudo nano /etc/apache2/sites-available/project
    use
    sudo nano /etc/apache2/sites-available/project.config
    if upgrading fist add the extension to the /etc/apache2/sites-available/project config file, then delete /etc/apache2/sites-enabled/project and re-run “sudo a2ensite project” / restart apache.
  2. If your project root is located in your home directory you might get a persistent 403 / Forbidden error, that (weird as it is) has nothing to do with Linux permissions. To fix it add “Require all granted” directory directive. Here is how the new config file might look:
    <VirtualHost *:80>
    DocumentRoot /home/user/project
    ServerName project.localhost
    <Directory /home/user/project>
    AllowOverride All
    Order allow,deny
    Allow from all
    Require all granted
    </Directory>
    </VirtualHost>

So here are updated instructions for Ubuntu 13.10+ (and maybe some older versions). Continue reading

How To Fix Laravel 4.0 – 4.1 Upgrade

Recently I’ve upgraded a Laravel 4 application from version 4.0.10 to 4.1.18. Despite Laravel’s website having a nice upgrade guide I did encounter few quirks that needed a little attention and some extra work.

So the very first thing to do, would be to follow the mentioned guide, hopefully you’ll end up with working new version of your application and wouldn’t need anything else (use “php artisan” command in your application folder to check out the current Laravel version).

Though I ended up with the following error each time I tried to run an artisan command (including simple “php artisan”):

PHP Fatal error: Class 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider' not found ...

And there were indeed no ConsoleSupportServiceProvider in my installation. Surely “composer.phar update” did not work as well as it tries to execute “php artisan …” commands and suggested “composer.phar update –no-scripts” worked, but didn’t fix anything.

After a bit of research I ended up with a kind of “clean install” solution, so if you have the same or similar issue you may try following: Continue reading