PHPUnit – Integration Tests Console Output

When writing integration tests we have special group of slow tests that do a lot of stuff like performing hundreds of downloads or editing thousands of entries. In some cases one of the actions can trigger fatal error and the message would not be specific enough to determine which of those actions broke everything.

Here is a neat trick to enable any test to show console output, it uses fwrite to write to standard I/O stream: Continue reading

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

Recover Linux Dual Boot after update to Windows 10

Here’s the problem: I dual boot Windows 7 and Ubuntu 14.04, after deciding to upgrade Windows to 10, I ended up with upgrade partially finished and GRUB going into rescue mode.

That means that Windows messed up GRUB and possibly corrupted Linux’s partition. Here are basic steps I had to take to recover Linux + Windows dual boot (make sure you have a live USB to boot from): 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.

Fix No Sound in Steam for Linux Problem

There is an issue with Steam for Linux that seem to be persistent on machines with HDMI enabled displays or similar unused HD audio inputs.

Steam for Linux seems to use these controllers despite them being ignored by the system, which results in weirdly muted games while YouTube as well as any sound tests are loud and clear.

To fix this issue open sound settings and select analog controller or (for pulseaudio sound server) install pulseaudio volume control

sudo apt-get install pavucontrol

under “Output Devices” check if it tries to use the HD audio controller to output sound, go to “Configuration” and disable the HD audio controller profile so that analog audio will always be used.