by Kevin Schroeder | 1:33 pm

We don’t need better authentication

I saw a tweet today concerning authentication. Monaco, at White House cybersecurity summit at Stanford, calls for replacing passwords with more secure technologies. — Paul Krill (@pjkrill) February 13, 2015 When reading that the

  READ ARTICLE
521 words ()
by Kevin Schroeder | 9:44 am

Net Neutrality is about money and power, not openess

For all the talk of getting money out of politics we don’t really seem to understand what draws it there in the first place.  Why does money funnel into politics?  Because in politics there

  READ ARTICLE
1579 words ()
by Kevin Schroeder | 12:24 pm

What being a foster parent is really like

I wrote this many months ago but never published it.  It’s a bit of a rant and I apologize for that.  To be honest I don’t really know why I’m publishing it.  Maybe it’s

  READ ARTICLE
7062 words ()
by Kevin Schroeder | 11:58 am

4 charts that are guaranteed to make you a better performance detective

I was giving the Magento Performance and Optimization for System Administrator’s course today and I said something that is either borderline brilliant, stupid, or common knowledge.  What I said was something along the lines

  READ ARTICLE
212 words ()
by Kevin Schroeder | 8:04 am

On the state of software development communities and industry

[Post redacted due to concerns that any tenets deliberated or propositions discussed will be intentionally misrepresented or used as reductio ad ridiculum and may be used as fodder for personal attacks, loss of standing or accusations of misconduct]

  READ ARTICLE
38 words ()
by Kevin Schroeder | 9:14 am

What to make of TIOBE’s PHP results

A few weeks ago Twitter was a storm of activity around the TIOBE index.  PHP had dropped two spots having been overtaken by Python and C++.  Most of the activity was not from the

  READ ARTICLE
799 words ()
by Kevin Schroeder | 9:33 pm

Migrated the blog… to WordPress

… to WordPress? Yep.  I had written my blog from scratch, partially because I wanted to use it as a testing ground for various ideas and such.  However, part of the problem of maintaining

  READ ARTICLE
240 words ()
by Kevin Schroeder | 12:00 am

I hate config files

I hate config files. There, I said it. Made a change to your configuration? Database? Temp location? Gotta redeploy your application. Even if you have an awesome deployment mechanism it just seems somehow wrong to have to redeploy your app to make a configuration change. From a security standpoint, I don’t particularly like having passwords and such being stored in a source repository. Or making it part of your build process. Or manually editing files in production.

  READ ARTICLE
350 words ()
by Kevin Schroeder | 12:00 am

Objections to dynamic typing

I am about to head out to Magento Imagine to speak on queuing and scalability. So what is today’s blog post about? Dynamic typing; which has absolutely nothing to do with scalability.
Every once in a while I inject my opinions into places where they are not welcome. I have heard from people in the staticly-typed realm of how amateur dynamic typing is. Some people are interested in understanding how to use dynamic typing, others, not so much. So what I would like to do is talk about some of the arguements made against dynamic typing. Clearly PHP will be my reference point, but many of my points will be salient across many dynamically typed languages.
The biggest misconception about PHP is that it is a strictly dynamicly typed language. In other words that cannot have typed variables. Where you are using the OOP mechanisms in PHP, you have the opportunity to strictly type your variables.class Test {}
class ExecuteTest
{
public function exec(Test $test)
{
doSomethingWithTest($test);
}
}
$et = new ExecuteTest();
$et->exec(new Test());
What happens when this code gets compiled?Catchable fatal error: Argument 1 passed to ExecuteTest::exec() must be an instance of Test, instance of Test2 given, called in test.php on line 17 and defined in test.php on line 9
Fatal error. This is because the type of object passed in was incorrect. So data types do exist in PHP and many other languages. The only downside is that you need to actually run the code on your web server or in a unit test to compile it. Some would (and have argued extensively) that this is a significant drawback. There’s truth to that, but on a very limited scope. Is it a drawback? Yes. Is it signficant? Not by a long shot. Whether it’s PHP, Java, C, Perl, Ruby, VB, C#, JavaScript, etc. etc, if you deploy code that you haven’t tested then you deserve every error and every sleepless night you get. It’s called being responsible for your code. And don’t think that having your code pre-compiled is much better. I have a lot of compiled applications running on my computer. Cakewalk SONAR, Firefox, Apache, PHP (the binaries), MySQL, Tweetdeck, Java, etc., etc. And you know what? Shit still happens with compiled code! Sometimes even type-related errors! Compiling your code ahead of time as you do with C, Java, and the like does not protect you from type-based errors. Can you catch some fat-fingered errors? Sure. Are you safe? No.
For example, take this Java codeSystem.out.print(
Integer.MAX_VALUE
);
Running it provides an output of2147483647
What about this code?System.out.print(
Integer.MAX_VALUE + 1
);

  READ ARTICLE
1577 words ()
by Kevin Schroeder | 12:00 am

How to NOT sell an upgrade, @CakewalkInc

So, I work in software and so I know that sometimes a software vendor is not able to do things in as streamlined a manner as possible. However, Cakewalk has taken the cake (no pun intended) when it comes to doing whatever they can to piss off their customers. I have been using (and upgrading) Cakewalk software for almost 10 years. When their new X1 was announced I was all kinds of giddy. When it was released I was even more so… until I tried to upgrade.

  READ ARTICLE
286 words ()