This is a mirror of official site: http://jasper-net.blogspot.com/

2 People, 47 PCs, 46 WoW Accounts, No Life

| Wednesday, January 26, 2011
wow_boxing_chairs.jpg

You've surely heard of World of Warcraft players shunning work, family, responsibility, and drinking water for the love of the game, but if you're not up on your "dual-boxing" as I was, keep reading. Dual-boxing is act of controlling two characters in an MMO simultaneously. Of course, there's multi-boxing, when just two won't do. As seen above, a pair of triple-boxers working in tandem can yield efficient raiding results. Therefore, why not take it to the next level? And then a dozen levels higher? How about simultaneously controlling 23-characters while your girlfriend also manages 23?

Right now you're probably asking yourself "Girlfriend?" That or, "WTF?!" According to a poster on the Dual-Boxing.com forums, he and his partner are running a 47 computer set up when they get their WoW on, including one server to control the madness.

Read more: Kotaku

Posted via email from Jasper-net

25 BEST SSH COMMANDS / TRICKS

|
OpenSSH is a FREE version of the SSH connectivity tools that technical users of the Internet rely on. Users of telnet, rlogin, and ftp may not realize that their password is transmitted across the Internet unencrypted, but it is. OpenSSH encrypts all traffic (including passwords) to effectively eliminate eavesdropping, connection hijacking, and other attacks. Additionally, OpenSSH provides secure tunneling capabilities and several authentication methods, and supports all SSH protocol versions.

1) COPY SSH KEYS TO USER@HOST TO ENABLE PASSWORD-LESS SSH LOGINS.

ssh-copy-id user@host

To generate the keys use the command ssh-keygen

2) START A TUNNEL FROM SOME MACHINE’S PORT 80 TO YOUR LOCAL POST 2001

ssh -N -L2001:localhost:80 somemachine

Now you can acces the website by going to http://localhost:2001/

3) OUTPUT YOUR MICROPHONE TO A REMOTE COMPUTER’S SPEAKER

dd if=/dev/dsp | ssh -c arcfour -C username@host dd of=/dev/dsp

This will output the sound from your microphone port to the ssh target computer’s speaker port. The sound quality is very bad, so you will hear a lot of hissing.

4) COMPARE A REMOTE FILE WITH A LOCAL FILE

ssh user@host cat /path/to/remotefile | diff /path/to/localfile -

Useful for checking if there are differences between local and remote files.

5) MOUNT FOLDER/FILESYSTEM THROUGH SSH

sshfs name@server:/path/to/folder /path/to/mount/point

Install SSHFS from http://fuse.sourceforge.net/sshfs.html
Will allow you to mount a folder security over a network.

6) SSH CONNECTION THROUGH HOST IN THE MIDDLE

ssh -t reachable_host ssh unreachable_host

Unreachable_host is unavailable from local network, but it’s available from reachable_host’s network. This command creates a connection to unreachable_host through “hidden” connection to reachable_host.

7) COPY FROM HOST1 TO HOST2, THROUGH YOUR HOST

ssh root@host1 “cd /somedir/tocopy/ && tar -cf – .” | ssh root@host2 “cd /samedir/tocopyto/ && tar -xf -”
Good if only you have access to host1 and host2, but they have no access to your host (so ncat won’t work) and they have no direct access to each other.


8) RUN ANY GUI PROGRAM REMOTELY


ssh -fX <user>@<host> <program>
The SSH server configuration requires:

X11Forwarding yes # this is default in Debian

And it’s convenient too:

Compression delayed

9) CREATE A PERSISTENT CONNECTION TO A MACHINE

ssh -MNf <user>@<host>

Create a persistent SSH connection to the host in the background. Combine this with settings in your ~/.ssh/config:
Host host
ControlPath ~/.ssh/master-%r@%h:%p
ControlMaster no
All the SSH connections to the machine will then go through the persisten SSH socket. This is very useful if you are using SSH to synchronize files (using rsync/sftp/cvs/svn) on a regular basis because it won’t create a new socket each time to open an ssh connection.

