Observations from 1000s of attorney websites

I have been working on a project recently that required going through 1000s of criminal defense attorney websites across the United States. Now I realize there are some "rules" on exactly how attorneys can advertise and what they can, and cannot, say in those advertisements. One thing is obvious though from looking at these sites. Either attorneys are overly cautious with their websites or the Internet is simply not an area where they feel they should devote marketing dollars.As phonebooks fade into the history books, more and more people use the Internet to find businesses. Personally, and I know I am not alone in this thought, when researching a business and deciding whether or not to do business with them, my first impression is their website. If the site looks like something from the mid-1990s and doesn't look like anyone has put a thought into updating it since then they are most likely going to get skipped over. Now this doesn't mean I am looking for some big fancy website, … [Read more...]

Google is evil

As much as Google likes to deny they are evil their drive for revenue has overtaken their drive to provide users the best product when it comes to search. They are using the ad dollars from search to subsidize the hundreds of business ideas the leadership comes up with. And people and governments are noticing. Jason Calacanis recently posted about how Apple was quietly building a search engine of their own and is posed to potentially take on, or over, Google. And I agree with him. It is clean, easy to use, not full of hundreds of ads, and provides the results I am looking for.While the way Google displays ads is definitely of concern and even I find myself having to double check I am not clicking on an ad sometimes. My bigger concern is their algorithm in general. While updates like Panda and Penguin are said to have eliminated search spam, I actually believe they increased the spam to some extent. When I search for a person I am usually trying to find one or two things about that … [Read more...]

Google Chrome Bookmarks – How to fix

I like Google Chrome as a browser and I used to like the Google Chrome bookmarks manager. Ever since it first appeared I found it much more reliable and faster than both IE and Firefox, and an added plus was that no matter what computer I was on, if I logged into Chrome I could easily pull up and manage my bookmarks. And up until recently I recommended to all my friends and family that they too should use Google Chrome. But in late April that all changed and I am not alone. Someone on the Google Chrome team thought that they were missing out on the Pinterest market and decided that the Google Chrome bookmarks should look more like Pinterest. Google is notorious for doing things like this. They did it with Google+ which was a failed experiment in social networking and now they are trying to recreate the bookmarks in Chrome which is also a failing experiment.Browser bookmarks are supposed to be used to a quick and easy way to remember and manage web pages a user visits. Unlike … [Read more...]

My Problem with Twitter

I will probably draw some criticism for this post, but here it goes. I have a love/hate relationship with Twitter. It is a great tool for keeping up with breaking news and to communicate quickly with people. But Twitter has a problem, actually two problems, and I know I am not alone in this thought process.First, there is not a month that doesn't go by where you don't hear of a Twitter account being hacked or taken over. The problem is that I think Twitter could either significantly reduce this issue or solve it entirely if they would implement better security for their users. Twitter currently offers Two-Factor Authentication (2FA) for users, but their implementation of 2FA is so far off from a standard implementation that they have done more harm than good by implementing it. The root of the issue is that Twitter only allows a single account to be tied to a single phone number. For some users that may have multiple accounts this presents a serious issue. Twitter could fix this … [Read more...]

Pass parameters to middleware in Laravel 5

I recently had the need to pass parameters to middleware for authentication purposes. I wanted to declare a custom role for each route, have that role passed to the middleware, and if the user held that role the route would pass. The solution actually turned out to be quite simple and using a solution I found for Laravel 4 I was able to make this work for Laravel 5. In particular I made this solution for use with Cartalyst Sentry, but can be easily adapted to work with any use.First things first, let's create a simple middleware. We will call this RoleChecker and save it to the Http\Middleware directory. Note that you will need to change the "YourAppNameHere" name to work with your installation. [crayon-55be1c3f32663373176761/] Now we need Laravel to recognize our custom middleware so we open the Http/Kernel.php file and add the following line to the $routeMiddleware array: [crayon-55be1c3f32672449305105/] Finally, we can start passing parameters to our … [Read more...]

mySQL Foreign Key On Delete Cascade Not Working

I am embarrassed to say I spent 3 hours today trying to figure out why my foreign keys were not working properly in mySQL. I had several child tables that all had records related to a parent table and was utilizing foreign keys with on delete cascade set up to automatically delete records in the child tables. I went through the common symptoms:Using InnoDB engine on the tables in question (mySQL defaults to myISAM if you don't specify and myISAM does not support foreign keys). Charsets and collation are identical on all parent and child tables. Datatypes are the same for the columns. Index set on columns in child tables and in parent table if not primary keys. No inline references on the column specificationsI tried recreating the tables, removing and recreating the indexes, removing and recreating the foreign keys, and always checking the error logs. Nothing worked. I searched Google up and down (at least I thought I did) and couldn't find anything either. … [Read more...]

Quick thoughts on the Google Europe Antitrust Accusation

Today's news is highlighted by the European Union bringing a formal antitrust complaint against Google. I for one have a big problem with this complaint. While I have not fully read the complaint I am going to make several assumptions here. The first assumption I will make is that the complaint primarily focuses on the Google search results and, in particular, results returned when a user searches for a product or is "shopping". The second assumption I will make is that the first assumption is not the entire case against Google. I make the second assumption only because if it is, it shows how far out of touch some people are with technology and how it is utilized. I say this because I don't think the EU has a good case for the first assumption.The articles I have read today all speak of how the EU sees Google returning results that have been paid for (sponsored) at the top of the search results over competitors as anti-competitive. First, let's simplify this a bit. If I turn on the … [Read more...]

Install OrientDB on Ubuntu 12.04

Install OrientDBFirst things first let's make sure everything is up-to-date on our system and you have the Java Development Kit installed:[crayon-55be1c3f3356c388396085/]Pick a spot for the OrientDB install: [crayon-55be1c3f33577304311894/]Download the latest version of OrientDB (Note: This downloads the community edition of OrientDB)[crayon-55be1c3f3357e710809982/]Once we have downloaded the file go ahead an unpack it:[crayon-55be1c3f33584950665613/]Once you have unpacked the tar file, to make things easy to work with you can delete the tar file. Also, to make directory names simpler you can create a symlink to the version directory:[crayon-55be1c3f3358a601293941/]Once that is complete you will need to setup your username and password for the database:[crayon-55be1c3f33590378300467/]Go to the section <storages> (use Ctrl-W to search). You will have to add the following line between <storages> and … [Read more...]