This guide will show you how to deploy a Grails application to Heroku and bind it to the Postgres database service.
A collection of articles and resources of interest to the modern software developer
Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do.
-- Steve Jobs
Friday, December 30, 2011
Getting Started with Grails web apps on Heroku/Cedar | Heroku | Dev Center
Heroku | Dev Center | Getting Started with Grails web apps on Heroku/Cedar
Thursday, December 22, 2011
Web Testing with MbUnit and WatiN Part 2: Controlling Localhost and IIS Express
Web Testing with MbUnit and WatiN Part 2: Controlling Localhost and IIS Express
One important aspect of web testing which is not so often discussed in blogs or articles is how to run tests against a web project running in debug mode on the local host. Microsoft provides two options to let you debug web projects locally: the Visual Studio development server and IIS Express. In this second part of our series on writing web integration tests, we’re going to demonstrate how to use the WebTestServer<T> class to start either server from within a running test suite.
In this article, you will
- Create a simple one page website project for testing
- Create a web test project that tests it against the VS Development Server
- Alter the website and test project to test the page using IIS Express.
Wednesday, December 21, 2011
Web Testing with MbUnit and WatiN Part 1: Keeping Your Tests Legible | developerFusion
Web Testing with MbUnit and WatiN Part 1: Keeping Your Tests Legible
We’re all quite comfortable writing unit tests to verify that a piece of code does what we think it should do, and there are many test frameworks to enable this activity. One solid solution for going one step further and writing powerful integration tests for .NET web applications is to combine WatiN, an informal .NET port of the WatiR open-source (BSD) family of Ruby libraries for automating web browsers, with the Gallio automation framework and MbUnit test library.
Deploy Grails Applications on Heroku
Deploy Grails Applications on Heroku
We're happy to announce the public beta of Grails application deployment on Heroku with support for Grails 1.3.7 and 2.0 provided by the open source Heroku Grails buildpack.
Wednesday, December 14, 2011
CAUSTIC for Android: Caustic 2.0 is coming...
CAUSTIC for Android: Caustic 2.0 is coming...
Exciting news for Caustic owners and Android music makers. I've got a few week's work left polishing up version 2.0 of Caustic and it's HUGE. It would probably be shorter to list what's NOT new rather than the new features so for now I'll give you the major items with some screenshots. A more complete feature list, as well as a user's manual, will accompany the official release.
Tuesday, December 13, 2011
What Every Computer Scientist Should Know About Floating-Point Arithmetic | DZone
What Every Computer Scientist Should Know About Floating-Point Arithmetic
Floating-point arithmetic is considered an esoteric subject by many people. This is rather surprising because floating-point is ubiquitous in computer systems. Almost every language has a floating-point datatype; computers from PCs to supercomputers have floating-point accelerators; most compilers will be called upon to compile floating-point algorithms from time to time; and virtually every operating system must respond to floating-point exceptions such as overflow. This paper (from 1991) presents a tutorial on those aspects of floating-point that have a direct impact on designers of computer systems. It begins with background on floating-point representation and rounding error, continues with a discussion of the IEEE floating-point standard, and concludes with numerous examples of how computer builders can better support floating-point.
Free Tools to Test your Website on Mobile Devices | Designzzz
Free Tools to Test your Website on Mobile Devices
A list free tools for web developers to test and check their websites on mobile phones and other devices, such as iPad. Emulators and simulators, analysis tools and Firefox extensions. They will work as Adobe Device Central alternatives.
Forbes is wrong about “Developernomics” | Knowing .NET
Forbes is wrong about “Developernomics”
Professional talent does vary, but there is not a shred of evidence that the best professional developers are an order of magnitude more productive than median developers at any timescale, much less on a meaningful timescale such as that of a product release cycle. There is abundant evidence that this is not the case: the most obvious being that there are no companies, at any scale, that demonstrate order-of-magnitude better-than-median productivity in delivering software products. There are companies that deliver updates at a higher cadence and of a higher quality than their competitors, but not 10x median. The competitive benefits of such productivity would be overwhelming in any industry where software was important (i.e., any industry); there is virtually no chance that such an astonishing achievement would go unremarked and unexamined.
Monday, December 12, 2011
One Click PhoneGap Build to Android Device Script | DZone
One Click PhoneGap Build to Android Device Script
I've been fooling around with PhoneGap Build, and I really love it. I love that I don't need to fire up Eclipse or XCode to start fooling around with an app. All I need is a text editor and a browser. What I especially love is the ability to integrate a github repository to the whole process. It makes following proper development practice, while living in the cloud, very easy.
But I've been spoiled for the last year or so. Being able to immediately preview on a connected device has ruined me for the command line, multi-step, manual crap. So at least on Android I've fixed it for myself by building a nice shell script that takes advantage of PhoneGap Build's Web APIs to create a one-step build.
Labels:
Android,
Cloud,
Development,
Mobile,
PhoneGap
Why Android's UI Is Laggy Compared to iOS and Windows Phone | Daring Fireball
Daring Fireball Linked List: Why Android's UI Is Laggy Compared to iOS and Windows Phone
Interesting technical look at the design of Android’s graphics and event processing by Andrew Munn, trying to explain why it feels so laggy compared to iOS and Windows Phone:
Android UI will never be completely smooth because of the design constraints I discussed at the beginning:
[…] This is the same reason why Windows Mobile 6.5, Blackberry OS, and Symbian have terrible touch screen performance. Like Android, they were not designed to prioritize UI rendering. Since the iPhone’s release, RIM, Microsoft, and Nokia have abandoned their mobile OS’s and started from scratch. Android is the only mobile OS left that existed pre-iPhone.
- UI rendering occurs on the main thread of an app
- UI rendering has normal priority
Reading and Writing INI Files in C# | DZone
Reading and Writing INI Files (C#)
Initialization files known as INI files provide a standard means for storing configuration information for software in a text file. Although rarely used by .NET applications, there are situations where these files must be read and written to using C#.
Android Dashboard Design Tutorial | Ravi Tamada
Android Dashboard Design Tutorial
Tutorial about creating android dashboard screen design. An example of facebook dashboard screen is explained. Also added some functionality like launching new activity on selecting icon on dashboard.
jQuery Mobile and Semantics | DZone
jQuery Mobile and Semantics
HTML5 added all of the cool new semantic elements like header, footer, and article, which help you describe your content better. It would be cool if you could use them with jQuery mobile. The data-role attribute still makes sense because as elements there can be more than one of them on a page--for example, a page header and an article header.
Tutorial: Play Framework, JPA, JSON, jQuery, & Heroku | James Ward
Tutorial: Play Framework, JPA, JSON, jQuery, & Heroku
If you are a Java developer then you really need to give Play Framework a try. It is really refreshing to take a few minutes, step out of the legacy-feeling world of traditional Java web app development and into something modern and fun. I want to walk you through a very simple tutorial where we will build a web application with Play Framework. The application will use JPA for persistence and expose access to the data through a JSON over HTTP interface. The client-side of the application will be built with jQuery. Lets get started.
Recent Software Development Posts of Interest - Early December 2011 | Dustin's Software Development Cogitations and Speculations
Recent Software Development Posts of Interest - Early December 2011
I have run into several software development blog posts over recent weeks that I think are worth reading or keeping links to for future reference. I collect some of these in this post.
Tuesday, December 6, 2011
Heroku Plugin for Grails | An Army of Solipsists
An Army of Solipsists » Blog Archive » This Week in Grails (2011-43)
We were able to announce and demo the new Herokuplugin that we’ve been developing in collaboration with the folks at Heroku. Tomás Lin and Graeme were able to get Grails apps deployed when Heroku first announced support for Java but the process wasn’t very simple and involved Maven. The new plugin works a lot like the Cloud Foundry
plugin in that it automatically reconfigures your DataSource, Redis, MongoDB, RabbitMQ, and even Memcached connection settings to use configured Heroku services, all with almost zero configuration in your application. We should have a proper release within the next couple of weeks – there are a just few more issues to iron out first.
hello-heroku - Grails Deployment on Heroku | GitHub
grails-samples/hello-heroku - GitHub
Example Grails 2.0.0.BUILD-SNAPSHOT application deployable to Heroku's new Java support.
Deploying a Grails app on EC2 from scratch | delahuntyware
delahuntyware: Deploying a Grails app on EC2 from scratch
Ok so i have found some time write up how to deploy a Grails app onto EC2. This is a step by step guide to setting up Apache, Tomcat, Mysql, Java on an ubuntu Ec2 Box.
For those who do not know. EC2 is Amazon's (that's right the one famous for books) hosting service of its webservice suite. It allows you to run virtual server images on it amazingly scaleable infrastructure. Plus you only pay for what you use. If your server is up for 4 hours you pay for 4 hours. $0.10 per hour (about). You can build your own server as i will show you in the steps below and manange it on their infrastructure.
These are the steps i have taken and they work for me. I am sure there are hundreds of ways to skin a cat (so the cat skinners say) but this is my way. Take it or leave it :)
Tuesday, November 29, 2011
Windows Version of Kinect Features 'Near Mode' | TeamXbox
Windows Version of Kinect Features 'Near Mode'
A firmware update allows the Windows version of Kinect to sense subjects as close as 40 centimeters from the sensor.
Juicy Bits | Daring Fireball
Juicy Bits
Fun story by Mike Swanson, on how he left his job as a developer evangelist at Microsoft to be a full-time iOS app developer.
Software Design - Step 1: In which we figure out what our software is going to do | Green Door Games
Step 1: In which we figure out what our software is going to do
So, in case you haven’t visited before I’m writing a small game using a simple and very effective methodology. I’m also taking you, dear reader, along for the ride!
Today, we’re figuring out what our features will be. If you continually find yourself at odds with clients or end up with crazy marketing people who say one thing before you write a project and expect another when you’re done – a good set of features can make all the difference.
Friday, November 4, 2011
Tough Tests Flunk Good Programming Job Candidates | Slashdot
Tough Tests Flunk Good Programming Job Candidates - Slashdot
"Fatal Exception's Neil McAllister discusses the use of quizzes and brain-teasers in evaluating potential software development hires, a practice that seems to be on the rise. 'The company best known for this is Google. Past applicants tell tales of a head-spinning battery of coding problems, riddles, and brain teasers, many of which seem only tangential to the task of software development. Other large companies have similar practices — Facebook and Microsoft being two examples,' McAllister writes. 'You'll need to assess an applicant's skill in one way or another, but it's also possible to take the whole interview-testing concept too far. Here are a few thoughts to keep in mind when crafting your test questions, to avoid slamming the door on candidates unnecessarily.'"
Thursday, November 3, 2011
Agile – Specialisations Still Matter | #AltDevBlogADay
Agile – Specialisations Still Matter « #AltDevBlogADay
Now I’m concerning myself with only the technical side of an agile team but I’ve seen this raised in a number of different agile circles. In those cases there seems to be the impression that swapping a database, physics or audio developer with any other specialization like UI, animation or graphics and an agile team should be able to roll up their sleeves and perform the different roles to the same level with the same level of outcome.
But we have specialist developers for a reason. They are great at what they do, they understand the area in which they work and they know how to get the best results in the shortest amount of time. They have a passion for the area they are focusing in which usually means they’ll go a step further to research their area and keep up with developments which other developers may not have the time or the understanding to do.
By spreading your talent thin and assuming that people can fill each others shoes leads to the following issues
- You are not respecting the knowledge, skill, experience and passion that a specialist can bring to their work and as a result not respecting the developer themselves
- You’re reducing the impact these people can have on a team and it’s often the experienced specialists that inspire younger members of the team into an area they are interested in
- The ability of those specialists to learn more about their area and pass that onto others is drastically reduced.
- The ability for the team to push their development boundaries will be indirectly reduced as everyone on the team aims for the ‘generalist’ role to fit in
Developers and Professionalism | Girl Developer
Developers and Professionalism - Girl Developer
Clients trust me to take care of things they don't know how to do. In order to do that, they need to feel I am competent and capable. Disappearing in the zone for a few days, while it may be best for the project, isn't comforting for the client. Up until then I had a dim view of client hand holding, and thought "they just need to trust that I am working on it." However, I have realized that a good working relationship, constant updates, and accountability are just as important as clean code and passing tests.
Have you done your 10,000 hours? | #AltDevBlogADay
Have you done your 10,000 hours? « #AltDevBlogADay
I’m not a big fan of Malcolm Gladwell’s books, but one of the things I read about after seeing a review of his book Outliers got me thinking about my own students.
His book Outliers is based on the research of Anders Ericsson in which he studies the commonalities of “experts” and how they came to be that way. The upshot of which is that it is all about “practice”. Notionally, the book suggests that you become an expert at something by fulfilling a regimen of practice for “10,000 hours”. You can read the research yourself to see how far Gladwell has stretched that notion. The thing is, 10,000 hours works out to rougly 3.5 years of full time 8 hours-a-day work!
Siri Gives Apple Two Year Advantage Over Android - Slashdot
Siri Gives Apple Two Year Advantage Over Android - Slashdot
Hugh Pickens writes "Gary Morgenthaler, a recognized expert in artificial intelligence and a Siri board member, says that Apple now has at least a two-year advantage over Google in the war for best smartphone platform. 'What Siri has done is changed people's expectations about what's possible,' says Morgenthaler. 'Apple has crossed a threshold; people now expect that you should be able to expect to speak ordinary English — and be understood. Siri has cracked the code.' The threshold, from mere speech recognition to natural language input and understanding, is one that Google cannot cross by replicating the technology or making an acquisition adds Morgenthaler. 'There's no company out there they can go buy.' Morgenthaler's comments echo the recent article in Forbes Magazine, 'Why Siri Is a Google Killer' that says that Apple's biggest advantage over any other voice application out there today is the massive data Siri will collect in the next 2 years — all being stored in Apple's massive North Carolina data center — that will allow Siri to get better and better. 'Siri is a new interface for customers wanting to get information,' writes Eric Jackson. 'At the moment, most of us still rely on Google for getting at the info we want. But Siri has a foot in the door and it's trusting that it will win your confidence over time to do basic info gathering.'"
Tuesday, November 1, 2011
The 10 Minute Test Plan | Google Testing Blog
Google Testing Blog: The 10 Minute Test Plan
Some test plans document simple truths that likely didn’t really need documenting at all or provide detailed information that isn’t relevant to the day to day job of a software tester. In all these cases we are wasting effort. Let’s face facts here: there is a problem with the process and content of test plans.
To combat this, I came up with a simple task for my teams: write a test plan in 10 minutes. The idea is simple, if test plans have any value at all then let’s get to that value as quickly as possible.
Given ten minutes, there is clearly no room for fluff. It is a time period so compressed that every second must be spent doing something useful or any hope you have of actually finishing the task is gone. This was the entire intent behind the exercise from my point of view: boil test planning down to only the essentials and cut all fat and fluff. Do only what is absolutely necessary and leave the details to the test executors as opposed to the test planners.
Sunday, October 30, 2011
Test Studio versus Visual Studio 2010 Test Professional Comparison | Telerik
Test Studio versus Visual Studio 2010 Test Professional Comparison | Telerik
This page is designed to help clarify the way Telerik Test Studio goes beyond Visual Studio 2010 testing products (Visual Studio Test Professional 2010 and Visual Studio 2010 Ultimate) to offer richer user experience and enhanced productivity. Its purpose is also to help visitors understand the key challenges with test automation that we are trying to solve with our solution beyond just the “Hello World” test case.
With the release of Visual Studio 2010, Microsoft has introduced the capability to automate the user interface (UI) of applications on the Windows platform. Visual Studio 2010 introduces the CodedUI test framework and the MTM (Microsoft Test Manager) as solutions for Testers and QAs to help manage test creation and test automation. We believe this to be a great step forward and a win for our customers especially in the areas of Test and Lab management. The Visual Studio / .NET platform has traditionally been exclusive to developers but now with VS2010 it also encompasses testers and QA professionals.
Developers + Testers = Awesome | Telerik
Telerik Automated Testing Tools Blog - Audiocast on Developer + Tester Collaboration
The Test Studio team is sponsoring EuroSTAR 2011 in Manchester, England from 21-24 November. Part of the run up to EuroSTAR includes a series of audiocasts from various people in the testing industry.
I’ve got one episode in that series: “Devs + Testers == Awesome” [1] I talk for about ten minutes on something I’m particularly passionate about: tight collaboration between testers and developers. I’ve long believed (through practical hard knocks!) that closer collaboration gets our customers better software.
You’ll have to register on the site to listen to the audiocast (sorry!), but I think it’s worth it!
[1]The EuroSTAR folks changed the title to “Devs + Testers = Awesome”, so it’s an assignment, not equality check. Please don’t compile and run that title. It won’t work as expected.
Saturday, October 29, 2011
Image Resizer for Windows
Image Resizer for Windows
Image Resizer for Windows is a utility that lets you resize one or more selected image files directly from Windows Explorer by right-clicking. I created it so that modern Windows users could regain the joy they left behind with Microsoft's Image Resizer Powertoy for Windows XP.
Wednesday, October 26, 2011
Just create to create | Brit
Brit
You may not be a Picasso or Mozart but you don’t have to be. Just create to create. Create to remind yourself you’re still alive. Make stuff to inspire others to make something too. Create to learn a bit more about yourself.
- Frederick Terral
Tuesday, October 25, 2011
Fast Image Resizer - CNET Download.com
Fast Image Resizer - CNET Download.com
We resize images all the time--to e-mail to friends, post on blogs, share on Facebook, and much more. Although we often resize images in a photo-editing program as soon as we take them off the camera, it's not uncommon for us to need a resizing tool that can be used the rest of the time. After all, who wants to launch a big photo-editing program for tasks that can be completed with a lightweight utility? That's where Fast Image Resizer comes in. This basic program lets users resize images as quickly and easily as anything we've seen.
Responsive Web Design in Sass Part 1: Fluid Layouts and Fluid Images | The Sass Way
Responsive Web Design in Sass Part 1: Fluid Layouts and Fluid Images - The Sass Way
No doubt you’ve at least heard the term “Responsive Web Design”. Since Ethan Marcotte’s article and book came out over the last year or so it’s been the hot topic among web folk, and rightly so. The solutions Ethan puts forth gracefully solve a number of problems we’ve been limping along with.
Using Compass and Sass for CSS in your Next Project | Nettuts+
Using Compass and Sass for CSS in your Next Project | Nettuts+
Sass could potentially be called CSS 2.0; it has some really nifty features that allow you to write your code in less time and with more flexibility. In today’s article, we will be working the basics!
Sass is simply a different way to work with CSS. It allows you to keep your CSS code very simple and helps increase readability.
Compass makes working with Sass even easier. The author, Chris Eppstein, has also included some converted frameworks such as Blueprint, YUI, and 960.gs. It also easily integrates with Ruby based projects, but is just as easy to add to any other project. Compass is open-source and is extremely well documented.
John McCarthy 1927-2011 | Duncan Davidson
John McCarthy 1927-2011 - Duncan Davidson
John McCarthy was the inventor of the Lisp language and coined the term “Artificial Intelligence” in the 1950’s. In the sixties, his thoughts on treating time-shared computers as a utility predicted the current use of cloud computing. He is another one of those people that left a huge mark on the world as we know it. Thank you John.
CSS3 box-ordinal-group property | W3Schools
CSS3 box-ordinal-group property
The box-ordinal-group property specifies the display order of the child elements of a box.
Elements with a lower value are displayed before those with a higher value.
Note: The display order of the elements with the same group value depend on their source order.
Sunday, October 23, 2011
The "Light" CMS Trend | CSS-Tricks
The "Light" CMS Trend | CSS-Tricks
CMSs are beautiful things. Just as CSS allows us to abstract the design away from the markup, a CMS allows us to use a database to abstract the content away from the markup. There are a zillion of them, each with different backend UI's and different ways to doing things.
But CMSs are for web people. Even my beloved WordPress can be challenging to train/explain to someone who has no experience working with websites. Perhaps this is the motivation toward a new trend in CMSs I'm calling "light" CMSs. Each of them attempt to make the task of updating content on a website easier and more intuitive. This is largely at the cost of features. These are for simple, otherwise static websites where updating content is the name of the game.
Thursday, October 20, 2011
Redirecting from index.gsp | Groovy on Grails
Groovy on Grails: Redirecting from index.gsp
1. Create a TagLib file
grails-app\taglib\MyAppTagLib.groovy
2. Define a method that routes to your first page
class MyAppTagLib {
def redirectMainPage = {
response.sendRedirect("${request.contextPath}/myController/welcomePage/")
}
}
3. Change your index.gsp to contain only:
Note: One advantage to this approach is that you have a coding opportunity over simply mapping the "/" url.
For example, if you want to provide features or data based on a specific user's login id.
indexing - Best practices for grails index page - Stack Overflow
indexing - Best practices for grails index page - Stack Overflow
What is the right way to populate the model for the index page in a grails app? There is no IndexController by default, is there some other mechanism for getting lists of this and that into the model?
Simple Made Easy | InfoQ
InfoQ: Simple Made Easy
Rich Hickey emphasizes simplicity’s virtues over easiness’, showing that while many choose easiness they may end up with complexity, and the better way is to choose easiness along the simplicity path.
Tuesday, October 18, 2011
William Gibson on The Setup | Daring Fireball
Daring Fireball Linked List: William Gibson on The Setup
This man has his priorities in order:
Neither hardware nor software excite me very much, after whatever brief (and usually painful) novelty has worn off.
Good interface design is as transparent as possible, because I don’t want to have to think about it. I just want to write, or do whatever else I’m doing, and not have to think about whatever I’m doing it on.
Monday, October 17, 2011
The One Rule: Context Switches Are Horrifically Expensive | Rands In Repose
Rands In Repose: The One Rule
When it comes to working at your computer, there is only one rule: context switches are horrifically expensive.
Ask Slashdot: Ergonomic Office Environment? | Slashdot
Ask Slashdot: Ergonomic Office Environment? - Slashdot
relyte writes "In the spirit of the recent poll — where many people recommended ergonomic upgrades — what's the best way to get a comfortable, ergonomic, efficient work environment? I'm just starting my career in software development, and I'd like to get a great chair, keyboard, mouse, monitor, etc. What models would you recommend to save wear and tear on joints, eyes, and muscles? Are there other categories I should consider?"
Saturday, October 15, 2011
jQuery Drop Down Menu | Javascript-Array
jQuery Drop Down Menu - Simple JavaScript Plugin
So, I present to you the simple drop-down menu. The peculiarity of this menu is that these 20 lines of code and absence of various cumbersome mouse events within html code. This script requires the jQuery library. There's a version that does not require jQuery.
Grails active page navigation menu | Aa Ideas
Grails active page navigation menu « Aa Ideas
A Common feature found in many CMS’s or web-apps is a navigation menu with a highlighted active page, or the parent of the current page in a hierarchy. The trick is getting the proper element with an added CSS class of ‘selected’ or ‘active’. There are a number of ways to do this, but I just found a new way to do it in Grails using a Sitemesh’s pageProperty.
Friday, October 14, 2011
Grails - Add method on String to truncate long texts nicely | technipelago
Add method on String to truncate long texts nicely
I had several domain classes with long text content that I wanted to display just a summary of on the screen, especially in lists columns, etc.. I first added a getIntro(int numChars) method on domain classes with long strings, and used them when appropriate.
But I soon realised that I violated the DRY principle (Dont Repeat Yourself) with getInto() methods all over the place. I could have put the method in a base class but my text properties did not have the same name in all domain classes, so that was complicated.
I think I found a much better solution. I removed all those methods and added a getIntro(int) method to String and GString in BootStrap.groovy.
Grails - user - Paragraphs
Grails - user - Paragraphs
What's the standard design solution for the following problem :
The application prompts the user for some text. This is entered in a text area. And it's easy to store it as a long String. But how to preserve the line breaks to keep the separate paragraphs ? Should the text be stored as String[] ? Should the controller convert the text area String into String[] ?
Managing Content through Tagging in Grails: Part 1 | Packt
Managing Content through Tagging in Grails: Part 1 | Packt
Tagging is a loose, community-based way of categorizing content. It allows a group of people to categorize by consensus. Anyone is able to tag a piece of content. The more a tag is used, the more meaning it takes on and the more widely used it becomes. This categorization by consensus has been dubbed as folksonomy (http://en.wikipedia.org/wiki/Folksonomy)
So let's get started by building our tagging support.
Thursday, October 13, 2011
Integration and unit tests in large Grails project | Stack Overflow
Integration and unit tests in large Grails project - Stack Overflow
It is usually more complicated to write unit tests due to having to deal with mock objects than integration tests in a large Grails project. This article even suggests we can even do away with unit tests altogether and write only integration tests which I tend to agree.
The only disadvantage I see is the speed of execution for integration test as compared to same unit test.
What are your thoughts about this from your actual experience working on a large scale Grails project?
If we write a unit test that tests exactly same method and also write integration test that also tests exactly same method, is this normal way of writing tests?
What you ended up with in terms of ratio of unit tests to integrations tests in actual large Grails project?
Have you successfully completed a large Grails project without writing any tests?
Wednesday, October 12, 2011
Grails 2.0.0.M2 released! | grails.org
Grails 2.0.0.M2 released!
We are pleased to announce that the second milestone of Grails 2.0 is now available to download. You can find out what's new in Grails 2.0 and what's been fixed through the release notes.
Monday, October 10, 2011
Grails - Plugin - FullCalendar
Grails - Plugin - FullCalendar
Adam Shaw has written a full page javascript calendar component using jQuery: http://arshaw.com/fullcalendar/ See the page above and the Screenshots tab for more.
Grails - Best Calendar plugin?
Grails - user - Best Calendar plugin?
I'm looking for a simple way to add some calendar views to my application. I need to render blocks of time on a monthly, weekly and daily view. The primary use case is a read-only view, so I don't really care about editing/creating abilities.
FullCalendar - Full-sized Calendar jQuery Plugin
FullCalendar - Full-sized Calendar jQuery Plugin
FullCalendar is a jQuery plugin that provides a full-sized, drag & drop calendar like the one below. It uses AJAX to fetch events on-the-fly for each month and is easily configured to use your own feed format (an extension is provided for Google Calendar). It is visually customizable and exposes hooks for user-triggered events (like clicking or dragging an event). It is open source and dual licensed under the MIT or GPL Version 2 licenses.
Ask Slashdot: Does Being 'Loyal' Pay As a Developer? - Slashdot
Ask Slashdot: Does Being 'Loyal' Pay As a Developer? - Slashdot
An anonymous reader writes "As a senior developer for a small IT company based in the UK that is about to release their flagship project, I know that if I were to leave the company now, it would cause them some very big problems. I'm currently training the other two 'junior' developers, trying to bring them up to speed with our products. Unfortunately, they are still a long way from grasping the technologies used – not to mention the 'interesting' job the outsourced developers managed to make of the code. Usually, I would never have considered leaving at such a crucial time; I've been at the company for several years and consider many of my colleagues, including higher management, to be friends. However, I have been approached by another company that is much bigger, and they have offered me a pay rise of £7k to do the same job, plus their office is practically outside my front door (as opposed to my current 45 minute commute each way). This would make a massive difference to my life. That said, I can't help but feel that to leave now would be betraying my friends and colleagues. Some friends have told me that I'm just being 'soft' – however I think I'm being loyal. Any advice?"
Countdown to Grails 2.0: Unit testing | SpringSource Team Blog
Countdown to Grails 2.0: Unit testing | SpringSource Team Blog
The first milestone of Grails 1.4 (now 2.0) has now been released and we are on the last stages of the journey towards1.42.0 final. As we approach that point, I will be writing a series of blog posts that cover the various new features and changes that the1.42.0 version brings. I'll be starting with the new testing support.
Since the beginning, Grails has provided three levels of testing support for developers: unit, integration, and functional. Unit tests had and still have the benefit of running independently of Grails, but they typically required a fair bit of extra work in the form of mocking. The unit test framework introduced with Grails 1.1 helped with that mocking, but it still didn't cover all use cases and so developers needed to resort to integration tests, which run inside a bootstrapped Grails instance, earlier than was desirable.
Grails 2.0 introduces significant changes that improve the situation considerably:
So what do these changes look like to you as a user?
- the unit test support can be integrated into any test framework (no more base classes);
- it has a full in-memory GORM implementation; and
- it better supports testing REST actions, file uploads, and more.
Saturday, October 8, 2011
Using Cloud Foundry from STS | SpringSource Team Blog
Using Cloud Foundry from STS | SpringSource Team Blog
By now you probably heard about Cloud Foundry, the open PaaS from VMware that was announced yesterday; if not make sure to check out the recording of the webcast. Eventually you have already read earlier blog posts introducing the Spring support for Cloud Foundry, the add-on for Spring Roo and the Grails plug-in.
With this post I’d like to introduce the Eclipse-based support for Cloud Foundry that lets you manage your cloud deployments, including configuration of Services and service bindings, application scaling, access to file resources and much more.
Thursday, October 6, 2011
Steve Jobs: A Few Memories | Stephen Wolfram Blog
Stephen Wolfram Blog : Steve Jobs: A Few Memories
When I first met Steve Jobs nearly 25 years ago I was struck by him explaining to me that NeXT was what he “wanted to do with his thirties”. At the time, I thought it was a bold thing to plan one’s life in decades like that. And—particularly for those of us who spend their lives doing large projects—it’s incredibly inspiring to see what Steve Jobs was able to achieve in his small number of decades, so tragically cut short today.
Thank you, Steve, for everything.
Universe Dented, Grass Underfoot | Daring Fireball
Daring Fireball: Universe Dented, Grass Underfoot
I like to think that in the run-up to his final keynote, Steve made time for a long, peaceful walk. Somewhere beautiful, where there are no footpaths and the grass grows thick. Hand-in-hand with his wife and family, the sun warm on their backs, smiles on their faces, love in their hearts, at peace with their fate.
Remembering Steve Jobs | kottke
Remembering Steve Jobs
I am incredibly sad this morning. Why am I, why are we, feeling this so intensely? I have some thoughts about that but not for now. For now, I'm just going to share some of the things I've been reading and watching about Jobs.
Steve Jobs Dead At 56 - Slashdot
Steve Jobs Dead At 56 - Slashdot
SoCalChris writes "Apple cofounder Steve Jobs was found dead in his Cupertino home this morning. I'm sure everyone in the Slashdot community will miss him — even if you didn't enjoy his work, there's no denying his contributions to popular culture. Truly an American icon."
Sunday, September 25, 2011
Mock testing with Grails | Mastering Grails
Mastering Grails: Mock testing with Grails
In this Mastering Grails installment, Scott Davis shows you how to take advantage of the built-in mocking capabilities of theGrailsUnitTestCase
andControllerUnitTestCase
classes included with Grails.
Thursday, September 22, 2011
Enhancing HTML tables using a JQuery DataTables plugin | CodeProject
Enhancing HTML tables using a JQuery DataTables plugin - CodeProject
In this article is shown how you can enhance plain HTML table with JQuery DataTables plugin
The Little Book on CoffeeScript | arcturo.github.com
The Little Book on CoffeeScript
CoffeeScript [1] is a little language that compiles down to JavaScript. The syntax is inspired by Ruby and Python, and implements many features from those two languages. This book is designed to help you learn CoffeeScript, understand best practices and start building awesome client side applications. The book is little, only five chapters, but that's rather apt as CoffeeScript is a little language too.
This book is completely open source, and was written by Alex MacCaw [2] (or @maccman [3]) with great contributions from David Griffiths [4], Satoshi Murakami [5], and Jeremy Ashkenas [6].
Demystifying UEFI, the Overdue BIOS Replacement - Slashdot
Demystifying UEFI, the Overdue BIOS Replacement - Slashdot
"After more than 30 years of unerring and yet surprising supremacy, BIOS is taking its final bows. Taking its place is UEFI, a specification that begun its life as the Intel Boot Initiative way back in 1998 when BIOS's antiquated limitations were hampering systems built with Intel's Itanium processors. UEFI, as the article explains, is a complete re-imagining of a computer boot environment, and as such it has almost no similarities to the PC BIOS that it replaces."
User Interface Programming in the (Near) Future | Bruce Eckel
User Interface Programming in the (Near) Future
In my article on JavaScript, I observed that we need a new language that generates good and safe JavaScript, so that you no longer have to think about either JavaScript issues or cross-browser problems. Little did I know that the solution(s) had already appeared in the form of JQuery and CoffeeScript.
Wednesday, September 21, 2011
How We Scrum | #AltDevBlogADay
How We Scrum « #AltDevBlogADay
We‘re a small indie company of six. Four programmer/designer hybrids, though each of them proficient in other areas too, one artist/designer and one community manager/marketing/designer. Only half of us have ever worked in other game companies and only one of us has ever contributed to a AAA game (though uncredited). We have no strong ego running the business, but a very collaborative atmosphere. That’s why we need a clear methodology for working efficiently. We have a rigid structure for our creative process in order to live the freedom that it gives. The system we’re using is loosely based on scrum but finely tuned to our situation. I don’t believe in off-the-shelf design methods. So we tailored our own. Here’s how we scrum.
How Microsoft Can Lock Linux Off Windows 8 PCs - Slashdot
How Microsoft Can Lock Linux Off Windows 8 PCs - Slashdot
Julie188 writes "Windows 8 PCs will use the next-generation booting specification known as Unified Extensible Firmware Interface (UEFI). In fact, Windows 8 logo devices will be required to use the secure boot portion of the new spec. Secure UEFI is intended to thwart rootkit infections by using PKI authentication before allowing executables or drivers to be loaded onto the device. Problem is, unless the device manufacturer gives a key to the device owner, it can also be used to keep the PC's owner from wiping out the current OS and installing another option, such as Linux."
Tuesday, September 20, 2011
End-to-End Test Driven Development in Grails – Part 1 | Cantina
End-to-End Test Driven Development in Grails – Part 1 « Cantina
Testing, and specifically test-driven development is a methodology which few developers fully embrace. Automated testing is inevitably viewed as something that can be done last minute once an application is completed, or it’s considered too time consuming to be done at all. What most people don’t realize though, is that over the lifetime of an application, and even during early development, testing saves countless hours. It allows developers to find errors early and reduces the amount of time spent debugging. It results in cleaner, simpler, and more understandable designs, and most importantly gives developers a much higher level of confidence in the final product.
Grails Scaffolding In-Depth | Jakob Külzer
Grails Scaffolding In-Depth « Jakob Külzer
Much of Grails power and ability to crank out applications can be accounted to its scaffolding mechanism for creating CRUD interfaces within no time. However, the default scaffolding templates provide only a simple boilerplate and fail to convince for more sophisticated forms. I spent quite some time in the previous weeks writing scaffolding templates. A lot of this process was trial and error, browsing source code and bothering Tomás Lin. I still have to find good documentation on this, so I'm posting my findings here in the hope to help people leveraging Grails even more. If you are just trying to understand how scaffolding works to building something more advanced, this is for you.
TFS is destroying your development capacity | Derek Hammer
TFS is destroying your development capacity | Derek Hammer
Team Foundation Server (TFS) from Microsoft is an application lifecycle management (ALM) solution that is deployed across many development teams and organizations. After working with TFS for 3+ years, I have come to the conclusion that organizations are better off without it and should look to adopting best of breed tools (of which, I claim, TFS is not part).
This post addresses three topics: the technical flaws of TFS and its subsystems, the culture TFS encourages and strategies on how to get out.
Four tips for learning how to program | (37signals)
Four tips for learning how to program - (37signals)
I recently received an email from someone who was getting into programming, and was asking for advice on how to proceed. He had a project in mind, and had started on it, but had run into areas where his current knowledge was insufficient to puzzle out the solution.
First of all, I was very impressed that he had actually started work. Ideas are a dime-a-dozen, and one of my least favorite things are “idea people” who feel like their work is done when they come up with an idea, and all that’s left is to find a programmer who is willing to fill in the blanks. That this person came to me after first trying to solve it himself was a huge mark in his favor.
Sadly, I wasn’t able to help him take his project further, but it gave me a chance to think back on the times that I’ve been a beginner (whether it was web programming, or iOS programming, or even something unrelated to software entirely), and to contemplate how I approached those beginnings.
I identified four things that I’ve found were fundamental to my particular learning style. Obviously, there are as many learning styles as their are learners, but these are what work for me.
Book Review: The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition | Inspired by Actual Events
Inspired by Actual Events: Book Review: The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition
Frederick P. Brooks, Jr.'s The Mythical Man-Month (MM-M) is one of the most famous books in all of software development literature and is arguably THE most famous book on software development management. There are already innumerable reviews of this classic, but I review it again in this post for those software developers who have not read it and want a small overview of what's to like about it. After all, it is PC World's #1 title in the list of Top Ten IT Books Never To Admit You Haven't Read. The full title of the edition I am reviewing in this post is The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition.
The Benefits of Code Review | #AltDevBlogADay
The Benefits of Code Review « #AltDevBlogADay
I am a big fan of code reviews but they have a bad reputation. Worries about wasting time or getting bogged down in pointless and irrelevant discussions can cause the process to be dropped before it’s even started.
So why am I such a fan?
WinRT demystified - Miguel de Icaza
WinRT demystified - Miguel de Icaza
WinRT is a new set of APIs that have the following properties:
WinRT wraps both the new UI system as well as old Win32 APIs and it happens that this implementation is based on top of COM.
- It implements the new Metro look.
- Has a simple UI programming model for Windows developers (You do not need to learn Win32, what an HDC, WndProc or LPARAM is).
- It exposes the WPF/Silverlight XAML UI model to developers.
- The APIs are all designed to be asynchronous.
- It is a sandboxed API, designed for creating self-contained, AppStore-ready applications. You wont get everything you want to create for example Backup Software or Hard Disk Partitioning software.
- The API definitions is exposed in the ECMA 335 metadata format (the same one that .NET uses, you can find those as ".winmd" files).
Windows Build/Windows 8: My Impressions – Change is a good thing | John Petersen
Windows Build/Windows 8: My Impressions – Change is a good thing | John Petersen
If you have embraced XAML, there is something for you in Windows 8. If you have embraced js/css/html/jquery etc – there is something for you in Windows 8. The deal is this, if you are going to tie what you do to the specific implementation of a specific version of a closed source/vendor controlled product (which Windows is) – you are not allowed to bitch about it. There, I said it. It’s like the folks that complain about how a given piece of OSS works. Submit a patch if you don’t like it. If you don’t submit a patch, you don’t get to bitch. When you hitch your horse up to a particular post, you shouldn’t bitch because that vendor is looking to evolve its product. And quite frankly, there really isn’t anything to bitch about. Windows 8 looks pretty cool to me and it appears that MS is embracing more and more of what is open.
Don’t Cross the Beams: Avoiding Interference Between Horizontal and Vertical Refactorings | Three Rivers Institute
Three Rivers Institute » Blog Archive » Don’t Cross the Beams: Avoiding Interference Between Horizontal and Vertical Refactorings
Inexperienced responsive designers can get in a state where they try to move quickly on refactorings that are unlikely to work out, get burned, then move slowly and cautiously on refactorings that are sure to pay off. Sometimes they will make real progress, but go try a risky refactoring before reaching a stable-but-incomplete state. Thinking of refactorings as horizontal and vertical is a heuristic for turning this situation around–eliminating risk quickly and exploiting proven opportunities efficiently.
The Unfamiliar | Daring Fireball
Daring Fireball Linked List: The Unfamiliar
Objective-C is different than C++ or Java. Xcode is different than Visual Studio or Eclipse, and Xcode 4 is very different from previous versions of Xcode. Baxter-Reynolds certainly wouldn’t be alone in saying that he doesn’t like these differences. But it’s curious to argue Apple developer tools and frameworks are deficient due to a lack of time put into them. In numerous ways, both linguistically and tools-wise, Xcode, Objective-C, and Cocoa/Cocoa Touch are the evolutionary descendants of the NeXT developer platform from 1989.
iOS, Android, Windows Phone, Windows 8? A coder's guide | Technology | guardian.co.uk
iOS, Android, Windows Phone, Windows 8? A coder's guide | Technology | guardian.co.uk
It's patently obvious to anyone in the world of IT that app development can be used to create serious wealth. Microsoft's re-entry into the battle for dominance over the mobile computing space signaled by its Build conference in Anaheim, California, this week makes it far easier for talented developers to advance their careers and, perhaps, even make life-changing sums of money.
Google Preps Devs For One-Size-Fits-All Android - Slashdot
Google Preps Devs For One-Size-Fits-All Android - Slashdot
alphadogg writes "Google is preparing Android developers for the latest edition of its Android mobile operating platform that will work the same on both tablets and smartphones. Scott Main, the lead tech writer for Google's Android Developers Blog, reminded developers on Monday that the newest edition of Android — dubbed 'Ice Cream Sandwich' — will 'support big screens, small screens and everything in between.' Main also emphasized that Android would maintain 'the same version ... on all screen sizes' going forward."
Monday, September 19, 2011
Hudson - Environment Variables | Hudson Wiki
Building a software project - hudson - Hudson Wiki
When a Hudson job executes, it sets some environment variables that you may use in your shell script, batch command, Ant script or Maven POM 1. The following table contains a list of all of these environment variables.
Don’t rewrite Your Application | Java Code Geeks
Don’t rewrite Your Application - Java Code Geeks
When stuck with a legacy code base you’ll hear the claim “We’ll have to rewrite this from scratch in order to fix it!” It sounds promising. You start with a clean slate. You can do all the good stuff without all the mistakes. The only problem: It doesn’t work. Here is why.
RMS: 'Is Android Really Free Software?' | Slashdot
RMS: 'Is Android Really Free Software?' - Slashdot
An anonymous reader points out an article by Richard Stallman in The Guardian which questions whether Android should be described as 'free' or 'open.' Quoting:
"Google has complied with the requirements of the GNU General Public License for Linux, but the Apache license on the rest of Android does not require source release. Google has said it will never publish the source code of Android 3.0 (aside from Linux), even though executables have been released to the public. Android 3.1 source code is also being withheld. Thus, Android 3, apart from Linux, is non-free software, pure and simple. ... Android is a major step towards an ethical, user-controlled, free-software portable phone, but there is a long way to go. Hackers are working on Replicant, but it's a big job to support a new phone model, and there remains the problem of the firmware. Even though the Android phones of today are considerably less bad than Apple or Windows smartphones, they cannot be said to respect your freedom."
Effective Mockito Part 1 | EclipseSource Blog
Effective Mockito Part 1 « EclipseSource Blog
Last week I talked to a fellow developer, Frank Appel, about Mockito. We’ve been using this mocking library for over a year. We both agreed that of all the innovations we’ve tried in the last year or so, Mockito has boosted our coding productivity the most. With this blog series we want to share our experiences with Mockito. You see that I used the word “effective” in the title, and, in this context I want to define “effective” as arriving at clean test and production code as fast as possible.
Lion in VMware Fusion | Matt Legend Gemmell
Lion in VMware Fusion - Matt Legend Gemmell
The new version 4.0 of VMware Fusion for OS X was released today, and one of its major new features is that it supports virtualizing OS X Lion. Installing Lion in a VM is incredibly simple, as described below.
Sunday, September 18, 2011
How to deal with "java.lang.OutOfMemoryError: PermGen space" error | Stack Overflow
How to deal with "java.lang.OutOfMemoryError: PermGen space" error - Stack Overflow
Recently I ran into this error in my web application:
It's a typical Hibernate/JPA + IceFaces/JSF application running on Tomcat 6 and JDK 1.6.java.lang.OutOfMemoryError: PermGen space
Apparently this can occur after redeploying an application a few times.
Using Hudson environment variables to identify your builds | Java.net
Using Hudson environment variables to identify your builds | Java.net
So your CI server now automatically deploys your application to an integration server. You've even configured it so that you can manually deploy to the QA server using the same process. Great! But wouldn't it be nice to know exactly what build you are looking at at any point in time? Well, Hudson lets you do just that.
When Hudson runs a build, it passes in a few useful environment variables, that you can use in your build script. This is a great way to inject information about the build into your deployable application. For example, Hudson build has a unique number, which you can reference in your build scripts using something like "${BUILD_NUMBER}". This is the list of variables (taken from an obscure corner of the Hudson documentation :-)
Saturday, September 17, 2011
Permanently remove files and folders from a git repository | Dalibor Nasevic
Dalibor Nasevic - Permanently remove files and folders from a git repository
Few weeks ago I froze gems on my blog project and ended up with a very big repository. So, I wanted to clean up the mess and remove permanently gems folder from the repository. "git rm" isn't doing the job well, it only removes the folder from the working tree and the repository still contains the objects of this folder. After a quick search, I found that git-filter-branch was the command I was looking for.
A Grails Plugin for Multiple DataSources | An Army of Solipsists
An Army of Solipsists » Blog Archive » A Grails Plugin for Multiple DataSources
There have been a few requests on the Grails user mailing list about using multiple data sources in a Grails app, i.e. some domain classes use one data source and database and others use another. Grails doesn’t directly support this – there’s only oneDataSource
and oneSessionFactory
, and all domain classes use them. But it turns out it’s not that difficult to support this (and it doesn’t involve too many ugly hacks …)
Tweaking The Grails Datasource To Cope With MySQL’s Foibles – Transentia
Tweaking The Grails Datasource To Cope With MySQL’s Foibles – Transentia
The application I am maintaining is falling prey to MySQL’s infamous “kill connections after 8 hours of inactivity” feature.
The users arrive each morning to find that their application is unworkable, ‘cos all the connections have “gone away.”
This IS a feature and not a bug, and it does make sense (the server has to manage its resources appropriately [for it] and 8 hours is as good a timeout as 1 or 1000)…but it is darned inconvenient, nonetheless.
Friday, September 16, 2011
Sitting and Standing | CUergo
CUergo: Sitting and Standing
The bottom line:
Sit to do computer work. Sit using a height-adjustable, downward titling keyboard tray for the best work posture, then every 20 minutes stand for 2 minutes AND MOVE. The absolute time isn’t critical but about every 20-30 minutes take a posture break and move for a couple of minutes. Simply standing is insufficient. Movement is important to get blood circulation through the muscles. Research shows that you don’t need to do vigorous exercise (e.g. jumping jacks) to get the benefits, just walking around is sufficient. So build in a pattern of creating greater movement variety in the workplace (e.g. walk to a printer, water fountain, stand for a meeting, take the stairs, walk around the floor, park a bit further away from the building each day).
Thursday, September 15, 2011
The Google+ API Is Released - Slashdot
The Google+ API Is Released - Slashdot
"Developers have been waiting since late June for Google to release their API to the public. Well, today is that day. Just a few minute ago Chris Chabot, from Google+ Developer Relations, announced that the Google+ API is now available to the public."
Metro | Daring Fireball
Daring Fireball: Metro
I don’t think there’s any hyperbole in Microsoft’s claim that this is “Windows Reimagined”. But it’s not so much that Windows 8 is Windows reimagined, but Metro that is Windows reimagined. It’s truly a whole new concept in how a computer interface should look and work.
Windows 8 Roundup - Slashdot
Windows 8 Roundup - Slashdot
There has been no shortage of Windows 8 news today.
"MrSeb writes: Earlier this morning, at the Build Windows conference in Anaheim, California, Microsoft made it patently clear that 'To the cloud!' is not merely a throwaway phrase: it is the entire future of the company. Every single one of Microsoft's services, platforms, and form factors will now begin its hasty, leave-no-prisoners-behind transition to the always-on, internet-connected cloud."
netbuzz pointed out that even the famous Blue Screen of Death will get a new look. "Lastly mikejuk writes: While everyone else is looking at the surface detail of Windows 8 there are some deep changes going on. Perhaps the biggest is that Metro now provides an alternative environment that doesn't use the age old Win32 API. This means no more overlapping windows — yes Metro really does take the windows out of Windows."
Tuesday, September 13, 2011
Grails - Checking Projects into SVN | grails.org
Grails - Checking Projects into SVN
Why a page dedicated to adding Grails projects to source control? Because you want to make sure that only realy source files rather than generated ones are added to the repository. There's nothing more annoying than being told by your SCM tool that such and such a file has been changed locally simply because it has been regenerated.
The key to successful use of source control with Grails is to make sure your SCM tool ignores the right files. Grails is pretty configurable, so this can depend on the project. But for a default Grails project you should ensure these files and directories are included in any ignore list:
- target/
- web-app/plugins/
- web-app/WEB-INF/classes/ - common if you use Eclipse or STS
Writing Maintainable Code | simple-talk
Writing Maintainable Code
Writing maintainable code is hard. It must be understandable, testable and readable. Any one of these can be tricky, and together they seem pretty daunting. Thankfully, Michael Williamson makes it look easy to become a code craftsman.
Monday, September 12, 2011
Google Dart to “ultimately ... replace JavaScript” | 2ality
Google Dart to “ultimately ... replace JavaScript”
The following keynote will be held at the GOTO Aarhus 2011 Conference on Monday, Oct. 10, 2011:
“Dart, a new programming language for structured web programming”This post explains what Dart is all about and how it relates to JavaScript.
Git: Your New Best Friend | SitePoint
Git: Your New Best Friend » SitePoint
This article introduces version control and Git without assuming you have any prior knowledge or programming experience. Because of its introductory nature, certain details are simplified or omitted and the use of the Git Graphical User Interface (Git GUI) is emphasized. Afterwards the reader should be able to use Git for basic version control and know where to locate further information.
Kevin Mitnick Answers - Slashdot
Kevin Mitnick Answers - Slashdot
Last week, you asked Kevin Mitnick questions about his past, his thoughts on ethics and disclosure, and his computer set-up. He's graciously responded; read on for his answers. (No dice on the computer set-up, though.) Thanks, Kevin.
Simple Continuous Integration / Deployment With Jenkins - Randall Degges
Simple Continuous Integration / Deployment With Jenkins - Randall Degges
Today I'm setting up a new Jenkins CI server for work, to move off our old Hudson server, so I figured this would be a good time to blog about the process, as it's so extremely helpful to us that I can't imagine ever programming without it again.
Sunday, September 11, 2011
Grails and Continuous Integration: An Essential Combo | Java.net
Grails and Continuous Integration: An Essential Combo | Java.net
Grails is a fantastic framework. As well as being ultra-productive and fun to work with, it encourages good testing practices, and provides a swathe of tools to make writing unit, integration, and web tests a real pleasure. As we will see, Grails also lends itself quite well to build automation. However, Grails is not Maven. Grails has a fairly loose concept of the software development lifecycle, and is happy to let you bundle up and deploy your application as a WAR file without running all the unit and integration tests first. A Continuous Integration (CI) server can help you keep the flexibility of the Grails development process, and still ensure that your code is fully tested for each and every code change. In this article, we will take a look at how you can introduce Continuous Integration into your Grails project. More specifically, we will walk through how you can automate your Grails testing and code quality metrics with Hudson, a popular open source CI tool.
How Do I Install PowerShell on Windows 7 and Other Questions - Hey, Scripting Guy! Blog - Site Home - TechNet Blogs
How Do I Install PowerShell on Windows 7 and Other Questions - Hey, Scripting Guy! Blog - Site Home - TechNet Blogs
Microsoft Scripting Guy Ed Wilson is here to help save the day. You do not have to download Windows PowerShell 2.0 if you have Windows 7 because it is already installed. Unfortunately, it is kind of hidden. To launch Windows PowerShell, you can use the Search Programs and Files dialog box. All that you have to do is type the word PowerShell and press Enter. The Windows PowerShell console will launch.
Learn.GitHub - Normal Workflow
Learn.GitHub - Normal Workflow
So you have a Git repository and everything is all setup. What now?
Generally, it is not going to be much different than working with any other source control system, the only real difference should be the staging process. The workflow will generally go something like this:
That is the most complex case - if you’re not collaborating with anyone and so have no upstream repository to push to, and you want to ignore the staging area, it can be as simple as:
- modify files
- see what you’ve changed
- stage the changes you want to commit
- commit your staged changes
- rinse, repeat
Easy peasy. Remember, Git is decentralized, so you don’t actually need a public or shared server to commit to - you can use it like RCS if you want and just track local changes.
- modify files
- commit your changes
- repeat
A Hudson/GitHub build process that works | ATOMIZED
⚛ A Hudson/GitHub build process that works
I’m a huge fan of Hudson, and have been since I discovered it. The biggest issue I’ve had with it is that the Git plugin just isn’t very good.
The situation has improved lately, with Andrew Bayer making significant improvements. With the features he’s added, reasonable and non-hacky workflows are no possible.
After some experimentation, this is what we’ve settled on at SimpleGeo...
Saturday, September 10, 2011
Git clone error on Jenkins/Hudson on Windows | Colin's Devlog
Git clone error on Jenkins/Hudson on Windows | Colin's Devlog
Recently I set up a new instance of Jenkins (formerly Hudson) running on my Windows 7 desktop computer. I tried to set up a job that would pull from a GitHub repository and do a build but (like every other time I've tried this) was foiled by the job simply hanging at the step where it tries to clone or fetch from GitHub.
Grails & Hudson Part 2: Back to basics | Lean Java Engineering
Grails & Hudson Part 2: Back to basics | Lean Java Engineering
Ok, so you’ve decided that you want to use Hudson to build your Grails projects (or have read part 1 and want to use CodeNarc too).
If you don’t know where to start, you’ve come to the right place.
The basic steps (and we’ll go into more detail on each one) are:
1. Download Hudson
2. Run Hudson
3. Download Hudson plugins
4. Configure Hudson
5. Create a Hudson job
6. Watch the trends
This post will get you started and subsequent posts in the series will add even more power to your CI process.
Friday, September 9, 2011
Git Is Simpler Than You Think | Nick Farina
Nick Farina - Git Is Simpler Than You Think
Git is not a Prius. Git is a Model T. Its plumbing and wiring sticks out all over the place. You have to be a mechanic to operate it successfully or you’ll be stuck on the side of the road when it breaks down. And it will break down.
By now we all know how to drive Git. We learned it by typing “git tutorial” into Google. We studied guides, how-tos, cheat sheets.
Did you know the top result for “git tutorial” is this manpage on kernel.org? I will give you a gold star if you can read the whole thing without falling asleep.
So instead let’s pull over, open the hood up, and poke around.
Wednesday, September 7, 2011
Programmers Need To Learn Statistics Or I Will Kill Them All | Zed A. Shaw
Zed A. Shaw - Programmers Need To Learn Statistics Or I Will Kill Them All
I have a major pet peeve that I need to confess. I go insane when I hear programmers talking about statistics like they know shit when it’s clearly obvious they do not. I’ve been studying it for years and years and still don’t think I know anything. This article is my call for all programmers to finally learn enough about statistics to at least know they don’t know shit. I have no idea why, but their confidence in their lacking knowledge is only surpassed by their lack of confidence in their personal appearance.
Testing Databases with JUnit and Hibernate Part 1: One to Rule them | Schauderhaft
Schauderhaft » Testing Databases with JUnit and Hibernate Part 1: One to Rule them
Databases are an extremely important part of almost every enterprise application. Yet there is very little support for testing your database, which results in very little tests coverage of database related code out in the wild. In a desperate attempt to change that at least a little the article series starting with this article will describe some of the problems and possible partial solutions based on Hibernate and JUnit.
Tuesday, September 6, 2011
Functional thinking: Coupling and composition, Part 1 | IBM developerWorks
Functional thinking: Coupling and composition, Part 1
Object-oriented programming makes code understandable by encapsulating moving parts. Functional programming makes code understandable by minimizing moving parts.
— Michael Feathers, author of Working with Legacy Code, via Twitter
Working in a particular abstraction every day causes it to seep gradually into your brain, influencing the way you solve problems. One of the goals of this series is to illustrate a functional way of looking at typical problems. For this and the next installment, I tackle code reuse via refactoring and the attendant abstraction impact.
Apple designer Jonathan Ive enters a new era - latimes.com
Apple designer Jonathan Ive enters a new era - latimes.com
Printed on the back of every iPod, iPhone and iPad is "Designed by Apple in California."
Those five words speak volumes about the pride Apple Inc. takes in design — and in design chief Jonathan Ive.
Steve Jobs may have dreamed up the ideas. But Ive turned them into products with a cult following.
The synergy between Apple's co-founder and its top designer set into motion a decade of hits from the iPod to the iPad.
Now Apple will be counting on Ive to continue to deliver breakthrough designs without much oversight or support from Jobs, who last month stepped down as chief executive.
Mocks Aren't Stubs | Martin Fowler
Mocks Aren't Stubs
The term 'Mock Objects' has become a popular one to describe special case objects that mimic real objects for testing. Most language environments now have frameworks that make it easy to create mock objects. What's often not realized, however, is that mock objects are but one form of special case test object, one that enables a different style of testing. In this article I'll explain how mock objects work, how they encourage testing based on behavior verification, and how the community around them uses them to develop a different style of testing.
Making a Mockery of TDD | Virtuous Code
Making a Mockery of TDD | Virtuous Code
I made this gnomic remark on Twitter the other day:
To be a successful mockist, you must dislike mocks.
A lot of people re-tweeted it, so I guess I’m not completely alone in thinking this way.
I should back up a bit. A “mock object”, or “mock”, is a specific kind of test double. It is an object used in a Unit Test which stands in for another object, and carries certain expectations about how what methods will be called, and how they will be called. If the expectations are not met, the test fails. By contrast, other test doubles, such as stubs objects, make no assertions about which methods will be called. This article is specifically about mock objects and mocked methods, which make an assertion about when, how many times, and with what arguments certain collaborator methods will be called.
The term “Mockist” refers to those programmers who use mock objects in their unit tests. There is another camp of programmers, called “Classicist” by Martin Fowler, who eschew mock objects entirely in their tests.
What I Learned | Rails Test Prescriptions Blog
What I Learned « Rails Test Prescriptions Blog
Here are a dozen or so oversimplified, fortune cookie-esque things that I think I learned in the last four years. Some of these are probably blog posts in their own right, which I may get to one of these days.
Monday, September 5, 2011
Linux Kernel Moves To Github - Slashdot
Linux Kernel Moves To Github - Slashdot
An anonymous reader writes "Linus Torvalds has announced that he will be distributing the Linux kernel via Github until kernel.org servers are fully operational following the recent server compromise. From the announcement: 'But hey, the whole point (well, *one* of the points) of distributed development is that no single place is really any different from any other, so since I did a github account for my divelog thing, why not see how well it holds up to me just putting my whole kernel repo there too?'"
Labels:
Git,
GitHub,
Linus Torvalds,
Linux,
Slashdot
Self-educate to survive | Opinion | .net magazine
Self-educate to survive | Opinion | .net magazine
If you lack a formal design education, you’ll need to self-educate before you can progress in your career, says Ryan Downie. Here's a checklist of the subjects he studied to help him to understand more about web design.
Nook Color: Updated Clockwork Recovery Bootable SD | Maurice Mongeon
Nook Color: Updated Clockwork Recovery Bootable SD | Maurice Mongeon
This is an updated compilation of the latest bootable CWR SD images. These new images are unique in which they work for all ROMS including honeycomb, froyo, stock, and gingerbread. Just write one of these to the SD card and copy over your ROM.zip files to flash. A special thanks goes out to cmstlist @ XDA Developers for creating the bootables and referencing my page here.
Barnes & Noble Nook Color: Full Update Guide - CyanogenMod Wiki
Barnes & Noble Nook Color: Full Update Guide - CyanogenMod Wiki
This guide will walk you through the process of taking the Barnes & Noble Nook Color from stock to having a custom recovery image and the ability to flash the latest version of CyanogenMod.
Scripting with Windows PowerShell
Scripting with Windows PowerShell
Learn the basics of Windows PowerShell from Microsoft Scripting Guy Ed Wilson. In this five-part webcast series, Ed demonstrates starting and stopping processes and services, working with event logs, writing your first Windows PowerShell script, working with files, and more.
Getting Started with Git and GitHub on Windows | Kyle Cordes
Getting Started with Git and GitHub on Windows - Kyle Cordes
I’ve been attracted to, and trying out, various distributed source control tools for the last two years, and have come to the conclusion that the most likely “winner” is Git. Git does a great many things right, good progress is being made in the few areas it is weak, and it has rapidly growing popularity. There are many web sites with extensive information about using Git, learning Git, Git integration, and more.
SmartGit - Finally a Window git client that doesn't suck | Adam Kennedy at blogs.perl.org
Adam Kennedy at blogs.perl.org: SmartGit - Finally a Window git client that doesn't suck
For years I've struggled with the git'erati and their zealotous ways.
First it was "It's awesome, just use Linux".
Then it was "It's fine, just use cygwin" ignoring the fact it clashes with Strawberry.
Later, this because "It's fine, just use msysgit" when most people on Windows don't like command lines and don't want to use them.
Finally, it's been "Stop trying to think about git like svn, it is a special flower!"
It's always felt like the same wrong argument. That git was so fast and magical and OMG that it didn't matter that it didn't work like people on 80-90% of the world's computers would expect it to, or that it used a whole parallel set of terms, or that it had guis that were both ugly and utterly unusable unless you already knew the command line versions.
No, clearly it was our (my) fault for just not being awesome enough for git.
So it is with great joy that I can report, as the unofficial poster boy of Perl's Windows Git Curmudgeons, that there finally exists a Windows git client that works normally.
http://www.syntevo.com/smartgit/index.html
SmartGit review: don’t use it. | T=Machine
T=Machine » SmartGit review: don’t use it.
Just don’t use it, whatever you do.
It’s hopelessly buggy, it is the worst possible git client you could use.
And … for the third time, it just corrupted a git repository. This time I know it wasn’t user-error, it was just SmartGit.
Totally unforgivable.
SmartGit - The Best Git Gui So Far | Engineered Web
SmartGit - The Best Git Gui So Far | Engineered Web
As Git becomes more popular and widely used a GUI becomes even more important. This was especially important when Drupal recently looked at what version control system it was going to switch to. (If you're interested in the Drupal (unofficial) decision checkout Angie Byrons post on groups.drupal.org)
When I surveyed the Git GUI landscape SmartGit stood above the rest for your standard user.
Remote repositories using EGit, HgEclipse | ekkes-corner
DVCS part 4: remote repositories using EGit, HgEclipse « ekkes-corner: eclipse | osgi | mdsd | erp | mobile
This blog is part of a DVCS – blogseries: part 1 – install Git and Mercurial together with EGit and HgEclipse, part 2 – initializing of and importing from local repositories, part 3 – team options and committing/pushing to local repositories.
This time we want to work with remote repositories using EGit and HgEclipse. Lars Vogel has already published an article about “Egit and GitHub“, but I don’t want to push a single Eclipse project – I want to push a Repository with more then one project.
This post will describe how to push a bunch of projects to existing Servers like GitHub, Bitbucket or SourceForge, where your Open Source Projects can be hosted. How to create your own Remote Server isn’t subject of this blog.
Subscribe to:
Posts (Atom)