10) ATTACH SCREEN OVER SSH

ssh -t remote_host screen -r

Directly attach a remote screen session (saves a useless parent bash process)

11) PORT KNOCKING!

knock <host> 3000 4000 5000 && ssh -p <port> user@host && knock <host> 5000 4000 3000

Knock on ports to open a port to a service (ssh for example) and knock again to close the port. You have to install knockd.
See example config file below.
[options]
logfile = /var/log/knockd.log
[openSSH]
sequence = 3000,4000,5000
seq_timeout = 5
command = /sbin/iptables -A INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 5000,4000,3000
seq_timeout = 5
command = /sbin/iptables -D INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn

12) REMOVE A LINE IN A TEXT FILE. USEFUL TO FIX

ssh-keygen -R <the_offending_host>

In this case it’s better do to use the dedicated tool

13) RUN COMPLEX REMOTE SHELL CMDS OVER SSH, WITHOUT ESCAPING QUOTES

ssh host -l user $(<cmd.txt)

Much simpler method. More portable version: ssh host -l user “`cat cmd.txt`”

14) COPY A MYSQL DATABASE TO A NEW SERVER VIA SSH WITH ONE COMMAND

mysqldump –add-drop-table –extended-insert –force –log-error=error.log -uUSER -pPASS OLD_DB_NAME | ssh -C user@newhost “mysql -uUSER -pPASS NEW_DB_NAME”

Dumps a MySQL database over a compressed SSH tunnel and uses it as input to mysql – i think that is the fastest and best way to migrate a DB to a new server!

15) REMOVE A LINE IN A TEXT FILE. USEFUL TO FIX “SSH HOST KEY CHANGE” WARNINGS

sed -i 8d ~/.ssh/known_hosts

Read more: URFIX'S BLOG

Posted via email from Jasper-net

Dylin Prestly: Microsoft .NET vs Java Trailer - a Tech &Science video

|

Simple Guide: How To Get Started With jQuery (Part One)

|
So, you have heard of this wonderful Javascript library named jQuery. What exactly is jQuery?
How can it make my life easier as a developer? How do I get started? Well, jQuery makes writing Javascript fun again and really allows you to take advantage of some of the more difficult aspects of Javascript with relative ease. Today, we will have a look at how to get started with jQuery, and writing your first script!

So What Is jQuery?

jQuery is a very lightweight Javascript library (some call it a framework), that takes most of the headache out from writing pure Javascript in your applications. It has many very powerful features, some of which include: easily traversing the DOM, adding slick animations and effects to elements, and super simple Ajax techniques and methods. Perhaps the jQuery home page describes jQuery most accurately:
jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change the way that you write JavaScript.

What Are Some Of The Benefits Of jQuery?

Of course, you wouldn’t use a framework or library if there was no benefit or positive result that would come from using it. Let’s briefly go over some of the benefits and features of using the jQuery library.
It dramatically reduces the amount of code that needs to be written compared to pure Javascript, which leads to less development time and more readable code. We will go over some example code later on in this article.
It is (arguably) much easier to understand than scripting with pure Javascript. In this world, the quicker and easier it is to finish the development process the more time we have to focus on other goals.
The documentation is extremely well organized and the community is very active with helping out anyone who may be struggling with a snippet of code.
It makes using Ajax extremely easy, it only takes about 5 lines (sometimes less!) of code to make a simple Ajax call.
A wide range of plugins and extensions have been developed for jQuery to make it easy for you to get the exact functionality you are looking for.
jQuery is fun!

How Do I Get Started?

The first thing you need to do to get started with jQuery is visit the jQuery home page and download the latest version of jQuery. Once you have downloaded the jQuery library, simply upload the library to your server and link to in in the <head> section of your document as seen in the code below.

<script type="text/javascript" src="/jquery.js">

Read more: spyrestudios

Posted via email from Jasper-net

A successful Git branching model

