Use or Read RSS Feeds Still? Here’s Your Tech Blogs

This is another one of those lists I’ve started putting together. I wanted to get it out there to the public. It all started with Hadi @HHariri converting his blog from WordPress to Jekyll using Github Pages. I’ve wanted to get a solid list of top blogs. One’s that have great content, solid writing, technical and mixed topics of tech, leadership and related to technology blogs. If you’re not reading blogs these days, now is as good a time as any to click the Feedly logo to the right and go get subscribing and reading! If you are reading some blogs, add them to the list!

To check out Hadi’s blog navigate over to http://hadihariri.com/. For a kick start yourself, check out my entry on Bringing it All Together, Bringing to Life an Open Source Software Project via Github & Jekyll – Part 1.

To help out with the blog list, add a blog or three that you read regularly. Cheers and thanks!

Leadership of a Team: Progress and Backlogs

I’ve been checking out a number of teams and what their workloads look like. I’ve of course worked on more than few with completely disparate practices and policies. Some where really good at making great progress and others were absolutely horrendous. I’d argue one team actually went backwards in progress more than a few times. Suffice it to say, I’ve seen a whole lot of the bad and a fair amount of amazing teams. I’ve been fortunate in doing so as it really helps to have a solid perspective in both arenas.

To summarize, it’s nice to know when the ship is sinking and when the ship is sailing full steam toward the destination! Continue reading “Leadership of a Team: Progress and Backlogs”

In Portland, Work With Data? Happy Data Hour…

Happy Data Hour is happening this Thursday, I just stumbled upon it and met the organizers and others. It will be a top group of fun people talking about all sorts of modern data ideas, advances and related topics. In addition, drinks are on the organizers of Keen.io and Digital Ocean. I hear that (and they may be organizers too, that Firebase and Chroma)

I’ll be there with an interest in conversing related to my latest startup project, how data relates to that and generally putting away a drink or two. So please do come and enjoy a good time….  cheers, and bottoms up!

Review via Calagator and RSVP on Eventbrite.

Thugerdashery, Hacking, Designing, Thrashing, Hats, Hoodies, Beanies & Gats Yo!

I’m was hacking this Sunday after wrapping up a ton of work putting together the upcoming Docker screencast for Pluralsight, which I’m super stoked on it going live in the coming days. If you don’t have a subscription there you should go get one ASAP. However tonight, having wrapped that up I decided I’d work on some code for an upcoming project but then…

SQUIRREL! (Click for that scene)

https://twitter.com/caseyrosenthal/status/412367923378786304

…and then I got an idea to do a full stack implementation from Donnie…

https://twitter.com/dberkholz/status/412433361244663808

…so then I made it happen, enjoy.

http://vimeo.com/adronhall/thugerdashery

I did all of this instead, then wrote it down, made a video, threw together some stock images, edited the logo, some design, a theme, and some other elements all in about 35 minutes. Well, the site took 35 minutes, blogging it took way longer than that. But I needed a break from what I was doing, something to get myself out of the important code that I was working on so I could tackle it fresh again tomorrow. So with that I present to you, the Thugerdashery, the hat shop o’ thug life and a distraction of squirrely proportions. Enjoy…

Some JavaScript API Coding With Restify & Express & Hacking it With cURL …Segment #2

Ah, part 2! If you’re looking for part 1, click this link.

Review: In the last blog entry I went through more than a few examples of using cURL to issue GET requests against various end points using Node.js & Restify. I also covered the basics on where to go to find cURL in case it isn’t installed. The last part I covered was a little bit of WebStorm info to boot. In this part of the series I’m now going to dive into the HTTP verbs beyond GET.

POST

The practice around issuing a command via http verb to save data is via a post. When you issue a post via cURL use the -X followed by POST to designate a post verb, then -H to assign the content type parameter. In this particular example I’ve set it to application/json since my payload of data will be JSON format. Then add the final data with a -d option, followed by the actual data.

[sourcecode language=”bash”]curl -X POST -H "Content-Type: application/json" -d ‘{"uuid":"79E5591A-1E54-4562-A276-AFC266F54390","webid":"56E62C3A-D6BC-4F4F-B72A-E6CE081190B6"}’ http://localhost:3000/ident%5B/sourcecode%5D

Other data types can be sent, which the content type can be appropriately set for including; html, json, script, text or html. One example of this same command, issued with jQuery on the client side would actually look like this.

[sourcecode language=”javascript”]
var data = {"uuid":"79E5591A-1E54-4562-A276-AFC266F54390","webid":"56E62C3A-D6BC-4F4F-B72A-E6CE081190B6"};

$.post( "http://localhost:3000/ident", function( data ) {
$( ".result" ).html( data );
});
[/sourcecode]

When building post end points via express one of the things you may run into is the following message being displayed in the console.

[sourcecode language=”bash”]
/usr/local/bin/node app.js
connect.multipart() will be removed in connect 3.0
visit https://github.com/senchalabs/connect/wiki/Connect-3.0 for alternatives
connect.limit() will be removed in connect 3.0
[/sourcecode]

The immediate fix for this, until the changes are made (which may or may not mean to just alwasy  is to replace this line

[sourcecode language=”javascript”]
app.use(express.bodyParser());
[/sourcecode]

with these lines

[sourcecode language=”javascript”]
app.use(express.json());
app.use(express.urlencoded());
[/sourcecode]

So here’s some common examples for use from a great write up on writing basic RESTful APIs with Node.js and Express from the Modulus blog.

[sourcecode language=”javascript”]
var express = require(‘express’);
var app = express();

app.use(express.json());
app.use(express.urlencoded());

var quotes = [
{ author : ‘Audrey Hepburn’, text : "Nothing is impossible, the word itself says ‘I’m possible’!"},
{ author : ‘Walt Disney’, text : "You may not realize it when it happens, but a kick in the teeth may be the best thing in the world for you"},
{ author : ‘Unknown’, text : "Even the greatest was once a beginner. Don’t be afraid to take that first step."},
{ author : ‘Neale Donald Walsch’, text : "You are afraid to die, and you’re afraid to live. What a way to exist."}
];

app.get(‘/’, function(req, res) {
res.json(quotes);
});

app.get(‘/quote/random’, function(req, res) {
var id = Math.floor(Math.random() * quotes.length);
var q = quotes[id];
res.json(q);
});

app.get(‘/quote/:id’, function(req, res) {
if(quotes.length <= req.params.id || req.params.id < 0) {
res.statusCode = 404;
return res.send(‘Error 404: No quote found’);
}

var q = quotes[req.params.id];
res.json(q);
});

app.post(‘/quote’, function(req, res) {
if(!req.body.hasOwnProperty(‘author’) ||
!req.body.hasOwnProperty(‘text’)) {
res.statusCode = 400;
return res.send(‘Error 400: Post syntax incorrect.’);
}

var newQuote = {
author : req.body.author,
text : req.body.text
};

quotes.push(newQuote);
res.json(true);
});

app.listen(process.env.PORT || 3412);
[/sourcecode]

This is a great little snippet of code to use for testing your curling against just to check out.

References: