Great podcasts to listen to as a web developer

As a web developer you have to keep learning new stuff everyday everyday if you want to keep up to date on what’s happening out there.
One way I keep myself updated, is by listening to podcasts about web development. I think podcasts is a great way to learn new stuff.
Why? Because you can be on the move, doing exercising or any other stuff that  doesn’t have something to do with your ears.

The jungle of web podcast is big, and this post will try to wrap up some of the best web podcasts I’ve come across.
I hope it will help you and other developers to learn new stuff on the way in the jungle of web development.

If you know some great podcast about web development, please share them in comments.

I will keep on updating this post with new podcast that I find interesting.

Wish you a happy listening!

My list of great Web Podcasts

ShopTalk show
ShopTalk show is a weekly sound-effect podcast about front-end design and development.
The two hosts of the show Chris Coyier and Dave Rupert have both many years of front-end development behind them.
Each week they have a new guest in the studio and answer questions send in by their listeners.
One of my personal favorites and a must have on your podcast list.

The Big Web Show
Jeffrey Zeldman is the host of this awesome podcasts, where he invites special guests to talk about web development and design.
The show is about everything web matters.

Breaking development podcast
The Breaking development podcast is one of my favorite podcasts, which is about the web in general. Where do the web come from? What its current status? Where is it heading?
Together with various guests, the podcast tries to answer these questions.

The East Wing
Tim Smith is the host of this podcast, which I enjoy listening to every week. Tim invites guest from both the design and web industry, to talk about how they solve their clients problems and turn them into great solutions.

The web ahead
This podcast was one of my first podcast subscriptions.
The host Jen Simmons invites guest from the web industry to talk on the show about the future of the web.
The podcast discusses upcoming web technologies and how they changes the web.

Unfinished business
This podcast is not about web technologies as the others listed above.
Instead Andrew Clarke and Anna Debenham talks about how to run a creative business.
I listed it here because it’s a great show to listen if you are running a business yourself. Andrew and Anna tells which things you should be aware of when running a creative business.
Especially they talk about how to create good relationships with clients through contracts.

MyMicroFramework upgraded with Composer, PHP5 and separate models free to use

If you have followed me on GitHub, you’ve lately seen that MyMicroFramework repo has been updated with some new stuff.
In this post I will explain what features the new update includes, for those who are interested.

Composer
Lately I’ve been playing around with a PHP WebSocket library called Ratchet for an assignment in school.
Ratchet requires a dependency manager called Composer, which I think is an awesome tool for just that. What Composer does, is managing all your external libraries for you. It automatically downloads and set them up in your project Vendor folder.
An autoloader file is automatically created, which you import into one of your main files. Now when you create a new object, Composers autoloader automatically loads the lib class file from your library.
You define which libraries you use in a JSON file. I could write a whole blog post about how awesome Composer is, but that time has yet to come :)

I found Composer so awesome, that I wanted to implement it into my framework. So that’s basically what I’ve done.

PHP5
Because Composer uses PHP5 and PSR-0 naming scheme to locate files, I’ve rewritten the whole framework in PHP5.
Every class now has its own namespace, given by the PSR-0 standard. You will then find controllers and models contained in two different namespaces, namely app\controller and app\model.

With the Composer autoloader file, you now have different options for loading in model files.
You can choose to load them the old way using $this->loadModel(“<model name>”) or just create a new object. The autoloader will automatically load the class file, if it’s not already loaded.
Please be aware that if you choose to load them the old way, you now must use the PSR-0 scheme from the app level as model name.
As an example, lets say you want to load the model app/model/db/Db.php. Instead of using db/Db as model name, you now use the PSR-0 standard and writes db\Db. This is because the Db class is hold in the app\model\db namespace. You can now access the model using $this->Db

New models free to use
The standard models have now been separated entirely from the main repository, and are not part of the “standard package” anymore.
My goal was to create a micro framework, and to reach this goal I has to deliver just the core and nothing more.
So to accomplish this, I’ve created a repository for each model. You can then download and implement the models you need in the framework, and share your own.
You can find the different models on my GitHub account, including the DB and Template model.

If you have any questions or requests regarding the framework, you are more then welcome to make a comment.

