Understanding Javascript Object References

Today I was in a class learning about Kinvey and my instructor was stuck on a problem in a node.js app he was working on. He wanted to use on an array of rows but pass an additional parameter to the callback. I knew that one way to handle…

Switched site to GatsbyJS

You may notice that my site is a little different now. I've been playing around with GatsbyJS lately, and it seemed like something I'd like to use. It's a static site generator, although it's more of a PWA generator. The output is static…

How To Build A Time Tracking App In React

Recently for a job I was applying for I build a time tracking demo in React. I've spent the last 4-5 years working with Angular (via Ionic) but many of the jobs I've seen are asking for React. It's been easy to pick up and a lot of fun to…

Ionic 4 and MobX

I just spent several hours debugging an issue and hopefully, this will save you a lot of time. I'm building a new Ionic 4 app and I'm using MobX to handle state. I had previously used it in an Ionic 3 app, but I don't think I was using it…

How to Develop with Laravel Homestead

Are you interested in Laravel but don't know how to start? Homestead is a Laravel project that simplifies the creation of a local environment configured to run Laravel applications. Bring your laptop and when we're finished you'll have…

What is the best way to handle sessions with ADR?

Right before Christmas, I reached out to Paul Jones asking: I've reached a point with a couple of my Radar projects where I need to add a login and set permissions. I'm trying to figure out the best way to handle this, especially with PSR…

What is the best way to inject a logger?

I'm working on several projects right now that I'd like to be able to generate logs from. The problem is that logging isn't required for the code to work, so how do I configure it? I see three possibilities: Required in Constructor Pros…

PSR-7 Objects Could Be Immutable

I've been thinking a lot about immutable objects lately. Yegor Bugayenko claims that Objects Should Be Immutable and PSR-7: HTTP message interfaces are designed to be immutable. Messages are values where the identity is the aggregate of all…

How Can We Colonize Mars?

I periodically read about people wanting to colonize Mars. Elon Musk seems interested in doing so. However, I'm always confused on how we can actually do that, but not in the technical sense. According to the 1967 Outer Space Treaty, we're…

Be the Change

Donald Trump will be the next president of the United States. There will be a lot of negativity in the coming days. A lot of finger pointing, name calling, blaming and possibly violence. Please don't participate in the negativity. When…

What is the best git branching strategy for small teams?

In my development, I use Git all the time. It was a little tricky to figure out at first but, I feel like I have a good understanding of how to use it. When I've worked with other developers I see them struggling with a few concepts that I…

Using Action-Domain-Responder on the command line

Yesterday I was working on a project in Radar and needed to create a command line tool for it. In the past, I've always used Symfony Console which I like. Since my application was already built using Radar and adhering to Action-Domain…

Introducing Cadre.Module

Today I published a new component Cadre.Module. This component was born out of my side project that's using Radar. Stock Radar Radar is built around Aura.Di which is a very nice dependency injection container. If you're interested in…

Collecting Data from Atlas ORM with PHP Debug Bar

In my last article, I talked about how I found an N+1 bug in Atlas ORM. I had mentioned how it took a little work to get PHP Debug Bar configured with Atlas but didn't really explain why it was difficult, or how I got them working together…

Complex Database Relationships with AtlasORM

In my side project I'm working with a very well normalized database with many relationships. One of the most complex pages is a where it shows info about the creator and all of the works that they have contributed to. creatordiagram This…

LazyArray Officially Part of Aura.Di

In my prior posts about integrating Symfony Forms with Radar, I created a helper class called LazyArray. It was designed so I could pass an array of lazily instantiated objects into a setter like Twigs method. Paul liked my implementation…

Symfony Forms and Radar - Part 2

In Part 1 I talked about the difficulties in getting Symfony Forms to play nicely with Aura.Di and Radars ADR model. Today I'm picking up where I left off. My goal is to figure out what I need to do differently to achieve the clean…

Symfony Forms and Radar - Part 1

I have several projects I'd like to build soon. One thing they have in common is there will be a lot of data entry via forms. Back in the day I used to use HTML_QuickForm but I haven't used it for a long time. For my projects at work, one…

Discovering Clean Architecture

Several years ago I came across the following video. It was a keynote from a Ruby conference by some guy named Robert "Uncle Bob" Martin. It's really worth your time to watch. Watching this opened my eyes. The idea that the framework is a…

Radar Under the Hood

Radar is a project that I really like. Radar is a PSR-7 compliant Action-Domain-Responder (ADR) system. While it may look like a micro-framework, it is more like a wrapper around the real core of your application domain. Have your eyes…