|
In this post I present the development model that I’ve introduced for all of my projects (both at work and private) about a year ago, and which has turned out to be very successful. I’ve been meaning to write about it for a while now, but I’ve never really found the time to do so thoroughly, until now. I won’t talk about any of the projects’ details, merely about the branching strategy and release management.

Screen-shot-2009-12-24-at-11.32.03.png

Read more: nvie.com


Posted via email from Jasper-net

Stack Exchange

|
Stack Exchange is a network of free, community-driven Q&A sites. We highlight and aggregate the best recent content from our entire network here. Log in to create tag sets on questions that interest you.

Wish we had Q&A on a different topic? Help us create new Q&A sites through the open, democratic process at Area 51. For more information, check out the blog or read more about us.

Read more: Stack Exchange

Posted via email from Jasper-net

Javascript in Ten Minutes

|
Basic Types

var intValue = 1;
var floatValue = 3.0;
var stringValue = "This is a string\n";
var sqString = 'This is also a string';
Javascript is a dynamically typed language. Variables are declared with the keyword var. Common simple types are supported.

Arrays

var emptyList = [];
var homogenousList = [1, 2, 3];
var heterogenousList = ["one", 2, 3.0];
Javascript has built-in collection objects. The Array object is a dynamically typed sequence of Javascript values. They are created with the bracket notation [] or with the new operator on the Array object (e.g. new Array(5)).

Property Maps

var emptyMap = {};
var homogenousMap = {"one": 1, "two": 2, "three": 3};
var heterogenousMap = {"one": 1,
                      "two": "two",
                      "three": 3.0};
Along with Arrays are the Object objects. They act as property maps with strings serving as keys to dynamically typed data.

Access

// Dot notation property access
window.alert("Homogenous map property \"one\" "
            + homogenousMap.one);
// Subscript notation property access
window.alert("Homogenous map property \"two\" "
            + homogenousMap["two"]);

Assignment

homogenousMap["one"] = 10;
homogenousMap.two = 20;
Removal

delete homogenousMap["one"];
delete homogenousMap.two;

Iteration

for (var key in heterogenousMap) {
   window.alert("Heterogenous map property \""
                + key
                + "\" = "
                + heterogenousMap[key]);
}

Functions

var callable = function (message) { // <-- notice assignment
   window.alert("Callable called with message = "
                + message);
}

Read more: Javascript

Posted via email from Jasper-net

.HTACCESS FILE GENERATOR

|
Almost all options of .htaccess file on one page with check-boxes, text fields and 'Generate htaccess' button on bottom

Posted via email from Jasper-net

Hidden Features of C#?

|
This came to my mind after I learned the following from this question:

where T : struct

We, C# developers, all know the basics of C#. I mean declarations, conditionals, loops, operators, etc. Some of us even mastered the stuff like Generics, anonymous types, lambdas, LINQ, ... But what are the most hidden features or tricks of C# that even C# fans, addicts, experts barely know ?

Here are the revealed features so far:

Keywords

yield by Michael Stum
var by Michael Stum
using() statement by kokos
readonly by kokos
as by Mike Stone
as / is by Ed Swangren
as / is (improved) by Rocketpants
default by deathofrats
global:: by pzycoman
using() blocks by AlexCuse
volatile by Jakub Å turc
extern alias by Jakub Å turc

Attributes

DefaultValueAttribute by Michael Stum
ObsoleteAttribute by DannySmurf
DebuggerDisplayAttribute by Stu
DebuggerBrowsable and DebuggerStepThrough by bdukes
ThreadStaticAttribute by marxidad
FlagsAttribute by Martin Clarke
ConditionalAttribute by AndrewBurns

Syntax

?? (coalesce nulls) operator by kokos
number flaggings by Nick Berardi
where T:new by Lars Mæhlum
implicit generics by Keith
one-parameter lambdas by Keith
auto properties by Keith
namespace aliases by Keith
verbatim string literals with @ by Patrick
enum values by lfoust
@variablenames by marxidad
event operators by marxidad
format string brackets by Portman
property accessor accessibility modifiers by xanadont
conditional (ternary) operator (?:) by JasonS
checked and unchecked operators by Binoj Antony
implicit and explicit operators by Flory