BlackBoard live

Labs Project: BlackBoard

BlackBoard liveBlackBoard is a live editing social post-it board, where everyone can add post-its to the same virtual board.
The idea behind BlackBoard is to give every class a virtual board where teacher and pupils can interact with each other using different platforms, being mobile or desktop.

The application is build using PHP and CodeIgniter at the back-end, and JavaScript at the front-end.
Using this combination, the user will get a live editing experience, where changes on one computer screen is shared immediately across all the others using AJAX.

I’ve been using the method “Long Polling” to emulate a push to the client. This means that every client is keeping a connection open to the server, and only closes this connection when changes are made on the server. After the changes have been reflected on the board, the client opens the connection up again to wait for new changes.

Changes on post-its are handled using version numbering. Every time a post is changed, the post version will increment by one, notifying the server that new changes has been made.
The server will then push those changes out to all other clients connected to the same board.

I don’t have a live version of BlackBoard currently running, because lag of server capacity.
Because of the live editing capabilities the application constantly polls the DB for changes. Even while the poll has a small response, my current hosting company can provide the capacity to run this.
Instead you are welcome to fork my code from BitBucket, and try it out on you own server.
A guide for how to get it up and running on your own setup will be made.

The future plan for the project is to rewrite it in Node.js for better performance, and pushing changes trough the new HTML5 WebSocket API.
Currently I don’t have a timeline for this, but maybe someday this will magically happen :)

If you have any questions or comments on the project, feel free to comment below :)

My PHP Micro Framework

For a school project lately I’ve been writing my own PHP micro framework.
Normally I use CodeIgniter as my favorite PHP framework, but because of my schools examination rules I’ve been pushed into writing my own framework.

One of the things that impress me is how easy CodeIgniter handles loading of external models, controllers and views. You just tell it what to load and it loads it into the application context.
In my framework I’ve tried to add the same easiness for loading in modules, controllers and views, but with much lesser code.

My framework basicly consist of a class called Application.
All modules, controllers and views refers to this class through a context parameter. By doing so all modules, views and classes can operate in the same context and share there methods and parameters with the others.

The application class has different methods for loading in modules, controllers and views.
Like CodeIgniter I use the URI to access information of which controller should be loaded, and afterwards which method should be loaded in the specified controller. If no information is given, or the controller doesn’t exist I load the default controller defined in a config.php file. This file is loaded in when the application initializes.

To make it easy for extending the framework with modules, controllers and views I’ve been adding some base class files.
Those files contains methods and constructors for initializing the context in the object.
When you add a new model or controller to the framework, you just extend the object from those base class files. Then the context automatically will be initialized when the object is being constructed on load. When the object is loaded, it is accessible through the context parameter in the application.

I’ve already written a database model, that uses MySQLI to access a MySQL database.
This is (like the rest of my framework :) ) heavily inspired by how the people at CodeIgniter have done there work. I like how easy it is to query a table in CodeIgniter. This can spare you a lot of time when developing! Also the input is automatic escaped, which is quiet nice :)

The framework is open source, and I’m still working on it. You can find the code here – on bitbucket.

If you have any comments, recommendations or want to help me – you’re welcome to comment on this post.

Happy coding people :)

 

TakeAway lab project

TakeAway JavaScript Project

TakeAway lab projectTakeAway was a concept made by me and a good friend of mine.
He is a designer and had an idea for a take away site.
His idea was that you ordered the page, like you ordered a box of food from a take away restaurant.

So we made a concept where the text you clicked on, in the menu, will be dropped into a box and sent to the user. Like a take away order.

All the drawing was done by my friend and the code by me.

The animations was made using a combination of JavaScript and CSS3. As JS framework I’ve used jQuery. Our goal was to make it work in Chrome, which it does.

Try out the takeaway site yourself right here.

New Lab section

I’ve added a new section to my site: My Lab

In this section I will show some of my projects that never has been finished.
There will be concepts and sites that only works in certain browsers.

Hope you will enjoy the projects you find there, and get inspired to do some yourself :)
Take a look, you will find the section in the top menu.

Android JSON Handler