FutureProof Your Code

Frameworks, libraries, and components are great. They can greatly simplify the process of writing applications. There is no need to reinvent the wheel. However what happens when the landscape changes? Your favorite library is no longer…

The Top 4 Techniques That Make Your Code More Flexible

For years I'd struggle to add new features and fix bugs because the likelihood of something breaking was too high. Now I don't sweat adding new features or fixing bugs. I know that whatever I build is going to work and when the inevitable…

Read Full Story

I've been noticing a weird trend across news sites recently. I start reading an article and after a paragraph or two the text fades away and I have a button asking me to "Read Full Story" or something like that. I click it and the button…

Jumping in with PHP 7

After reading Why we are requiring PHP 7 for our new packages I decided to make Stupid Simple Invoices (a side project) require PHP 7. It's a fairly small project right now and it took me a total of about 30 minutes to make sure everything…

Getting started with Radar

I recently needed a quick tool to track and generate invoices for my small random freelance jobs. I thought this would be a good project to try out Radar, a PSR-7 compliant Action-Domain-Responder (ADR) system created by Paul M. Jones. I…

Uncertainty about death

I feel like I dodged a bullet today. Back in May, I found out that my application for life insurance, both personally and for "Key Man" life insurance at work, were denied. I wasn't completely shocked since two years ago I had heart surgery…

What is rssCloud?

Jeffrey Kishner asks: I don't understand what rssCloud does. Is it related to River? Back in the RSS 2.0 spec, Dave Winer documented a cloud element which is used to point to an rssCloud server for real time updates about a feed changing…

Rebooting rssCloud

I recently built an rssCloud Server implementation in node.js It's open source, MIT licensed and available on GitHub. I have a copy of it running live at rpc.rsscloud.io:5337. I'm hoping to get folks to poke it and help me make it more…

Will this make me feel better tomorrow?

I came home for lunch today and I feel like crap. I feel stressed and tired most of the time. I shouldn't though. Since the end of December I've been doing yoga 2-3 times a week. Even though I have an 8-month old daughter I actually sleep…

Facebook Comments

Dave Winer uses Facebook comments on his Liveblog and today I wanted to comment on his post about liveblogging. However before I did this I had to check something out. I went on Facebook and found where he had posted a link to his post and…

Laravel UTC Model

I've been playing around with Laravel lately and overall I like it. One issue I ran into pretty quickly was that I would like to store datetime fields in the database as UTC and then store the timezone (in this case for an event) in another…

PHP 5.5 vs HHVM

At my job at Pinpoint Software, I've been working on our primary product Taskle. It's been very successful so far and we're adding a bunch of new companies to our system all the time. Of course that means scaling issues. The current issue…

How to Be Polite

Politeness and manners are something that I feel has always intrigued and eluded me. I try to remember to say please and thank you, and I try to be nice to waitstaff. However, I eat like a barbarian and seem to be unaware of the people…

Running River4 with forever

I've been playing around with Node.js for a while but I never got far enough to deploy an app to production. Dave Winer recently released River4 which is the latest in a line of excelent River of News aggregators. Previous versions ran on…

Lightswitches and OCD

I'm a little OCD when it comes to light switches. My particular obsession goes a little like this: A light switch should be up for on and down for off. When you have multiple switches, the light should be off when all of the switches are…

Identifying my priorities

Lately I've been overwhelmed. This is not unusual for me ever since my heart surgery I've been more aware of it. I've been reading books lately about goal setting, life planning and task management so today I felt I needed to do a brain…

Figuring out Silex SecurityServiceProvider

I'm working on a couple of projects that will be using Silex as the underlying framework. Whenever I try out a new framework, it seems that the first roadblock I always hit is when I try to implement user authentication & authorization. It…

What is a social network?

Dave Winer says in What's missing in our social networks?: Meanwhile, as we all settle in on these networks, we're also settling -- missing features that would have been developed long ago if we were using open and competitive platforms. At…

Building a better Meetup

This post is a request into the aether for something I'd really like to see and would be willing to pay for. My hope is that someone reads this and decides to build it (maybe even Meetup). I unfortunately don't have the time to build this…

The future of PHP (and JavaScript)

As a developer, I'm always reevaluating what tools I use to do my work. This can be what language I'm using, but also what frameworks, libraries or editors I'm using. I've been doing pretty much nothing but PHP for close to a decade and I…

Triggering Safari Reader

