Just want to give a quick shoutout to DevDocs.io for a well executed documentation project.
Having put together offline storage apps before, I know the difficulty in maintaining versioning and keeping everything up to date. I just want to applaud them in an perfectly executed offline module and a great tool all around.
Check them out at DevDocs.io
A while back I was expressing to a friend how I wished there was paired programming site that allowed me to pair program with people both better than me and less experience than me, and how awesome it would be if I could get paid to do it.
Well almost to prove that facebook monitors your chat sessions, my facebook adds recently started showing me adds for codementor.io. Its a site that you can ask your questions to a group of experts, and pay for them to chat with you and walk you through your problem.
Being a senior consultant, and loving the idea of getting paid to help others advance their coding knowledge, I signed up as an Expert Mentor. Ive had a few great sessions and a number of good chats, discussing development strategy and how to approach problems.
As a mentor, I rather enjoy being paid for my expertise, and I can see it is a deal for most of my clients, as they get to save a lot of time on whatever problem they are experiencing by having someone who knows what they are doing right there to answer questions.
My only complaint about the ...
So this December I purchased a 2014, Ford Focus ST. For those of you who dont know the car, no it is not a Ford Focus. The Focus ST is European version of the Focus, which became available for the first time in the US in 2013. To show how much of not a Ford Focus the ST is, here is a quick comparison:
|Category||Focus SE||Focus ST|
|Horse Power||160 hp||252 hp|
|Wheel Size||17" alloy||18" Aluminum|
|Transmission||6 speed Automatic||6 speed manual|
|Breaks||Front/Rear Drum||4-wheel disc|
|0-60||7.5 sec||5.8 sec|
A few months ago I backed Trakline, a Kickstarter Project that is a belt for men with no loopholes. Instead it uses a ratcheting system, allowing for a much finer adjustment of belt size. After a successful backing and manufacturing process, mine arrived in the mail the other day.
Having never been big into the world of belts, despite liking to dress classy from time to time, I must say it is a very nice piece of apparel. High quality leather, the lack of loopholes give it a very uniform look. And the buckle that houses the ratchet is very bold and makes a statement.
The ratcheting system makes it super easy to put on, and tighten the belt. At anytime can you pull on it and tighten the belt a little bit. Or you can reach under the buckle and let the belt out a little bit. The size adjustment makes sure the belt, and consequently my pants, fit no matter what. After a big meal, I can release the ratchet a little bit and readjust to fit snugly without having to unlatch the belt.
The very bold buckle is something I never dealt with before and will take ...
I was looking around job sites and found CodeEval.com next to the usual suspects such as LinkedIn and Github pages. So I decided to check it out.
At its core, CodeEval is a set of mathematical and programming challenges to be solve using code. Each challenge has a description, sample input, and sample output. You write your code in any of a dozen different languages and submit it. A few seconds later it grades you based on how accuracy, speed, and how much memory it consumed. Your receive points based on your grade and the difficulty of the problem. You then are ranked against the other 15,000 or so users based on the total of your highest scores from each challenge.
Another benefit I quickly ...
Ever since I took the Skillshare class by Alexis Ohanian; "Making something people love" a few years back, he has been my paragon of start-up success. That class rekindled the fire inside of me that I had ever since I was little, to burning urge to create something and perfect it. So when I found that Alexis was writing Withouth Their Permission I had to pre-order the hard cover.
It finally arrived in the mail yesterday; and upon receiving it, I proceeded to read it cover to cover in the next few hours. My first reaction about the book I waited a few months for, written by the guy I hold in the highest respects, is just "Wow!". He delivered, by every sense of the word.
Without Their Permission: How the 21st Century will be Made no Managed, is a book about the power of the open internet. It is written in 3 parts; an introduction and background, the story of reddit and other successful startups changing the world, and the power of the internet and politics. The entire thing is well written, his story itself is quite an amazing one. His going from college student to start-up superstar is ...
I recently had the opportunity at work to start a project from scratch, including choosing the technology it would be written it.
The problem was for a data entry program that was configurable for different projects and sub-projects. The program would have to be able to configure an input form, take input from it, apply a few business rules, and output it according to a spec. While simple to explain, for a data person well versed in SQL, it is quite the complex project, because nothing is defined up front. Which means table structures are tough to design.
So I took this opportunity to dip my toes into NoSQL. I looked at key-value pairs and document storage systems. The two that stuck out for this instances was MongoDB and CouchDB. After going down the checklists of which was better, I decided to use CouchDB because I was doing the project in AngularJS, and the thought of a builtin RESTful API for Angular to talk to was exciting.
I watched a few videos, even bought CouchDB: The Definitive Guide: Time to Relax. I downloaded couchapp, a python based, CouchDB design document tool, that organizes your json into a file hierarchy for ...
So from my last review of angular, you know that I have recently became a major fan of the AngularJS framework. Over the past week or so I have tried applying it in different ways on different types of projects. Ironcially my problem with the framework was its flexibility. It could be used as a post rendering DOM manipulator like jQuery, it could be used for simple and super responsive pages, and it could be used as a complete MVC. The problem then lies in when interfacing with a framework like my personal favorite, Django, is which framework should handle which parts. Both have templating languages, both have models, routes/urls, and controllers. I was stuck asking myself do I surrender all the power and flexibility of django to Angular to make my frontend superfast and responsive? Or do I keeps djangos structure and only use Angular for the effects after the fact.
My first response was I really liked the Angular framework and the whole concept of SPA (single page application). But using all of its components over the django ones would essentially mean reducing django to a simple backend API for a database. So I started looking for ...
A little background on the project. The project was first and foremost a data reformatter. The part that was tricky was the incoming data was never in the same format, and the output depended on a long set of rules that were unique to each file. In this particular case we were outputting files to XML based on the values of certain fields. We had a developer working on a solutions using C#.NET with MVC, but it was a new framework and language for him and he was met with nothing but problems. So much so that he ended up doing most of the files by hand or using FoxPro.
Last month, my preorder of the Leap Motion finally arrived. After installing Airspace on all my computers, and playing around with it for about a solid week, I have reached my conclusion; its not quite THERE yet.
As a piece of hardware it does some amazing things. It is very accurate about the position and shape of your hands. It tracks movement phenomenally well. The hardware and sensor suite automatically adjust to abient light to ensure continued accuracy. The unit itself is small. lightweight, but sturdy and sleek.
What leaves it lacking, is the software and the interface. Since I received my preorder, there has been a number of patches to the firmware. These patches have drastically increased the user experience and how usable the unit is. Despite the vast improvement, there is still quite a ways to go on the user interface. The system is very picky with its movements. When trying to use it as a mouse, the user quickly finds that modern interfaces with high resolutions and small buttons are designed for high accuracy and precision mice. A mouse is firmly on a table, so when you want to stop moving it, it stays in one place ...
Soon after joining the community of django developers, I found myself lost in all the different methodologies, tools, and setups that were available for django. Use version control, use virtual env, use nose instead of unittest, make sure you install south. It was all very overwhelming the amount of feedback and guides of how to start a project.
After a few projects I found the article by Jeff Knupp Starting a Django 1.4 Project the Right Way. If you are starting out in django, or still trying to find your own methodologies, I highly suggest you take suggestions from it.
It walks you through the steps of properly setting up a easily maintainable environment. When starting out, that may not seem very important, or you have no idea what kind of issues you are going to run into. But after having a few starter projects get very big and un-maintainable, it would have been nice to know how to address these when I started the project.
It addresses issues including version control, virtual env, testing, deployment automation, and database migrations, and at the same time explains why each solution and what it is solving for you down the road ...
This is a little bit late, but as the alpha is coming to a close, I figured I would get my review in for Castle Story.
I first saw Castle Story as the concept video that got posted to /r/gaming. As a huge fan of legos growing up, I was immediately in the "SHUTTUP AND TAKE MY MONEY" line. It took a few months, but eventually it popped its head up again when I was browing kickstarter. I immediately backed it for the Alpha, Beta, and all the Tshirts. I still read their development blog every Friday, and it has been amazing watching the game come together.
Early Iterations of the Alpha release were, as expected, very raw. The navigation took a few minutes to understand and the AI was slow and required constant babysitting, However that being said, it was a blast to play. Even in its infancy, the gameplay was everything I dreamed of it being. I finally had an army of little people building my lego empire!
Due to the slowness and the bugs, longer games became virtually unplayable, even on the fastest of computers, so i gave it a rest and waited for some updates ...
I finally got into the python stuff and it was nice for a one off editor ...
I was recently browsing /r/django when I found Django Discussions. It is a board style community centered around the python framework I love developing in. After a quick social login, I browsed a list of the topics to find a lot of the resources I already use, many I have heard of but have yet to use, and even a few I havent heard of yet.
The interface is nice and clean. It connects to Gravatar and social networks so it is super easy to get started. So far the community is a bit small but it has been really helpful in the short amount of time I have browsed it. I highly recommend it for anybody who uses django, or would like to start using django.
Anyone who has gamed with me knows I am a big fan of the RTS genre of gaming. I grew up with Starcraft and Warcraft and possibly my favorite games of all time are Supreme Commander and the Forged Alliance Expansion. After the RTS genre of massive battles died off and became smaller, more unit centric games like Company of Heroes (which is an awesome game, but I feel it is a different genre than games like SupCom or StarCraft), I moved into MOBA games. One of my first experiences in the genre was Demigod. Was fun and a massive it in my group of friends in highschool.
So it was an easy decision when Ubernet Games, the producers of both SupCom and Demigod, put up a kickstarter for a new type of RTS, to back them with an obscene amount of money(for a video game). Planetary Annihilation Kickstarter proposed a large scale RTS game, which was played on planets, and solar systems. It boasted being able to fight on planets, send units between them, interplanetary bases, and even being able to throw asteroids at opponents planets using gravitational slingshots. As someone who is a big fan of the ...
This rant is prompted by a series of decisions I have made while upgrading my flagship application at work. Reflecting on design decisions past I noticed most of my design and architecture decisions have been heavily based in User Experience and usability of the application. Usability is a very important aspect of any application, however it typically only involves the GUI and some simple logic. What I previously failed to incorporate into my designs was the back-end, and what becomes the Maintainability of the application. If usability dictates how well a application does, maintainability dictates how long it will last.
In my IT days, I have seen a lot of poor implementations of networks, software, and hardware. Some of them were very usable for whatever the need was at the time, but whomever implemented these "solutions" never considered the maintainability of their choices and in the long run they became more of a problem than a fix. To be fair, most of these implementations were probably low budget, and fast turnaround fixes, but there are many a case where they should have been either removed when the need was gone, or refractored to be more maintainable.
The other big problem ...
I was browsing r/programming this morning when I caught found this article; The effects of Computer Programming on the Brain. It was short and sweet and made the interesting arguement that some great computer programmers are addicted to the release of solving coding problems. It described some of the symptoms of "Computer Programming Addiction" and after some internal review, found that occationally I match some of the symptoms. I guess it could be said I am a casual user as opposed to a full on addict. I dont complicate problems to make them challenging for myself, so I know that I am not off the deep end quite yet.- May 30, 2013, 10:09 a.m.
Recently I had to set up a demo of Pinry. Pinry, for those of you who are unfamilair is the open source code of Pinterest.com. The code for Pinry is available on github. This was my first complete, out of the box, deployment of software that I did not develop. I threw it up on webfaction and after about 15 minutes of configuring the static and media directories and proprely mapping the wsgi.py file, it worked wonderfully.
For those of you how are interested in viewing the deployment, check out my beta copy at pinry.mc706.com.
Out of box it was clean, and simple, and had the very familiar feel of pinterest. I am currently working on writing an admin interface for it to allow for central management of pins and adding pins from the backend. I am also considering linking it into an API to allow for photo uploads from dropbox or a phone for personal albums. It is a very robust photo viewer and I am excited to look into using it in nontypical ways.
As I began my journey into the world of Ruby I looked for a few resources to see where I could jump in head first and immerse myself in Rails. I looked around and found a plethora of resources, so many to the point where it was almost daunting. Then Eric suggested I try Rails for Zombies.
Rails for Zombies is a code school course that covers the basics of Rails by a "build-a-long" app they call "Twitter for Zombies". It goes through the basic syntax, usage, strategy and structure of a basic Rails application. Each section starts with a video interwoven with Zombie jokes and corny puns, but delivers well organized content in an easy to digest amount. Then you start a series of challenges, which test your knowledge on the subject you just watched. But the challenges do not just test how much you paid attention, they test your reasoning and ability to apply what you saw and extrapolate it to other problems.
Needless to say, I had a blast going through the challenges and accumulating points. I was surprised how familiar it was compared to Django. It had me wishing that django had similar resources.
I am ...
Last summer I started my kickstarter addiction and I was hooked on the idea of virtual reality. I saw the Kickstarter page for the Oculus Rift and immediately pledged for a development kit. I religiously followed the updates and patiently waited for the dev kit to arrive.
Almost a year later, I got a beautiful briefcase sized box in the mail containing my dev kit. I immediately set it up and fired up the demo. My first reaction was just "WOW". The immersive 3D was phenomenal, and the response time of the screen to your head turning was scary realistic. The screen, being only 720p was somewhat pixelated, but it is a nuance that quickly fades into the background after about 2 minutes.
After finding the controls on my keyboard I walked around the demo world and explored the little villa in Tuscany. After about 5 minutes, you have completely adapted to the system and you get the eerie feeling that it is reality.
As proof that the realness is beyond me and my consumers validation, when my father tried it out while standing and I was controlling the movement, he got almost immediate dizziness and nearly got sick. (Apparently ...
Webfaction is a hosting service written with developers in mind. Since being recommended to me at the end of last year, it has been my go-to hosting provider for all of my web application products.
The site features easy setup for both django and rails web applications. Through their easy to use management console, you create sites, manage domains, spin-up databases, and upload your code. They offer easy to use, scalable hosting plans based on space and bandwidth.
Currently, this site as well as all my other currently deployed web applications are managed and hosted via webfaction.
Date Chicken is an article referred to me by my mentor, written by a friend of his. It describes the situation when management sets and date and holds developers to it, despite changing requirements and lack of understanding of the problem.
I am particularly bookmarking this article, because I am currently in a project that is playing date chicken in the worst way. We are understaffed, under qualified, over-committed, and out of time on a project. Date Chicken is a game we are playing constantly across all of our projects and with a diminishing development team, is a problem that is quickly becoming the elephant in the room.
This article, The Makers Schedule, by Paul Graham changed my life and the way I look at development.
Growing up and into the world of development, I always loved working late and hated meetings, but could never directly acknowledge it or always figured it was something that was unique to me. This article gave me the works and comfort that it I was not alone in my frustration of the ongoing battle between creators and managers.
This validation also helped me when trying to explain to management why the disparity in styles of work. Looking back, it is absurd to break down my critical thinking abilities and constrain them to abstract blocks of time such as hours. Thinking is entirely disassociated from time.
Whenever dealing with non-makers or management type people who try to understand me, I always refer to this article because it captures the entire essence of the problem.
Ive decided that i am going to use this Raves category to respond to articles that I thoroughly enjoyed and have had a profound impact on how I look at life/my profession.
This particular one was written today, by my mentor Eric. It addresses and issue that I personally struggle with and has become an issue with work: burning out.
The article, Invoking the inner Howard Roark, for the Sake of one's sanity. is a summation of many lunchtime conversations about the way that I work and how it will scale moving foward.
For anybody who knows me personally, I am not a morning person, but when it comes to work, I will put in the time, no matter what expense to me, to get a job done. Typically this means coding well into the night and wee hours of the morning. Originally, it was work like this got me moved to a salary position so I could be compensated for all the time I put in.
The problem, as I am beginning to see, is when this type of action of giving 110% is no longer the exception to the rule, but the expectation. When the people ...
The Dunning-Kruger Effect is a " cognitive bias in which unskilled individuals suffer from illusory superiority, mistakenly rating their ability much higher than average. "
This is often used to describe community MOBA or MMORPG players who think they are good and blame everyone else when they do poorly. It is pretty easy to observe, log on to League of Legends and play a few games and enable all-chat. You will see people flaming and blaming everyone else on their team but themselves.
But recently, I have found that this effect exists equally, if not more prevalently, in the workplace. Whether it be programmers who bite off way more they then could possibly hope to chew, or management, making promises to customers having no basis in reality.
People let the success of and sometimes luck of the team go to their head, and it builds confidence in their own ability, whether or not they actually contributed to the success of the project or game. Then when removed from the team or set of situations, they find themselves completely unable to stand on their own, so they blame the rest of the team.
The unfortunate part of the reality is, it is not ...
If you are like me, you are always creating a tasklist of things you really need to do in the next week or so. For a while I looked for different ways to best remind myself what I needed to get done. Google has Tasks connected with the calendar, but it seems to be one of those half baked Google projects. Certain other things like Evernote are nice, but not exactly fitted for tasks. There are project management tools, but many of them are entirely too big for day to day operations or one off activities. I really couldnt find a tool that I liked that kept me on top of my work.
Then a coworker told me to check out droptask.com.
Droptask, althought somewhat ironically named, is a visual task list. Instead of a tabular data like most task lists, Droptask organizes your tasks as circles on a free floating grid. You can drag a hollow circle to represent a task group, and drag tasks inside of it. And you can embed task groups inside of task groups. and keep each group color coded. It is a great way to have a high level, at a glance view ...
So I have used twitter bootstrap for most of my non customer facing project. It is fast, easy, and looks very pretty for next to no work. However when it came to page design I still used tools like gomockingbird or other wire-framing tools to quickly get visualizations of what I wanted something to look like. Then when a friend of mine was having issues using bootheme, a theme designer for bootstrap, I found jetstrap.com. It is a drag and drop layout editor using bootstrap components.
But it gets better. As you are dragging and dropping, there is a code section at the bottom that you can open up and see the code that is being rendered. you can then edit said code and have whatever changes you make propagate live to the site example above. You can then share a non-editable screen to user so they can see the fruits of your work.
Within the first 10 minutes of using it, I bough a full account and it paid itself off almost immediately. When sitting and designing mock-ups for our customer what the site would actually look and feel like, i was able to use their screen size ...
Early in our time working together, Eric suggested I try out a new web application that was in beta testing and directed me to Koding.com. It was one of those "I dont have time to try this out, so you should try it out for me" suggestions, but trusting his judgement, I decided to check it out. The video on the homepage was intriguing but didnt lend too much information as to what exactly the application aimed to do. So after a little bit of research and finding out it was cloud based IDE and development service, I registered for a beta invite and forgot about it.
A few weeks later I got an invite code and a welcoming email. I was in the middle of a big project, but I took a few moments to poke around the system and see what was up. Being a django developer, I was happy to see a django project quicklauncher. It ran django startproject with a precofingured script to set up fastcgi, the databases, and all the redirects and apache configurations. 1 click and I had a working django applicaiton.
The next application i noticed was the terminal. Gave a shell ...
I understand that every developer has the pain of feature creep, and I understand it is an evil that comes with the job, but it still amazes me how disconnected our customers/clients can be from the amount of work that it requires to do something.
This rant is in response to a project I am working on at work. Heres the situation:
We are rebuilding one of our customer-facing portals for one of our larger customers. The system itself is a legacy system that is being worked being entirely replaced before the end of the year, so this rebuild is more of a visual touchup for the meantime. We are basically putting a lot of makeup on a dying pig.
The original scope of the project, and reason we agreed to redesign a system which was about to be replaced, was the customer was moving their salesforce entirely to the iPad. Not a bad move for a company their size. They wanted all the functionality and visuals to fit specifically to the iPad2, which is 1024x768 resolution. They were sticklers for detail and were primarily worried about the visuals. So, in order to appease one of our larger customers ...
In my time as a developer and more specifically a python developer, I have coded in many different IDEs. I have used the build it IDLE, Eclipse + PyDev, Notepad++, NinjaIDE, and Vim. Last year a good friend gave me a trial license to PyCharm. At the time I had a pretty heavily customized environment with Eclipse + PyDev, and I was hesitant to go from a free to use IDE to a paid one. At first glance, I asked myself why would I pay for something when I have all of it for free?
Then I started to use it. First off the set up was super easy. The environment and preferences that took me weeks to set up in Eclipse took minutes. The super easy integration with Version Control and the visual diffs where fantastic. Then came the Model Dependency Diagrams for Django. After about 30 minutes working through a project, I discovered what so many other JetBrains customers already knew, PyCharm is seriously awesome.