Laughing Buddha Body Piercing

Years ago I took a web design gig on Craigslist. The owner of Laughing Buddha Tattoo shop in Seattle was looking for a new website. In time, sales from the new site surged! The site has evolved over the years and Michelle Hamilton eventually sold the shop here in Seattle and decided to focus on her body piercing business in California. The new business kept the rights to use the name “Laughing Buddha” and so a new domain – www.laughingbuddhabodypiercing.com – was born.

…and the new site looks great!

 

Screen Shot 2015-12-15 at 12.33.33 PM

Posted in Creative Work, Marketing & Branding, Portfolio, Techno-babble, WordPress | Leave a comment

Yekra Films is no more!

So, I just heard through the grapevine that Yekra Films is no more. Apparently, this was quite sudden. I just recently watched a fantastic documentary there called Shadowing and had referred it to friends who reported the link dead. Year was the best place to discover new independent film. What about all those filmmakers?Where will they showcase their films now?

Posted in Reviews | 3 Comments

New Handl Defense Website

Handl Defense has a new and improved website! This go-around, we decided to focus on user experience and make the website super easy to use.

Handl Defense

We also took our time with the mobile styles, making sure the site is just as easy to use on smaller screens.

Handl Defense iphone

 

We even added some cool tools to help customers find parts. Go see it in action!

 

 

 

Posted in Creative Work, Marketing & Branding, Portfolio, WordPress | Leave a comment

ALEX IS MISSING

Here’s a short film I produced for the Burien UFO Film Festival (April 1, 2015).

WINNER: 2nd Best Film, Best Director, Best Actor, Best Screenplay, Best Use of a Man in Black.

Special Thanks to my production crew and actors: Joe Melberg (Costume Design), Ian Kristensen, Jason Plumb, Ian Davino.

 

Posted in Creative Work, Portfolio | Leave a comment

Just completed a few upgrades to the ClearSign website…

Thermal Exposure just completed a few upgrades to the ClearSign website…

Clearsign

If you haven’t heard of ClearSign before, well now you have! And you’ll be sure to hear the name a lot more. ClearSign is developing some radical new technologies to make combustion more energy efficient and less wasteful. I’ve seen this technology in action and witnessed their rapid progress from the beginning. This is the Future of Fire™ for sure!

NASDAQ: CLIR

Posted in Creative Work, Marketing & Branding, Portfolio, WordPress | Leave a comment

Cole Smithey Redesign

I recently had the privilege of working with film critic and prolific video blogger Cole Smithey. Ted Rall (the political cartoonist) recommended Cole and I work together after I helped Ted with his site.

Cole’s project required quite a lot of problem solving since his website is hosted by TypePad — as service I had only heard of on occasion and never worked with.

I won’t offer any criticisms of TypePad, but I will say that I had to get VERY creative with the problem solving.

Thermal Exposure created the design strategy I had in the back of my head but didn’t realize it until I saw their vision. They worked tirelessly with me to address every tiny detail necessary to flesh out a site that far exceeds my wildest dreams. If you don’t believe me just look.

—Cole Smithey

And wow, does Cole know about film! Check out this review of American Sniper:

Cole Smithey

 

 

Posted in Marketing & Branding, Portfolio, Resources, WordPress | Leave a comment

Midwest Energy Emissions Corp.

Midwest Energy Emissions Corporation has a new website!

ME2C

These folks have created additives to curb mercury emissions from coal burning plants. I love it!

 

Posted in Creative Work, Portfolio | Leave a comment

Fix broken Apache config after Upgrading to OS X Yosemite

I finally bit the bullet and upgraded to OS X Yosemite. If you’re like me and use your mac for local web development, you may have noticed that your Apache configuration is a little out of wack.

I’ve written a few articles on installing and configuring WordPress on OS X that seem pretty popular. So, in case you’ve followed my instructions in the past (or even if you haven’t), you might find the following useful in getting your Apache configuration back to the way you had it (or close enough).

In OS X Yosemite, Apple has upgraded Apache from 2.2 to 2.4 — and there are some big changes.

I took some notes in the process of fixing it. You’ll need to edit a couple of files located in /private/etc/apache2/ . You’ll need a text editor capable of opening hidden files. (I use BBEdit). The files to edit are:

/private/etc/apache2/httpd.conf

/private/etc/apache2/extra/httpd-vhosts.conf

Note that in my setup, I use vhosts so that I can run multiple local sites in development.

Your original Apache configuration file has been replaced. The old one (pre-Yosemite-upgrade) is located at /private/etc/apache2/httpd.conf.pre-update if you want to see what’s changed.