I do most of my blog reading on my iPhone so it's really important for me that my blog looks good on the iPhone. One feature that I really like is the "Reader" feature that shows up in the address bar on both mobile and desktop Safari. One…

Improving My Code

I'll be honest with you. I had kinda stagnated over the last couple years when it came to improving my skills as a developer. When I first started developing professionally I went from not knowing much PHP to being well regarded as a…

Can You Be a Reading Roll Model With an iPad?

My wife Andrea and I have no immediate plans to have children, but the topic has come up a couple of times. One area that we disagree on is the topic of homeschooling. I personally feel that with the exception of a few awesome teachers I…

My YNAB Budget

I don't typically promote products on my site but I really love You Need A Budget or YNAB. I've had a real hard time in the past with managing my money, I've accumulated a bunch of debt and pissed through a bunch of inheritance money. I've…

Fourth of July in New House

It's been a crazy year since the last 4th of July. Andrea and I got married in October. Then we went on our honeymoon to Disney World and of January. On our way home I got pneumonia (the first time) and that started a chain of events…

Heart Surgery

I had been diagnosed with a heart murmur back in 2005 at which time the cardiologist said it was unremarkable and that I just needed antibiotics prior to dental work. Two years ago I had a second ultrasound of my heart and no red flags…

Joining Hyperboria

Yesterday I joined Hyperboria. Hyperboria is a decentralized network established with the principles of freedom and security at its core. To get into Hyperboria you have to install CJDNS which and then get on IRC and find someone that is…

A better social news experience?

A number of years ago when I worked for Brazen Careerist I had an idea for the company. We could create a white label social news site that was a window into a larger network of social news sites. Management didn't see this as a useful…

Dead Drops 'How to'

I just came across this video and thought it would be great to share. According to the map on deaddrops.com there aren't any listed in Madison, WI. I might have to change that. Dead Drops 'How to' - NYC from aram bartholl on Vimeo. http…

PHP Functions on the Fly

I've been a big of a laggard when it comes around to the latest and greatest in the world of PHP. Only recently have I been using the new functionality of PHP 5.3 even though 5.4 just came out. Today I had an idea for a proof of concept and…

World Outline Podcast #7

Yesterday on the World Outline Podcast with Dave Winer and Adam Curry they mentioned me and my projects RT Proxy and TwitOPML. If you're interested in listening you can hear the clip or the entire episode.

RT Proxy

RT Proxy is a little site I created to support Dave Winer's RT standard. This is fresh on the heels of my Radio2 RT WordPress Plugin which adds RT links to a WordPress site. Now anybody even if they don't have a website or link blog can RT…

Apple and the future of TV

I just came across Dave Winer's post Samsung is wrong about TV which is a response to the earlier TechCrunch article Samsung Not Worried About Apple’s TV: "TVs are ultimately about picture quality". Now I'm actually with TechCrunch on this…

Digital Decentralism

I've been very interested in thinking of clever ways to help myself and other people avoid digital sharecropping. Especially with the recent hoopla around SOPA. The problem I have with the term Digital Sharecropper is that it represents the…

Rock-It at Work - Start a Group

At Brazen Careerist where I work we're having a series of posts by Brazen employees with tips about how they got ahead in their careers.  My post about starting a group was just posted today.  Check it out. Name: Andrew Shell Age: 29 So…

What does it mean to have character?

Today I came across a wikipedia page about the Seven Blunders of the World which was a list created by Gandhi.  As I went through them one particularly stuck with me.  That was "Knowledge without Character" particularly because knowledge is…

Developers and the Growth Mindset

Recently I've been reading the book Mindset: The New Psychology of Success by Carol Dweck and it's really making me think.  According to the official website: In a fixed mindset, people believe their basic qualities, like their…

Following Outside of Twitter

I've been working as part of the blork community lately.  What is a blork?  It's basically a decentralized Twitter like app that runs on RSS.  You post status updates that get posted to your RSS Feed, then you follow other RSS feeds.  The…

Shipping is Scary

Today I shipped a little app of mine called TwitOPML.  I'm now freaked out.  What if a ton of people start using it?  What if nobody uses it?  I shot an e-mail about it to the EC2 for Poets mailing list, so most likely somebody will try it…

Nofollow Links

This is a plugin designed to allow you to append nofollow to the rel attribute of selected links in your blogroll. It does not conflict with the link relationships (XFN) specified when you edit a link. It will just be appended to the end of…

Data Minimalism

I previously railed against the trend of digital sharecropping in my post Giving Up On Web Ownership. The task of taking ownership of your digital identity can be very difficult when you try to replicate the functionality of all the…