Language Features

Nullable types by Brad Barker
Currying by Brian Leahy
anonymous types by Keith
__makeref __reftype __refvalue by Judah Himango
object initializers by lomaxx
format strings by David in Dakota
Extension Methods by marxidad
partial methods by Jon Erickson
preprocessor directives by John Asbeck
DEBUG pre-processor directive by Robert Durgin
operator overloading by SefBkn
type inferrence by chakrit
boolean operators taken to next level by Rob Gough
pass value-type variable as interface without boxing by Roman Boiko
programmatically determine declared variable type by Roman Boiko
Static Constructors by Chris
(more..)

Read more: StackOverflow

Posted via email from Jasper-net

dlvr.it

|
dlvr_publicbeta.png

Deliver Content to the Social Web - Automatically feed your blog to Twitter, Facebook, LinkedIn, Google Buzz and more.

Read more: dlvr.it

Posted via email from Jasper-net

Why, oh WHY, do those #?@! nutheads use vi?

|
Yes, even if you can't believe it, there are a lot fans of the 30-years-old vi editor (or its more recent, just-15-years-old, best clone & great improvement, vim).

No, they are not dinosaurs who don't want to catch up with the times - the community of vi users just keeps growing: myself, I only got started 2 years ago (after over 10 years of being a professional programmer). Friends of mine are converting today. Heck, most vi users were not even born when vi was written!

Yes, there are definite reasons why the vi/vim editing model is just superior to any other out there. And you don't need to be a Unix whiz to use it, either: vim is available for free for almost any platform out there, and there are plug-ins to get the functionality inside all major IDEs. Let's try to break a few misconceptions, and see some real examples of why it's the killerest:

Misconception #1: modal editing
The first time you stumble into vi or vim, you are shocked and disgusted that you have to use 'i' to start typing text. Can't remember which of hjkl moves in which direction. And you need to press 'a' if you want to insert after the last character of the line. Since you're already probably used to other editors, and if the arrow keys work in insert mode (they do if the system is configured properly, which is over 90% of the cases), you will stay in insert mode and not go back to normal mode except if absolutely necessary. You'll probably spend 20 minutes with it, and never go back. And also complaining: "How on earth am I going to remember whether I'm in insert or normal mode?"

Turns out, this is just a completely wrong way to use vi or vim. Using vi/vim properly, you don't use it modally. You are always in normal mode, and only enter insert mode for short bursts of typing text, after which you press <Esc> to go to normal mode. Thus, the remembering-the-mode problem just doesn't exist: you don't answer the phone in insert mode to get back to vi and not remember where you were. If you are typing text and the phone rings, you exit insert mode and then answer the phone. Or you press <Esc> when you come back. But you never think about insert mode as a mode where you stay.

Let me explain the philosophy behind this.

Commands in vi/vim are meant to be combined - 'd' means delete, 'e' means 'move to end of word', then 'de' is a complete command that deletes to the end of the current word (something like Ctrl-Shift-Right, Left, Del in most regular editors).

One good benefit of this is that the '.' command repeats the last complete, combined editing command (not movement commands). After doing 'dw', '.' will act as a command to delete to the beginning of the next word. You can move around at will with all the powerful navigation commands, and press '.' at will to delete to the next word quickly. This turns out to be incredibly powerful.

And now we come to insert commands. These commands enter insert mode and let you type text until you press <Esc>. Ok, in the case of these commands, the full command includes all the text you typed between 'i' (or whatever command you used to enter insert mode, as there are several) and <Esc>.

What this means is that if you type 'iHello<Esc>', which enters the text 'Hello' at the cursor's position, what now '.' does is "Type 'Hello' at the cursor's position". All of it. And you can understand that is pretty powerful. But it's better than this. 'A' goes to the end of the current line and enters insert mode there. So, after completing the insert by pressing <Esc>, you can press '.' anywhere to go to the end of the line and do the same thing.