Edit httpd.conf

There are some lines to uncomment (remove the ‘#’ at the beginning), and you’ll also need to change a few lines. Please note that if the following line numbers don’t jive with your copy, I’ve included the entirety of my httpd.conf file at the bottom of this post.

Uncomment the following lines:

Uncomment 490:
Include /private/etc/apache2/extra/httpd-languages.conf

Uncomment 493:
Include /private/etc/apache2/extra/httpd-userdir.conf

Uncomment line 499:
Include /private/etc/apache2/extra/httpd-vhosts.conf

Change line 220 from:
AllowOverride none
to:
AllowOverride All

Change line 250 from:
Options FollowSymLinks Multiviews
to:
Options Indexes FollowSymLinks MultiViews

Change line 258 from:
AllowOverride None
to:
AllowOverride All

Change line 271 from:
DirectoryIndex index.html
to:
DirectoryIndex index.php

Enable Modules

There are a load of new modules for Apache 2.4. By default, many of these modules which you have previously been using have been disabled (commented out with a ‘#’). You’ll need to re-enable a bunch of them. In particular, I think these are the important ones:

Uncomment these lines so the modules are active:
php5_module
rewrite_module
userdir_module
speling_module
actions_module
imagemap_module
vhost_alias_module
dav_lock_module
dav_lock_module
dav_fs_module
cgi_module
info_module
asis_module
dav_module
expires_module
mime_magic_module
log_config_module
log_debug_module
log_forensic_module
logio_module

or you can simply replace the entire module section with what I provide in the code snippet below. Keep in mind, however, that I don’t understand what all of these modules do, exactly. So, do so at your own risk and discretion.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule authn_file_module libexec/apache2/mod_authn_file.so
LoadModule authn_dbm_module libexec/apache2/mod_authn_dbm.so
LoadModule authn_anon_module libexec/apache2/mod_authn_anon.so
LoadModule authn_dbd_module libexec/apache2/mod_authn_dbd.so
LoadModule authn_socache_module libexec/apache2/mod_authn_socache.so
LoadModule authn_core_module libexec/apache2/mod_authn_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule authz_groupfile_module libexec/apache2/mod_authz_groupfile.so
LoadModule authz_user_module libexec/apache2/mod_authz_user.so
LoadModule authz_dbm_module libexec/apache2/mod_authz_dbm.so
LoadModule authz_owner_module libexec/apache2/mod_authz_owner.so
LoadModule authz_dbd_module libexec/apache2/mod_authz_dbd.so
LoadModule authz_core_module libexec/apache2/mod_authz_core.so
#LoadModule authnz_ldap_module libexec/apache2/mod_authnz_ldap.so
LoadModule access_compat_module libexec/apache2/mod_access_compat.so
LoadModule auth_basic_module libexec/apache2/mod_auth_basic.so
LoadModule auth_form_module libexec/apache2/mod_auth_form.so
LoadModule auth_digest_module libexec/apache2/mod_auth_digest.so
LoadModule allowmethods_module libexec/apache2/mod_allowmethods.so
LoadModule file_cache_module libexec/apache2/mod_file_cache.so
LoadModule cache_module libexec/apache2/mod_cache.so
LoadModule cache_disk_module libexec/apache2/mod_cache_disk.so
#LoadModule cache_socache_module libexec/apache2/mod_cache_socache.so
#LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
#LoadModule socache_dbm_module libexec/apache2/mod_socache_dbm.so
#LoadModule socache_memcache_module libexec/apache2/mod_socache_memcache.so
#LoadModule watchdog_module libexec/apache2/mod_watchdog.so
#LoadModule macro_module libexec/apache2/mod_macro.so
#LoadModule dbd_module libexec/apache2/mod_dbd.so
#LoadModule dumpio_module libexec/apache2/mod_dumpio.so
#LoadModule echo_module libexec/apache2/mod_echo.so
#LoadModule buffer_module libexec/apache2/mod_buffer.so
#LoadModule data_module libexec/apache2/mod_data.so
#LoadModule ratelimit_module libexec/apache2/mod_ratelimit.so
LoadModule reqtimeout_module libexec/apache2/mod_reqtimeout.so
#LoadModule ext_filter_module libexec/apache2/mod_ext_filter.so
LoadModule request_module libexec/apache2/mod_request.so
#LoadModule include_module libexec/apache2/mod_include.so
LoadModule filter_module libexec/apache2/mod_filter.so
#LoadModule reflector_module libexec/apache2/mod_reflector.so
#LoadModule substitute_module libexec/apache2/mod_substitute.so
#LoadModule sed_module libexec/apache2/mod_sed.so
#LoadModule charset_lite_module libexec/apache2/mod_charset_lite.so
#LoadModule deflate_module libexec/apache2/mod_deflate.so
#LoadModule xml2enc_module libexec/apache2/mod_xml2enc.so
#LoadModule proxy_html_module libexec/apache2/mod_proxy_html.so
LoadModule mime_module libexec/apache2/mod_mime.so
#LoadModule ldap_module libexec/apache2/mod_ldap.so
LoadModule log_config_module libexec/apache2/mod_log_config.so
LoadModule log_debug_module libexec/apache2/mod_log_debug.so
LoadModule log_forensic_module libexec/apache2/mod_log_forensic.so
LoadModule logio_module libexec/apache2/mod_logio.so
LoadModule env_module libexec/apache2/mod_env.so
LoadModule mime_magic_module libexec/apache2/mod_mime_magic.so
LoadModule expires_module libexec/apache2/mod_expires.so
LoadModule headers_module libexec/apache2/mod_headers.so
#LoadModule usertrack_module libexec/apache2/mod_usertrack.so
#LoadModule unique_id_module libexec/apache2/mod_unique_id.so
LoadModule setenvif_module libexec/apache2/mod_setenvif.so
LoadModule version_module libexec/apache2/mod_version.so
#LoadModule remoteip_module libexec/apache2/mod_remoteip.so
LoadModule proxy_module libexec/apache2/mod_proxy.so
LoadModule proxy_connect_module libexec/apache2/mod_proxy_connect.so
LoadModule proxy_ftp_module libexec/apache2/mod_proxy_ftp.so
LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so
LoadModule proxy_fcgi_module libexec/apache2/mod_proxy_fcgi.so
LoadModule proxy_scgi_module libexec/apache2/mod_proxy_scgi.so
#LoadModule proxy_fdpass_module libexec/apache2/mod_proxy_fdpass.so
LoadModule proxy_wstunnel_module libexec/apache2/mod_proxy_wstunnel.so
LoadModule proxy_ajp_module libexec/apache2/mod_proxy_ajp.so
LoadModule proxy_balancer_module libexec/apache2/mod_proxy_balancer.so
LoadModule proxy_express_module libexec/apache2/mod_proxy_express.so
LoadModule session_module libexec/apache2/mod_session.so
LoadModule session_cookie_module libexec/apache2/mod_session_cookie.so
LoadModule session_dbd_module libexec/apache2/mod_session_dbd.so
LoadModule slotmem_shm_module libexec/apache2/mod_slotmem_shm.so
#LoadModule slotmem_plain_module libexec/apache2/mod_slotmem_plain.so
#LoadModule ssl_module libexec/apache2/mod_ssl.so
#LoadModule dialup_module libexec/apache2/mod_dialup.so
LoadModule lbmethod_byrequests_module libexec/apache2/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module libexec/apache2/mod_lbmethod_bytraffic.so
LoadModule lbmethod_bybusyness_module libexec/apache2/mod_lbmethod_bybusyness.so
#LoadModule lbmethod_heartbeat_module libexec/apache2/mod_lbmethod_heartbeat.so
LoadModule unixd_module libexec/apache2/mod_unixd.so
#LoadModule heartbeat_module libexec/apache2/mod_heartbeat.so
#LoadModule heartmonitor_module libexec/apache2/mod_heartmonitor.so
LoadModule dav_module libexec/apache2/mod_dav.so
LoadModule status_module libexec/apache2/mod_status.so
LoadModule autoindex_module libexec/apache2/mod_autoindex.so
LoadModule asis_module libexec/apache2/mod_asis.so
LoadModule info_module libexec/apache2/mod_info.so
LoadModule cgi_module libexec/apache2/mod_cgi.so
LoadModule dav_fs_module libexec/apache2/mod_dav_fs.so
LoadModule dav_lock_module libexec/apache2/mod_dav_lock.so
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
LoadModule negotiation_module libexec/apache2/mod_negotiation.so
LoadModule dir_module libexec/apache2/mod_dir.so
LoadModule imagemap_module libexec/apache2/mod_imagemap.so
LoadModule actions_module libexec/apache2/mod_actions.so
LoadModule speling_module libexec/apache2/mod_speling.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule alias_module libexec/apache2/mod_alias.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule php5_module libexec/apache2/libphp5.so
#LoadModule hfs_apple_module libexec/apache2/mod_hfs_apple.so

Edit httpd-vhosts.conf

(Located in /private/etc/apache2/extra/)

Apache 2.4 has introduced a new method of Authorization and Access control. You can read all about it here.

In your vhosts configuration file, you’ll need to make some changes.

Look for any lines in your vhosts files that look like this:

<Directory />
Allow from all
</Directory>

and change them to look like this:

<Directory />
Require all granted
</Directory>

As another example, here’s what a typical site definition looks like in my vhosts file:


1
2
3
4
5
6
7
8
9
10
11
<VirtualHost *:80>
 ServerAdmin alex@email.com
 DocumentRoot "/Users/Alex/Sites/thermalexposure.com"
 ServerName thermalexposure.new
 ServerAlias www.thermalexposure.new
 ErrorLog "/private/var/log/apache2/thermal.localhost-error_log"
 CustomLog "/private/var/log/apache2/thermal.localhost-access_log" common
 <Directory />
 Require all granted
 </Directory>
</VirtualHost>

Just gimme the code.

Here’s a copy of the whole httpd.conf file which you can use to simply replace the content of the file, if you prefer the quick fix.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
#
# This is the main Apache HTTP server configuration file. It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
# In particular, see
# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html>
# for a discussion of each configuration directive.
#
# Do NOT simply read the instructions in here without understanding
# what they do. They're here only as hints or reminders. If you are unsure
# consult the online docs. You have been warned.
#
# Configuration and logfile names: If the filenames you specify for many
# of the server's control files begin with "/" (or "drive:/" for Win32), the
# server will use that explicit path. If the filenames do *not* begin
# with "/", the value of ServerRoot is prepended -- so "logs/access_log"
# with ServerRoot set to "/usr/local/apache2" will be interpreted by the
# server as "/usr/local/apache2/logs/access_log", whereas "/logs/access_log"
# will be interpreted as '/logs/access_log'.

#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# Do not add a slash at the end of the directory path. If you point
# ServerRoot at a non-local disk, be sure to specify a local disk on the
# Mutex directive, if file-based mutexes are used. If you wish to share the
# same ServerRoot for multiple httpd daemons, you will need to change at
# least PidFile.
#
ServerRoot "/usr"

#
# Mutex: Allows you to set the mutex mechanism and mutex file directory
# for individual mutexes, or change the global defaults
#
# Uncomment and change the directory if mutexes are file-based and the default
# mutex file directory is not on a local disk or is not appropriate for some
# other reason.
#
# Mutex default:/private/var/run

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 80

#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule authn_file_module libexec/apache2/mod_authn_file.so
LoadModule authn_dbm_module libexec/apache2/mod_authn_dbm.so
LoadModule authn_anon_module libexec/apache2/mod_authn_anon.so
LoadModule authn_dbd_module libexec/apache2/mod_authn_dbd.so
LoadModule authn_socache_module libexec/apache2/mod_authn_socache.so
LoadModule authn_core_module libexec/apache2/mod_authn_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule authz_groupfile_module libexec/apache2/mod_authz_groupfile.so
LoadModule authz_user_module libexec/apache2/mod_authz_user.so
LoadModule authz_dbm_module libexec/apache2/mod_authz_dbm.so
LoadModule authz_owner_module libexec/apache2/mod_authz_owner.so
LoadModule authz_dbd_module libexec/apache2/mod_authz_dbd.so
LoadModule authz_core_module libexec/apache2/mod_authz_core.so
#LoadModule authnz_ldap_module libexec/apache2/mod_authnz_ldap.so
LoadModule access_compat_module libexec/apache2/mod_access_compat.so
LoadModule auth_basic_module libexec/apache2/mod_auth_basic.so
LoadModule auth_form_module libexec/apache2/mod_auth_form.so
LoadModule auth_digest_module libexec/apache2/mod_auth_digest.so
LoadModule allowmethods_module libexec/apache2/mod_allowmethods.so
LoadModule file_cache_module libexec/apache2/mod_file_cache.so
LoadModule cache_module libexec/apache2/mod_cache.so
LoadModule cache_disk_module libexec/apache2/mod_cache_disk.so
#LoadModule cache_socache_module libexec/apache2/mod_cache_socache.so
#LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
#LoadModule socache_dbm_module libexec/apache2/mod_socache_dbm.so
#LoadModule socache_memcache_module libexec/apache2/mod_socache_memcache.so
#LoadModule watchdog_module libexec/apache2/mod_watchdog.so
#LoadModule macro_module libexec/apache2/mod_macro.so
#LoadModule dbd_module libexec/apache2/mod_dbd.so
#LoadModule dumpio_module libexec/apache2/mod_dumpio.so
#LoadModule echo_module libexec/apache2/mod_echo.so
#LoadModule buffer_module libexec/apache2/mod_buffer.so
#LoadModule data_module libexec/apache2/mod_data.so
#LoadModule ratelimit_module libexec/apache2/mod_ratelimit.so
LoadModule reqtimeout_module libexec/apache2/mod_reqtimeout.so
#LoadModule ext_filter_module libexec/apache2/mod_ext_filter.so
LoadModule request_module libexec/apache2/mod_request.so
#LoadModule include_module libexec/apache2/mod_include.so
LoadModule filter_module libexec/apache2/mod_filter.so
#LoadModule reflector_module libexec/apache2/mod_reflector.so
#LoadModule substitute_module libexec/apache2/mod_substitute.so
#LoadModule sed_module libexec/apache2/mod_sed.so
#LoadModule charset_lite_module libexec/apache2/mod_charset_lite.so
#LoadModule deflate_module libexec/apache2/mod_deflate.so
#LoadModule xml2enc_module libexec/apache2/mod_xml2enc.so
#LoadModule proxy_html_module libexec/apache2/mod_proxy_html.so
LoadModule mime_module libexec/apache2/mod_mime.so
#LoadModule ldap_module libexec/apache2/mod_ldap.so
LoadModule log_config_module libexec/apache2/mod_log_config.so
LoadModule log_debug_module libexec/apache2/mod_log_debug.so
LoadModule log_forensic_module libexec/apache2/mod_log_forensic.so
LoadModule logio_module libexec/apache2/mod_logio.so
LoadModule env_module libexec/apache2/mod_env.so
LoadModule mime_magic_module libexec/apache2/mod_mime_magic.so
LoadModule expires_module libexec/apache2/mod_expires.so
LoadModule headers_module libexec/apache2/mod_headers.so
#LoadModule usertrack_module libexec/apache2/mod_usertrack.so
#LoadModule unique_id_module libexec/apache2/mod_unique_id.so
LoadModule setenvif_module libexec/apache2/mod_setenvif.so
LoadModule version_module libexec/apache2/mod_version.so
#LoadModule remoteip_module libexec/apache2/mod_remoteip.so
LoadModule proxy_module libexec/apache2/mod_proxy.so
LoadModule proxy_connect_module libexec/apache2/mod_proxy_connect.so
LoadModule proxy_ftp_module libexec/apache2/mod_proxy_ftp.so
LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so
LoadModule proxy_fcgi_module libexec/apache2/mod_proxy_fcgi.so
LoadModule proxy_scgi_module libexec/apache2/mod_proxy_scgi.so
#LoadModule proxy_fdpass_module libexec/apache2/mod_proxy_fdpass.so
LoadModule proxy_wstunnel_module libexec/apache2/mod_proxy_wstunnel.so
LoadModule proxy_ajp_module libexec/apache2/mod_proxy_ajp.so
LoadModule proxy_balancer_module libexec/apache2/mod_proxy_balancer.so
LoadModule proxy_express_module libexec/apache2/mod_proxy_express.so
LoadModule session_module libexec/apache2/mod_session.so
LoadModule session_cookie_module libexec/apache2/mod_session_cookie.so
LoadModule session_dbd_module libexec/apache2/mod_session_dbd.so
LoadModule slotmem_shm_module libexec/apache2/mod_slotmem_shm.so
#LoadModule slotmem_plain_module libexec/apache2/mod_slotmem_plain.so
#LoadModule ssl_module libexec/apache2/mod_ssl.so
#LoadModule dialup_module libexec/apache2/mod_dialup.so
LoadModule lbmethod_byrequests_module libexec/apache2/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module libexec/apache2/mod_lbmethod_bytraffic.so
LoadModule lbmethod_bybusyness_module libexec/apache2/mod_lbmethod_bybusyness.so
#LoadModule lbmethod_heartbeat_module libexec/apache2/mod_lbmethod_heartbeat.so
LoadModule unixd_module libexec/apache2/mod_unixd.so
#LoadModule heartbeat_module libexec/apache2/mod_heartbeat.so
#LoadModule heartmonitor_module libexec/apache2/mod_heartmonitor.so
LoadModule dav_module libexec/apache2/mod_dav.so
LoadModule status_module libexec/apache2/mod_status.so
LoadModule autoindex_module libexec/apache2/mod_autoindex.so
LoadModule asis_module libexec/apache2/mod_asis.so
LoadModule info_module libexec/apache2/mod_info.so
LoadModule cgi_module libexec/apache2/mod_cgi.so
LoadModule dav_fs_module libexec/apache2/mod_dav_fs.so
LoadModule dav_lock_module libexec/apache2/mod_dav_lock.so
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
LoadModule negotiation_module libexec/apache2/mod_negotiation.so
LoadModule dir_module libexec/apache2/mod_dir.so
LoadModule imagemap_module libexec/apache2/mod_imagemap.so
LoadModule actions_module libexec/apache2/mod_actions.so
LoadModule speling_module libexec/apache2/mod_speling.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule alias_module libexec/apache2/mod_alias.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule php5_module libexec/apache2/libphp5.so
#LoadModule hfs_apple_module libexec/apache2/mod_hfs_apple.so

<IfModule unixd_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User _www
Group staff

</IfModule>

# 'Main' server configuration
#
# The directives in this section set up the values used by the 'main'
# server, which responds to any requests that aren't handled by a
# <VirtualHost> definition. These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
#
# All of these directives may appear inside <VirtualHost> containers,
# in which case these default settings will be overridden for the
# virtual host being defined.
#

#
# ServerAdmin: Your address, where problems with the server should be
# e-mailed. This address appears on some server-generated pages, such
# as error documents. e.g. admin@your-domain.com
#
ServerAdmin you@example.com

#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
#ServerName www.example.com:80
ServerName Starborn.local:80

#
# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other
# <Directory> blocks below.
#
<Directory />
 AllowOverride All
 Require all denied
</Directory>

#
# Note that from this point forward you must specifically allow
# particular features to be enabled - so if something's not working as
# you might expect, make sure that you have specifically enabled it
# below.
#

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
 #
 # Possible values for the Options directive are "None", "All",
 # or any combination of:
 # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
 #
 # Note that "MultiViews" must be named *explicitly* --- "Options All"
 # doesn't give it to you.
 #
 # The Options directive is both complicated and important. Please see
 # http://httpd.apache.org/docs/2.4/mod/core.html#options
 # for more information.
 #
 Options Indexes FollowSymLinks MultiViews
 MultiviewsMatch Any

 #
 # AllowOverride controls what directives may be placed in .htaccess files.
 # It can be "All", "None", or any combination of the keywords:
 # AllowOverride FileInfo AuthConfig Limit
 #
 AllowOverride All

 #
 # Controls who can get stuff from this server.
 #
 Require all granted
</Directory>

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
 DirectoryIndex index.php
</IfModule>

#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<FilesMatch "^\.([Hh][Tt]|[Dd][Ss]_[Ss])">
 Require all denied
</FilesMatch>

#
# Apple specific filesystem protection.
#
<Files "rsrc">
 Require all denied
</Files>
<DirectoryMatch ".*\.\.namedfork">
 Require all denied
</DirectoryMatch>

#
# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here. If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
#
ErrorLog "/private/var/log/apache2/error_log"

#
# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
#
LogLevel warn

<IfModule log_config_module>
 #
 # The following directives define some format nicknames for use with
 # a CustomLog directive (see below).
 #
 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
 LogFormat "%h %l %u %t \"%r\" %>s %b" common

 <IfModule logio_module>
 # You need to enable mod_logio.c to use %I and %O
 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
 </IfModule>

 #
 # The location and format of the access logfile (Common Logfile Format).
 # If you do not define any access logfiles within a <VirtualHost>
 # container, they will be logged here. Contrariwise, if you *do*
 # define per-<VirtualHost> access logfiles, transactions will be
 # logged therein and *not* in this file.
 #
 CustomLog "/private/var/log/apache2/access_log" common

 #
 # If you prefer a logfile with access, agent, and referer information
 # (Combined Logfile Format) you can use the following directive.
 #
 #CustomLog "/private/var/log/apache2/access_log" combined
</IfModule>

<IfModule alias_module>
 #
 # Redirect: Allows you to tell clients about documents that used to
 # exist in your server's namespace, but do not anymore. The client
 # will make a new request for the document at its new location.
 # Example:
 # Redirect permanent /foo http://www.example.com/bar

 #
 # Alias: Maps web paths into filesystem paths and is used to
 # access content that does not live under the DocumentRoot.
 # Example:
 # Alias /webpath /full/filesystem/path
 #
 # If you include a trailing / on /webpath then the server will
 # require it to be present in the URL. You will also likely
 # need to provide a <Directory> section to allow access to
 # the filesystem path.

 #
 # ScriptAlias: This controls which directories contain server scripts.
 # ScriptAliases are essentially the same as Aliases, except that
 # documents in the target directory are treated as applications and
 # run by the server when requested rather than as documents sent to the
 # client. The same rules about trailing "/" apply to ScriptAlias
 # directives as to Alias.
 #
 ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) "/Library/WebServer/CGI-Executables/$1"

</IfModule>

<IfModule cgid_module>
 #
 # ScriptSock: On threaded servers, designate the path to the UNIX
 # socket used to communicate with the CGI daemon of mod_cgid.
 #
 #Scriptsock cgisock
</IfModule>

#
# "/Library/WebServer/CGI-Executables" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/Library/WebServer/CGI-Executables">
 AllowOverride None
 Options None
 Require all granted
</Directory>

<IfModule mime_module>
 #
 # TypesConfig points to the file containing the list of mappings from
 # filename extension to MIME-type.
 #
 TypesConfig /private/etc/apache2/mime.types

 #
 # AddType allows you to add to or override the MIME configuration
 # file specified in TypesConfig for specific file types.
 #
 #AddType application/x-gzip .tgz
 #
 # AddEncoding allows you to have certain browsers uncompress
 # information on the fly. Note: Not all browsers support this.
 #
 #AddEncoding x-compress .Z
 #AddEncoding x-gzip .gz .tgz
 #
 # If the AddEncoding directives above are commented-out, then you
 # probably should define those extensions to indicate media types:
 #
 AddType application/x-compress .Z
 AddType application/x-gzip .gz .tgz

 #
 # AddHandler allows you to map certain file extensions to "handlers":
 # actions unrelated to filetype. These can be either built into the server
 # or added with the Action directive (see below)
 #
 # To use CGI scripts outside of ScriptAliased directories:
 # (You will also need to add "ExecCGI" to the "Options" directive.)
 #
 #AddHandler cgi-script .cgi

 # For type maps (negotiated resources):
 #AddHandler type-map var

 #
 # Filters allow you to process content before it is sent to the client.
 #
 # To parse .shtml files for server-side includes (SSI):
 # (You will also need to add "Includes" to the "Options" directive.)
 #
 #AddType text/html .shtml
 #AddOutputFilter INCLUDES .shtml
</IfModule>

#
# The mod_mime_magic module allows the server to use various hints from the
# contents of the file itself to determine its type. The MIMEMagicFile
# directive tells the module where the hint definitions are located.
#
#MIMEMagicFile /private/etc/apache2/magic

#
# Customizable error responses come in three flavors:
# 1) plain text 2) local redirects 3) external redirects
#
# Some examples:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
#

#
# MaxRanges: Maximum number of Ranges in a request before
# returning the entire resource, or one of the special
# values 'default', 'none' or 'unlimited'.
# Default setting is to accept 200 Ranges.
#MaxRanges unlimited

#
# EnableMMAP and EnableSendfile: On systems that support it,
# memory-mapping or the sendfile syscall may be used to deliver
# files. This usually improves server performance, but must
# be turned off when serving from networked-mounted
# filesystems or if support for these functions is otherwise
# broken on your system.
# Defaults: EnableMMAP On, EnableSendfile Off
#
#EnableMMAP off
#EnableSendfile on

TraceEnable off

# Supplemental configuration
#
# The configuration files in the /private/etc/apache2/extra/ directory can be
# included to add extra features or to modify the default configuration of
# the server, or you may simply copy their contents here and change as
# necessary.

# Server-pool management (MPM specific)
Include /private/etc/apache2/extra/httpd-mpm.conf

# Multi-language error messages
#Include /private/etc/apache2/extra/httpd-multilang-errordoc.conf

# Fancy directory listings
Include /private/etc/apache2/extra/httpd-autoindex.conf

# Language settings
Include /private/etc/apache2/extra/httpd-languages.conf

# User home directories
#Include /private/etc/apache2/extra/httpd-userdir.conf

# Real-time info on requests and configuration
#Include /private/etc/apache2/extra/httpd-info.conf

# Virtual hosts
Include /private/etc/apache2/extra/httpd-vhosts.conf

# Local access to the Apache HTTP Server Manual
#Include /private/etc/apache2/extra/httpd-manual.conf

# Distributed authoring and versioning (WebDAV)
#Include /private/etc/apache2/extra/httpd-dav.conf

# Various default settings
#Include /private/etc/apache2/extra/httpd-default.conf

# Configure mod_proxy_html to understand HTML4/XHTML1
<IfModule proxy_html_module>
Include /private/etc/apache2/extra/proxy-html.conf
</IfModule>

# Secure (SSL/TLS) connections
#Include /private/etc/apache2/extra/httpd-ssl.conf
#
# Note: The following must must be present to support
# starting without SSL on platforms with no /dev/random equivalent
# but a statically compiled-in mod_ssl.
#
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

Include /private/etc/apache2/other/*.conf

#
# uncomment out the below to deal with user agents that deliberately
# violate open standards by misusing DNT (DNT *must* be a specific
# end-user choice)
#
#<IfModule setenvif_module>
#BrowserMatch "MSIE 10.0;" bad_DNT
#</IfModule>
#<IfModule headers_module>
#RequestHeader unset DNT env=bad_DNT
#</IfModule>
Posted in Techno-babble, WordPress | 12 Comments

How Apple is risking your privacy

Hey, Apple. If you’re reading this, I’m more than a little upset right now.

Let me preface this complaint by establishing that I have had a long-standing love affair with your products.

But I have one major complaint at the moment, and it affects every individual who uses your operating systems. And it boils down to one simple human rights issue:

Privacy.

You’ve screwed it up big-time.

Sounds like a good idea, right? Wrong.

Sounds like a good idea, right? Wrong.

You see, after upgrading to OX X Yosemite and booting into my new OS for the first time, I was prompted to sign in to iCloud services using my Apple ID. Here I’d like to get one thing straight with you:

I don’t trust iCloud and I don’t want to store my sensitive data on it.

And my “sensitive data” includes my photos.

They’re my photos. And some of them are private.

So, why the fuck would I want to store them on the cloud, Apple?!

It’s not just OS X Yosemite that wants to store my stuff on the cloud. I found out recently that my iPhone has also been uploading my photos to the cloud.

iCloud Photo Library, My Photo Stream, and iCloud Photo sharing are a terrible risk to privacy. Disable these options under: Settings -> Photos & Camera (iOS 8.x)

iCloud Photo Library, My Photo Stream, and iCloud Photo Sharing put user privacy at tremendous risk. Disable these options under:
Settings -> Photos & Camera (iOS 8.x)

The funny thing is, I don’t remember being asked if I wanted to store my photos on the cloud. My Photo Stream and iCloud Photo Sharing options were enabled by default.

Apple, I don’t believe that the majority of your customers (many of whom flock to the Apple Platform owing in part to its ease of use), have a complete comprehension of what exactly the cloud is, and that their data may be at risk. And let’s face it:

You cannot guarantee our privacy, and you cannot deny the risk to individual privacy when storing data in the cloud.

You must acknowledge the security risks implicit in cloud storage. You must acknowledge that data stored in the cloud stands at risk to interception by individuals or organizations using methods known and unknown, including:

  1. Interception and collection of data by unlawful means, such as by hackers.
  2. Interception and collection of data by lawful means, such as by law enforcement agencies.
  3. Interception and collection of data by unconstitutional means, such as by unchecked domestic and foreign surveillance programs.

Data stored in the cloud poses a tempting target for the unscrupulous.

You must accept some responsibility because you are enabling by default an increased risk to privacy for every individual who uses your products. And the worst part of it is,

you aren’t giving your customers a clear choice to protect their own privacy.

You make it easy to surrender one’s data into the murky mist of the cloud where it stands at risk to be picked though by anyone.

You owe it to your customers to do better job protecting their right to privacy. Whatever profit motive you have in practically forcing your users to store their data on the cloud is no acceptable excuse for endangering the privacy of millions of people.

Thanks AppleRecently (as of this writing) it was brought to light that some of your very highest profile customers — female celebrities — had their personal and private photos exposed to the world by hackers exploiting flaws in iCloud security.

That’s entirely on you, Apple.

Do you think any of those high-profile individuals would have chosen to have their private photos stored on the cloud where they stood at risk to be exposed?

It’s not just celebrities who are at risk. It’s every single user of your operating systems.

The bottom line:

You cannot guarantee the security of data stored on the cloud. You need to make it easier for customers to opt out of storing their data online and be more transparent with your customers about the inherent risks of cloud storage.

When you put people at risk to invasion of privacy by default, you are responsible when that privacy is invaded.

You can do better, Apple.

 

Posted in Uncategorized | 1 Comment

Podcast with Digital Marketing Radio

I was recently interviewed by Digital Marketing Radio for their podcast. This insightful podcast series is full of useful tips and insights on digital marketing. Give it a listen. You might learn something!

Listen to me on Digital Marketing Radio and subscribe to the podcast!

Here’s the link to the podcast series for iTunes:
https://itunes.apple.com/us/podcast/digital-marketing-radio/id916119100?mt=2&ign-mpt=uo%3D4

Follow @DavidBain, the host of Digital Marketing Radio.

Posted in Marketing & Branding, Resources, Reviews | Leave a comment