Escaping Corporate Silos With WordPress

After my post on Friday about Giving Up on Web Ownership a couple people pinged me asking how they would go about publishing to Twitter, without publishing in Twitter.  Dave Winer is working on the problem with his minimal blogging tool but…

Giving Up On Web Ownership?

Last year when I was helping organize BarCamp Madison 2011 I was busy getting the website set up.  I set up a WordPress site and planned on getting modules installed to handle registrations and session tracking.  Before I even got a chance…

Are you suffering from News Poisoning?

I had an interesting conversation with my friend Monica last night. We talked about information overload and she brought up a term "News Poisoning" which means how you can poison your mind by watching the news. What do I mean by poisoning…

What would you do with 60 hours?

I'm not a huge fan of new years resolutions. I think most people throw out some big vague goal like "lose weight" or "start my own business" then forget about it by the end of January. I was just thinking of a different approach to new…

Structured data via RSS

I've been rolling around in my head for a while now about the best way to publish structured data via RSS. My primary use case is with syndicating data between websites, especially social networks like Brazen Careerist. I like the idea of…

Technology delegation vs abdication

This is a reply to Why Gen Y is Smarter, From a Gen X We are becoming more dependent on technology. The use of a GPS like they mention in the TechCrunch article is a good example. GPS is great since it allows you to get to places very…

Interview with Ryan Healy and Ryan Paugh

I sat down with Ryan Healy and Ryan Paugh, co-founders of Brazen Careerist. We talked about how they created Employee Evolution, met Penelope Trunk and started Brazen Careerist.

Conflict with Minimalism

I've been trying to be more minimalist lately. I deleted the vast majority of blogs I follow in my RSS feed (I only follow 5 now). One of the blogs I still follow is Far Beyond the Stars by Everett Bogue. Everett is a guy who lives his life…

Expanding Your Passion

Here's an exercise I just came up with as a method to expand and pivot my passions. Start out with something that excites you, something that you're really passionate about. Visualize that this activity or idea is just a lake that's part of…

RSS, FlipBoard and Me

Recently I privately declared RSS bankruptcy. I had managed to tame my feeds in such a way that I could usually get through everything and some days I'd just clear out my low value feeds in order to keep up. Then on June 30th, I attended an…

Interview with Greg Tracy

I sat down with Greg Tracy, co-founder of Sharendipity and creator of SMSMyBus to talk about how he got into technology and what he's learned along the way.

Kickstart Madison Coworking

When I was out in California I was somewhat involved with the group of people starting Hacker Dojo. I've been interested in creating a similar type of space in Madison. I started looking around at spaces when I was telecommuting for PBwiki…

PHP Frameworks are Governments

I was e-mailing a friend the other day talking about PHP frameworks. He's been writing one for himself and I've written many many frameworks and CMSs through the years. I've also looked at a lot of existing frameworks out there like Zend…

Yahoo and the semantic web

At Netconcepts I've implemented microformats in order to optimize content for search engines. An example of this would be the hCard microformat which we're using in the Allen Edmonds store locator. We marked up the content with classes like…

Drains of Canada: An Interview with Michael Cook

I just came across this article today. It's very interesting. I've always had an interest in exploring storm drains and tunnels and such. I wonder if Madison has drains like this. That would be really cool to see. I'd be worried about…

A Brief History of Me Programming

I've been programming in one form or another for as long as I can remember. Since my family got it's first computer when I was five I couldn't have programmed much before that. However I knew DOS well enough to help teachers with their…

PHP Bugtracking

So I am currently looking for good bug tracking software. I have a few requirements, some of which I'm sure are unreasonable. First the code needs to be able to run without errors, warnings or notices in PHP 5.2 (using php.ini-recommended…

PHP Works 2006

The conference this year was a lot of fun. I found the talks to be weaker then I remember from previous years. Perhaps I chose poorly. Two of the best talks I attended were "The State of AOP in PHP" by Sebastian Bergmann and "Organizing…

PHP/DB | Works 2006

I just arrived in Toronto yesterday for the third PHP Works conference I've attended. The last two years were incredible and I have no doubts that this year will be great as well. I will try to post several entries while I'm here detailing…

First PHP Meetup

Well, tomorrow is the first meeting of my PHP Users Group. I'm pretty excited about that. Right now I have 9 people RSVPed Yes and 3 RSVPed Maybe. Certainly a larger crowd then I had originally expected. The group is being organized through…