Posted by Double Compile on Friday, February 1. 2013
I noticed a little annoyance today about webcomics. Allow me to present the story of Alice and Bob.
Alice reads today's strip from a funny and clever webcomic. She is delighted at its content and thinks her boyfriend Bob would appreciate the strip in a similar fashion. The comic she's reading shows up on the front page of the comic's website (e.g. comic.example.com). She copies the URL in her browser address bar and pastes it in a tweet, e-mail, or Google+ message directed at her sweetheart Bob.
Bob doesn't get around to opening the link until the next day, at which time, a new, different comic has appeared on the homepage. He is confused by why Alice would think he would enjoy the current day's comic. In fact, we the audience knows she had meant for him to read the previous day's. The current day's comic offends him so much that they have a falling out and their relationship crumbles. Bob meets Carol at a local singles' bar and has a heated night of passion and intravenous drug usage which ends in his death from massive overdose.
Bob's failed relationship and death could have been avoided if the webcomic in question issued to Alice's browser a "
301 Temporary Redirect" sending her from comic.example.com to the permanent link for that day's comic (e.g. comic.example.com/2013-02-01). The URL she copied would always send Bob to the exact comic she read, no matter the day on which he opened it. The 301 is important because the new location changes whenever a new comic became available.
Webcomic authors: do this! Think of Bob.
…also, if Alice wasn't such an inconsiderate little bitch, she might have taken the time to share the comic's permalink.
As a side project, a couple of friends and I for a long time have been working on the Elysium role-playing game. I had an idea yesterday for a character generator and campaign builder. I remember from years past when I used to play Dungeons and Dragons that there was a free software character generator called PCGen. I took a look at it to see how easily I could develop plug-ins or data sets that applied to our game system. I didn't get a warm fuzzy about this looking at the PCGen docs.
Jonathan Hawk's Rule of Programming #0 states that you will try to extend or reuse something, but find out it sucks and end up doing it yourself anyway. I'm not saying that PCGen sucks by any stretch, but I don't think our non-d20 game system will be easily implementable there. Time to roll our own.
I toyed with the idea of implementing it using Eclipse RCP, even going so far as to downloading the RCP environment and doing a tutorial. I was pretty impressed how easy it was to get a simple app going with Eclipse RCP. It was at this point that a few sudden realizations hit me.
- I hate Java. I do it all day at work and with each keystroke, a little bit of my soul is stolen.
- I run Linux. If we wanted to distribute this cross-platform, I would have to do some leg work to get it built on Windows and Mac OS X machines.
- I gave thought to recent trends in computing of late: mobile and distributed applications. Nothing new and exciting is happening with native desktop programs anymore.
I decided to abandon the idea that this application needs to be locally-installed on a person's computer, instead realizing that with HTML 5, I can create an app that runs across different devices (including phones and tablets) and would allow people to store their created characters and game information both locally on their device and remotely.
To the ☁! Desktop Apps Be Damned!
Posted by berek on Wednesday, May 18. 2011
I am currently in a position where I am the sole individual on a in-house project. This project is used for new employees to work on until they are moved to their permanent position. Being the sole individual on the project I am responsible for the new employees from anywhere to a week to a month (hence short timers).
I have never managed people and I guess I technically still have not. I think I am more of a technical lead. I am responsible for introducing them to the project and getting as much out of the individuals as possible. There are many hurdles you have to jump:
- Most incoming developers are Java based and don’t have any C# or .NET MVC experience.
- Have you understand what the project is very quickly.
- Must adjust to new development environment (Repository, IDE, Issue Tracker, etc).
- Communication. All short timers are based in a satellite office about 90 minutes from the corporate office.
Now that I am done complaining maybe I can give some hints to help “manage” the situation.
- Communicate – First week twice a day, second week once a day, and after the second week talk as needed. You should also be available as much as possible especially in the first 2 weeks.
- Start small – Start with easy tasks. Even the ones with 20 years experience need time to adjust to a new setting and development style.
- Document - Make sure you know what they are doing and how they did it. This is especially needed if they don’t finish that new feature and your stuck with code you don’t understand. This goes for in code documentation, issue tracker notes, and wiki documentation.
- Freedom – Developers need it and flourish in it.
Posted by berek on Thursday, May 5. 2011
There is more to learning a new programming language then going over a few tutorials on how to build a blog.
I have been using Ruby.On.Rails on the side for about 2 years and after giving a short talk about Ruby I realized I didn’t really know Ruby or Rails. I had a vague understanding of Rails and MVC and Ruby was just another language to write if statements with.
I know the general syntax and concepts to do the basic stuff in Java, Ruby, C#, and a few other languages but I don’t think I have an advanced knowledge of any. To make excuses I think it is because when ever I need to learn a new language it is on a time restraint and I don’t seem to have the time to do the grunt work that is needed to “learn” the language.
Time needs to be spent to go through examples, read multiple books, and dive into the parts of the language that are unique to itself. By making the time you will gain a much better understanding and mastery that will allow you to build more effectively and efficiently.
I need to take that next step to become a better developer.
Posted by berek on Monday, March 28. 2011
Upgraded my key chain last night.
I got an 8 GB flash drive for Christmas last year and I was using it rarely. Stealing the idea from my brother I decided to move the flash drive to my key chain.
I am loading the drive with portable apps and for general storage use.
Current Feature List
- Electronic Car Lock
- Flash Drive
- Car Keys
- House Keys / Key Tool
- Work Keys
- Center Clip
- Easy to remove modules
- Flash drive
- Key Tool
Posted by berek on Thursday, March 24. 2011
If you are a manager of developers you must set them up to succeed.
Developers need the proper tools, support, and expectations to be all that you want them to be. If there is disorganization in the project, in the team, or in the company than
There are three things that developers need when starting a project. This project could be in the middle of development or could be starting tomorrow.
- Project Manager. This individual does not have to actually be the project manager but they need to be the person that knows the specifications of the project front and back. Questions like ‘How should inputting the account data work?’, ‘Do we need a pie chart or a bar chart?’, and ‘Do they want a tabbed interface or a sidebar?’
- Technical Lead. If there is an existing code base then this person is essential. Without having some direction new developers can be lost in a sea of abstraction and new technologies.
- Proper Expectations. This is going to change on experience and how the first couple weeks unravel. Is the new developer really getting it or do they need some extra attention or some training?
When bringing in new developers or moving existing developers to a new project make sure they have what they need to succeed. By providing essential tools and support will allow your developers to be productive, happy, and create awesome.
Posted by berek on Friday, March 11. 2011
Curly braces should almost never be on a new line. So here are the steps to make MS Visual Web Developer Express more awesome.
Tools -> Options
Select ‘Show all Settings’
Text Editor -> C# -> Formatting -> New Lines
Uncheck all boxes except for the last three (the last three are all under the ‘New line options for expressions’ directory).
This will ensure that all curly braces are on the same line as the class, function, else, catch, and so on.
Posted by berek on Friday, March 11. 2011
I enjoy feedback and conversation when I am writing. By getting different viewpoints your thoughts and ideas can be enhanced, changed, or reinforced in a beneficial way. After using and enjoying Tumblr for a few months I realized that they don’t support comments or have many advanced features that WordPress has. So, I decided to switch to WordPress for my public blogging needs.
For a public blog I believe WordPress is far superior, however, for a personal journal or anything where feedback is not really needed I like the simple interface of Tumblr.
I will continue to use Tumblr for my monthly career journal and most likely any other personal writing needs in the future.
Posted by berek on Wednesday, March 9. 2011
When you are working on non-visual aspects of your project it can be hard to demonstrate to managers and customers that you are making strides to your goal. You need to be able to show that things are getting done, you need a way to demonstrate your kicking ass and you need to help create that perception.
Version control and issue trackers can be a very powerful tool to create that needed perception. You should be using these tools anyway. Any size development team should be using them, even if it is just you.
Version control systems allow teams to backup, share, and collaborate effectively. You can also use it to show all the commits you have pushed to the code base. By writing good code and committing new code on a regular basis it shows that your are contributing to the project and getting things done.
Managers and customers should really like issue tracker software because is allows them to see what bugs and features are being implemented. If you are clearing bugs out like the Orkin man then managers will be able to see your work.
Providing time spent on an issue, on going updates, and estimated time will provide valuable information to your manager for future planning and help them realize your value.
Creating, updating, and removing issues would also help. By helping to maintain issues you are showing that you care about the project and that you understand what it should be doing.
Having your version control and issue tracker integrate with each other is also a very good idea. Many issue trackers will recognize new commits and update the issue automatically. Some will also give statistics on you is committing and countless other breakdowns.
Doing your work is not always enough. Your manager needs to know how awesome you are but you want to do it the right way.
Do great work and use great tools.
Posted by berek on Wednesday, March 2. 2011
Knowing your weaknesses is a good thing, a very good thing. If you recently had a job interview you should have already considered your weak points and if you are getting ready for an interview it is a MUST.
Weaknesses do not include:
- I work too hard
- I love too much
Weaknesses will change with your job description. If you don’t know a lick of PHP that should not hurt if you are applying for a Ruby.On.Rails position, but you might need to know bash if your are going to be a System Administrator. There are weaknesses that will have an affect across the board. Verbal communication and writing are great examples that can’t hurt in almost any field.
You need to stay aware of the evolution of your skills and job description and constantly reevaluate them.
Having a recurring assessment of your weaknesses will allow you keep improving over time. By concentrating on the skills that are most needed and need the most work will allow you to build these skills like an RPG character.
Posted by berek on Monday, February 28. 2011
Why Company Network Restrictions Are Bad
- Tells your employees you don’t trust them
- Hamper communication
- People will find ways to waste time
- Creates bureaucracy
- Creates a bad guy (enforcer of restrictions)
- Don’t want people wasting time?
- Give them interesting things to do
- Hire good people
- Realize people need a break
Posted by berek on Wednesday, February 16. 2011
I graduated with a Computer Science degree in May of 2007 and I thought I was hot stuff then I realized I didn’t know anything.
Three and a half years later I still don’t know a damn thing.
I have noticed that I tend to go through cycles of different levels of confidence. One week I will think I can take on any challenge no matter the conditions and the following week I will be wondering why I am not working at Lowe’s.
The important thing is to keep in mind that in both states you are probably wrong. You need the confidence to take on the tough tasks that will help your career but you don’t want to be a dick.
So, walk with confidence and talk with modesty.
On June 5, 2009 — the day before the Palm Pre released, I decided that I would pick one up on a whim, having read the news and hype about it in the preceding months. I got up early that Saturday and was at my local Sprint store by 6:30am, being one of the first 10 in line.
I put the Palm Pre in my hands and never looked back. I was floored by its looks, its ease of use, and its multitasking. Later, I was courted by Palm's warm feeling for their developer community. When HP announced their purchase of Palm, I was wary at first, hoping they wouldn't bury this phone platform I came to love. (I'm not a fanboy, I'm an enthusiast!)
After watching the coverage of the Think Beyond event today, I can safely say that HP gave me the warm fuzzies thanks to all we've been waiting for: new hardware!
- Pre3 – What I'm doing with my summer vacation. 1.4 GHz. 3.5″ 480×800 WVGA. 512MB RAM. 802.11a/b/g/n. Autofocus 5MP HP 720p Camera. Front-facing VGA Camera.
- Veer – This thing is adorable. 800MHz. 2.5″ 320×400. 5MP Camera. I think this is their answer to the Kin.
- TouchPad – Daddy Like. Dual Core Snapdragon 1.2GHz. 9.7″ 1024×768 XGA. 1GB RAM. 802.11b/g/n. 1.3MP Front-facing Camera.
The Touch to Share concept and SMS/call forwarding from the Pre3 to the TouchPad look absolutely sick.
The phone's availability is "this summer". I can only hope that Sprint decides to get off its ass and carry more webOS hardware.
The event ended with an enigmatic reference to HP's plans to bring webOS to the Personal Computer. How exactly will that work?
SQLSTATE[HY000]: General error: 1007 Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier.
I hate you so much, Microsoft SQL Server.
Page 1 of 4, totaling 50 entries