Yesterday I released my first code on GitHUB. It’s a library I’ve been using in all my Android projects so far, and therefor I thought that allot of other people could use it to.

The library makes it easy to make POST or GET requests to any web-server that returns JSON as respond.

The library works this way:

  1. First you create a new JSONHandler object, and gives it your application context as parameter.
  2.  You can then use different methods in the library to change the different messages send to the user, while progressing your request.
    As an example the method .setDiag(“Gathering data”, “Please wait…”), sets the title and text of the progress dialog that’s shown to the user while the request is made.
    It’s also possible to disable error handling and other stuff. You can read more about this here.
  3. To make a request to a server, simply use the .makeRequest(url, parameters, method, callback).The different method parameters are as follows:
  • String URL: The URL that you want to request.
  • List<NameValuePairs> Parameters: A list of BasicNameValuePairs that contains the POST or GET parameters to send with the request. This could be text, integers or boolean values.
    If your want to upload a file to the server, please use .setNameOfFileField(name) to tell the library which field that contains a file. Please notice that only POST requests do upload files. Default this field is set to “file”.
  • String Method: The method used to request the server. This can ether be set to “get”or “post”.
  • String Callback: Here you give the name of the method that should be called, when the request is done. The method is called with two parameters:
    JSONArray which contains the JSON respons, and a Boolean that is true if an error has occurred.
    Please be aware that this method must exists in the same class that are doing the request!

You can read more and download the library on the my GitHUB page. There you also will find some examples.

If you have any questions or comments regarding this library, please make a comment and I will answer them as fast as possible.

Happy coding to everyone :)

 

New app section

Yesterday I released a new app section on the site. You can take a closer look at it here.
The apps in this section will be all from simple web apps to full blown phone and web applications.

I’ve have lately worked on an jQuery mobile app which uses DSB Labs API to access train information in Denmark.
With the app you can see when the trains leaves the station, and follow there path from station to station.

 

The App finds you position trough Googles Geocoding API and reverse look up the address of your position.
With that information, the app knows which town you are in, and shows you the local train information.

The app is still in beta, but has been released in ver. 1.0. There are still some small bugs that i’m working on, but the app should be acting smoothly with all browsers.

If you have any comments, questions or issues about the app, please make a comment :)

Click here to open the app

G+ and Facebook habits

This summer the buzz word have been Google Plus. Everybody talks about and everybody wants to be part of the “new Facebook”.
But many people takes there habits from Facebook with them to G+ and use G+ like Facebook, which I think is wrong.
G+ is not Facebook and I think that Google never meant it to be used like Facebook.

The big problem with Facebook, is that you get a bigger and bigger stream of data from your friends.
Much of my Facebook stream means nothing to me, because it’s about my friends being together with people I don’t know. Why should I see pictures from parties with people I don’t know?

That’s where the smart about G+ circles kicks in. From my point of view, a circle is a group of persons, who know each other. You can add people to more then one circle, if the person knows people in more then one group.
And you can add as many circles as you want. I got 14 circles at this time, and the number is increasing.

When you post pictures from parties, you can choose to share them with only that group of people, who knows the persons at the party. In this way, I don’t have to look at pictures with people I don’t know, because I’m simply not in that circle. And in the end my stream gets much more cleaner.

But allot of my friends that are coming from Facebook to G+ does not add allot of circles.
In fact they use the three(or four cannot remember :) ) that is standard when you create you G+ profile. All of there friends they add to one big group called friends, and all of there family they add to another big group called family.
Why? Because it’s how Facebook works, and why allot of my stream means nothing to me…

Blog.kasperbaago.dk is converting to kasperbaago.dk

and btw welcome to my new blog and first post in English :D

I’ve been running a danish blog(blog.kasperbaago.dk) for some time, about technology, fun stuff and photo. That’s why you see a lot of danish post under this post :)
Because lack of time, I been putting my old blog together(blog.kasperbaago.dk) with my main site(kasperbaago.dk).

The “new” blog will primary be about web-coding stuff, and I hope that I will inspire and give help to others that code.

I do a lot of JavaScript for the time, and that will be what some of the upcomming posts will be about.
If you have any comments or questions to one of my posts, please write a comment and I will answer ASAP.