Read more: ViEmu

Posted via email from Jasper-net

Ethiopian multiplication

|
A method of multiplying integers using only addition, doubling, and halving.
Method:
Take two numbers to be multiplied and write them down at the top of two columns.
In the left-hand column repeatedly halve the last number, discarding any remainders, and write the result below the last in the same column, until you write a value of 1.
In the right-hand column repeatedly double the last number and write the result below. stop when you add a result in the same row as where the left hand column shows 1.
Examine the table produced and discard any row where the value in the left column is even.
Sum the values in the right-hand column that remain to produce the result of multiplying the original two numbers together

For example: 17 × 34
      17    34

Halving the first column:
      17    34
       8
       4
       2
       1

Doubling the second column:
      17    34
       8    68
       4   136
       2   272
       1   544

Strike-out rows whose first cell is even:
      17    34
       8    68
       4   136
       2   272
       1   544

Sum the remaining numbers in the right-hand column:
      17    34
       8    --
       4   ---
       2   ---
       1   544
          ====
           578

So 17 multiplied by 34, by the Ethiopian method is 578.

Read more: Rosetta code

Posted via email from Jasper-net

Jython

|
Jython, lest you do not know of it, is the most compelling weapon the Java platform has for its survival into the 21st century - SeanMcGrath

Why Jython

There are numerous alternative languages implemented for the Java VM. The following features help to separate Jython from the rest:

Dynamic compilation to Java bytecodes - leads to highest possible performance without sacrificing interactivity.
Ability to extend existing Java classes in Jython - allows effective use of abstract classes.
Optional static compilation - allows creation of applets, servlets, beans, ...
Bean Properties - make use of Java packages much easier.
Python Language - combines remarkable power with very clear syntax. It also supports a full object-oriented programming model which makes it a natural fit for Java's OO design.

What Does Jython Do Well?

Prototyping
Java investigation
   >>> from java.util import Date
   >>> d = Date()
   >>> print d
   Sat Jan 08 16:26:16 CST 2005
   >>> from java.util import Random
   >>> print dir(Random)
   ['__init__', 'nextBoolean', 'nextBytes', 'nextDouble', 'nextFloat',
   'nextGaussian', 'nextInt', 'nextLong', 'seed', 'setSeed']
   >>>

Making bean properties accessible

   >>> print Date().time
   1105500911121
Glues together libraries already written in Java
Excellent embedded scripting language
Object Domain UML Tool
PushToTest
Drools

Differences - Python & Jython

Read more: Jython: Python for the Java Platform

Posted via email from Jasper-net

Snyppets - Python snippets

|
This page contains a bunch of miscellaneous Python code snippets, recipes, mini-guides, links, examples, tutorials and ideas, ranging from very (very) basic things to advanced. I hope they will be usefull to you. All snippets are kept in a single HTML page so that you can easily ❶save it for offline reading (and keep on a USB key) ❷search in it.

Note that scripts that do some web-scraping may not work anymore due to website changes. The web is an evolving beast :-)
(Don't forget to read my main Python page ( http://sebsauvage.net/python/ ): there is handful of other programs and a guides.)

Send a file using FTP
Queues (FIFO) and stacks (LIFO)
A function which returns several values
Exchanging the content of 2 variables
Getting rid of duplicate items in a list
Get all links in a web page (1)
Get all links in a web page (2)
Get all links in a web page (3)
Get all links in a web page (4)
Zipping/unzipping files
Listing the content of a directory
A webserver in 3 lines of code
Creating and raising your own exceptions
Scripting Microsoft SQL Server with Python
Accessing a database with ODBC
Accessing a database with ADO
CGI under Windows with TinyWeb
Creating .exe files from Python programs
Reading Windows registry
Measuring the performance of Python programs
Speed up your Python programs
Regular expressions are sometimes overkill
Executing another Python program
Bayesian filtering
Tkinter and cx_Freeze
a few Tkinter tips
Tkinter file dialogs
(more...)

Read more: Snyppets - Python snippets

Posted via email from Jasper-net

D Programming Language

|
D is a systems programming language. Its focus is on combining the power and high performance of C and C++ with the programmer productivity of modern languages like Ruby and Python. Special attention is given to the needs of quality assurance, documentation, management, portability and reliability.

The D language is statically typed and compiles directly to machine code. It's multiparadigm, supporting many programming styles: imperative, object oriented, and metaprogramming. It's a member of the C syntax family, and its appearance is very similar to that of C++. Here's a quick list of features.

It is not governed by a corporate agenda or any overarching theory of programming. The needs and contributions of the D programming community form the direction it goes.

There are two versions of the language:

  1. D version 1 which is in maintenance mode.
  2. D version 2 which is recommended for new projects.
There are currently four implementations:
  1. Digital Mars dmd for Windows 1.0 2.0, x86 Linux 1.0 2.0, Mac OS X 1.0 2.0, and x86 FreeBSD 1.0
  2. LLVM D Compiler ldc for D version 1.
  3. Gnu D compiler gdc.
  4. D.NET compiler alpha for .NET for D version 2.
A large and growing collection of D source code and projects are at dsource. More links to innumerable D wikis, libraries, tools, media articles, etc. are at dlinks.

This document is available as a pdf, as well as in Japanese and Portugese translations. A German book Programming in D: Introduction to the new Programming Language is available, as well as a Japanese book D Language Perfect Guide, and a Turkish book D Programlama Dili Dersleri.

Read more: Digital Mars

Posted via email from Jasper-net

BareMetal OS

|
The BareMetal OS - For a lean, mean, processing machine
BareMetal is a 64-bit OS for x86-64 based computers. The OS is written entirely in Assembly, while applications can be written in Assembly or C/C++. Development of the Operating System is guided by its 3 target segments:

  • High Performance Computing - Act as the base OS for a HPC cluster node. Running advanced computation workloads is ideal for a mono-tasking Operating System.
  • Embedded Applications - Provide a platform for embedded applications running on commodity x86-64 hardware.
  • Education - Provide an environment for learning and experimenting with programming in x86-64 Assembly as well as Operating System fundamentals.
Current version is 0.4.9 - released September 15, 2010.

BareMetal boots via Pure64 and has a command line interface with the ability to load programs/data from a hard drive. Current plans for v0.5.0 call for a more feature-rich C/C++ library for applications as well as general bug fixes and optimizations. The creation of BareMetal was inspired by MikeOS - A 16-bit OS written in Assembly used as a learning tool to show how simple Operating Systems work.

Read more:  return ();

Posted via email from Jasper-net

The Top 8 Killer Alternatives to Google Analytics

|
Google Analytics is one of the most well known website analytics around, not to mention being one of the best. Although Google Analytics is a fantastic app to tackle your site’s analytics needs, there are actually several other options available that many would argue are better choices. We’ve pulled together eight of the best alternatives to Google Analytics and some information about each; price, plugins, mobile apps, real-time tracking and requirements.

Which analytics app do you use and why? Read on to see if there’s anything more fitting for your needs or if you have something you’d recommend.

Mint

Every time I’ve looked into analytics apps several people always tell me they much prefer Mint over Google Analytics. Mint is self-hosted, so you have more control in that respect, but also offers real-time tracking and is extensible. Mint’s interface is clean and easy to read and navigate, so it’s a breeze to use.
Price: $30 per site
WordPress Plugin: Yes
Mobile App: Third-party iPhone app (iTunes)
Real-time data: Yes
Requirements: Self-Hosted (PHP, MySQL)
Developer: Shaun Inman

Reinvigorate

Reinvigorate is one of my favorites and actually my personal analytics app of choice. The app offers real-time tracking, visitor “NameTags” (great for seeing who’s on your site), a desktop app and even heatmaps. The app design is fantastic and it’s a breeze to use; although it can be addicting watching your real-time data flow in.
Price: $10 per month, 14-day free trial
WordPress Plugin: Yes
Mobile App: No
Real-time data: Yes
Requirements: None
Developer: Sean McNamara

Clicky

Clicky probably offers the most features of any app listed here, including real-time tracking, various plugins, mobile apps, website widgets and a whole lot more. Along with piles of great features, Clicky also offers more price plans than other apps to best fit your needs and your budget. Clicky’s interface design wasn’t too appealing for me, but it does a great job at accomplishing its goal.
Price: Free, $6.99-$19.99 per month
WordPress Plugin: Yes
Mobile App: Yes
Real-time data: Yes
Requirements: None
Developer: Clicky

chartbeat

Chartbeat, like several of the other apps here, also offers real-time tracking but features an interface that’s more enjoyable to look at than just a pile of numbers or the typical line graph. It’s a clean looking and easy to use app that will be much more appealing to the average user rather than hardcore analytics users.
Price: $9.95 per month, 30-day free trial
WordPress Plugin: Yes
Mobile App: iPhone app (iTunes)
Real-time data: Yes
Requirements: None
Developer: Chartbeat Inc.

(more..)

Read more: appstorm

Posted via email from Jasper-net

SlideRocket

|
SlideRocket.jpg

SlideRocket is a presentation web app that really shows what kind of incredibly powerful apps can be developed for the web. In my opinion, even current desktop powerpoint apps fail to offer the capabilities SlideRocket does. It’s even available on mobile devices such as the iPhone and iPad.
SlideRocket is free but many of the more powerful features are reserved for the Pro plan, which will be well worth it for business or heavy presentation users. See our review of SlideRocket, Power Your Presentations with the New SlideRocket, more a more in-depth look but keep in mind they’ve added many fantastic features since then.

Read more: SlideRocket

Posted via email from Jasper-net

Gerrit

|
Web based code review and project management for Git based projects.

Objective
Gerrit is a web based code review system, facilitating online code reviews for projects using the Git version control system.

Gerrit makes reviews easier by showing changes in a side-by-side display, and allowing inline comments to be added by any reviewer.

Gerrit simplifies Git based project maintainership by permitting any authorized user to submit changes to the master Git repository, rather than requiring all approved changes to be merged in by hand by the project maintainer. This functionality enables a more centralized usage of Git.

Read more: Google Code

Posted via email from Jasper-net

Crucible - the ultimate code review tool

|
I wanted to write this post for a few weeks, but was so busy I simply didn't have time.

Code reviews - I don't have to tell you how important is this technique in the context of source code quality, adherence to standards, audits, and mentoring less experienced programmers. Code reviews are essential to software project, and I cannot imagine a project without code reviews.

In my current project our Technical Consultant introduced Crucible and I have to say that it is the best code review tool I have ever used!

But before I tell you something more about Crucible I want to tell you how it was done previously (and maybe is still done by some of you).

Code reviews in Word

In my first production iPhone application we had an external consultant - an expert in Objective-C and iPhone development. He didn't have access to our company's infrastructure so I was sending him zipped project and he sent me comments in Word. Code reviews in place, but not what you would normally do in a year-long, 5 team members project.

Centralised document repository

In an eCommerce project we used Lotus Notes for code reviews. How did it look like? Well you created a document, added files into it, and someone else reviewed it, then it was you turn to amend the files appropriately and check them into the repository.

It has the following advantages:

  • the document repository is centralised, is accessible by everyone
  • it supports iteration (document version changes and final acceptance)
  • it supports reviewers
Quite nice, but there is one huge disadvantage:
  • the tool is completely separated from the source code, you attach source code to the document manually, if the reviewer wants to track changes he/she should update its working copy and compare the changes himself/herself
For me this disadvantage makes this approach completely useless.

Simple Tools embedded in IDEs

A friend of mine showed me last year a VS plugin for code reviews. The code comments were visible in a tab which looked like a Errors/Warnings tab.

Posted via email from Jasper-net