Menu Content/Inhalt
Home

Navigation

Polls

Would you purchase DRM protected media?
 
Facebook Terms of Use
Other
Tuesday, 17 February 2009
The new facebook terms of use are just unbelievable. I first saw the story on Slashdot, but it's all over the web - Facebook owns everything you post, forever. Here's an excerpt from the official Facebook terms of use page:
You hereby grant Facebook an irrevocable, perpetual, non-exclusive, transferable, fully paid,
worldwide license (with the right to sublicense) to (a) use, copy, publish, stream, store, retain,
publicly perform or display, transmit, scan, reformat, modify, edit, frame, translate, excerpt,
adapt, create derivative works and distribute (through multiple tiers), any User Content you
(i) Post on or in connection with the Facebook Service or the promotion thereof subject only to
your privacy settings or (ii) enable a user to Post, including by offering a Share Link on your
website and (b) to use your name, likeness and image for any purpose, including commercial or
advertising, each of (a) and (b) on or in connection with the Facebook Service or the promotion
thereof. You represent and warrant that you have all rights and permissions to grant the foregoing
licenses.
So essentially, "I hereby grant Facebook the right to do anything they'd like with my pictures, comments and other media that I publish, including sublicensing that media, selling it, publishing it, or modifying it without having to compensate me." Nice. I'm not going to use Facebook until this is sorted out.
 
Please, join this group to show your concern. In the mean time, I've restricted my privacy settings - I recommend you do this too. Just click the Settings button at the top of your profile and remove all applications, disable Beacon and similar services as well as restrict everything to "Friends Only".
 
My theorem
Other
Saturday, 14 February 2009
timein day= 1d * 24h * 60m * 60s / (age/10)-1 Wink
 
Botnets
Humor
Monday, 01 December 2008
I just read on Slashdot that yet another massive botnet is growing... There must be tons of computers out there infected with multiple of these "transparent" viruses, making them belong to 2+ botnets at once. I sense an epic botnet war in the near future! Wink
 
Fedora 10 is out!
Linux
Wednesday, 26 November 2008

Fedora 10 was released yesterday, and I'm very impressed. This are much smoother this time around than in Fedora 9, and the Solar artwork is simply stunning. You can see some screenshots in this Phoronix review, and if you like it you can grab the LiveCD/LiveUSB, CD and DVD ISO images here. I've also updated all my blog howtos for Fedora 10, so if you need any help setting up your system with RPM Fusion be sure to check them out!

 
Data loss & backups survey
School
Monday, 24 November 2008

I'm taking a small business course at my local college and one of my assignments is to write a business plan for a business which would be offering the product or service of my choice.

Since I'm interested in data recovery and backups, I've written a short online survey  about data loss and backups which will help me collect information for the project. It should only take two minutes to fill out and I would really appreciate it if you could take the time to complete it. The more results I have the better... Thanks! (btw, if you'd like to see the results, then visit this page).

 
NiN
Other
Friday, 21 November 2008
I went to see NiN's Lights in the Sky tour at the Bell Center last week, it was one amazing (light) show! If they're coming by your city and you're a fan of NiN, you should definitely consider going.
 
You're a pirate!
Humor
Friday, 21 November 2008
While the poll is on the topic of DRM.... I really enjoyed this xkcd Tongue out
 
The magic SSH command
Tips&Tricks
Wednesday, 22 October 2008
I love SSH's port mapping features. They're a bit complex to figure out, but they can prove to be very handy.
 
Once, I was updating a friends Fedora installation but I had to head home... He was behind a firewall and so I wouldn't be able to do remote access, even though sshd was running. Port mapping to the rescue! I logged in via SSH to my home machine and mapped his port 22 to a port on my local machine, so when I got home I was able to ssh to localhost and thereby get into his machine!
 
I've come up with my favourite SSH command that combines a few tricks - it goes as follows:
ssh -p port -l username hostname.or.ip -L lport:localhost:rport -D proxyport

I'll run through it step-by-step:

  • ssh -p port -l username hostname.or.ip

    This instructs SSH to connect to hostname.or.ip on port as username.

  • -L lport:localhost:rport

    This maps rport on the remote machine to lport on localhost (aka the machine you're currently using). Essentially, connection to port lport on localhost is the same as connecting to the remote host on port rport. It's very useful for mapping services running on the remote machine (such as VNC) to the local machine over a secure channel.

  • -D proxyport

    This makes SSH act as a SOCKS 4 proxy on localhost using port proxyport, which is needed for allowing traffic on ports which would otherwise be blocked (ie BitTorrent, FTP, POP, SMTP, etc in places that only allow traffic on port 80)

For example:
ssh -p 22 -l me myhost.homelinux.net -L 5905:localhost:5900 -D 5678

This maps the VNC screen :0 on myhost.homelinux.net (port 22, username "me") to the local VNC screen :6, and makes a SOCKS proxy on port 5678. If I connect to localhost:5906, it's the same as connecting to myhost.homelinux.net:5900 except thanks to SSH everything passes through an encrypted channel!

 
The MacBook Pro Latch
Hardware
Tuesday, 21 October 2008

If you've been following my blog (I don't post often do I don't blame you if you don't Wink) you know that I've become a pretty big fan of Apple. Even though you do end up paying a slight premium for Apple hardware compared to a Dell let's say, the peace of mind from using OS X and the bundled software is well worth the extra cost.

I've only have three complains about my MacBook Pro 4,1 (early 2008 model): A small and very bright white dot on the screen that only appears when displaying white pixels, small amounts of corrosion on the hand rest area near the trackpad, and finally the latch button has been stuck pressed in for the past two days and so the screen wouldn't stay close properly.

Turns out that there isn't much I can do about the first - many other owners of MacBook models with LED-backlit screens also seem to have the problem. The second is slightly annoying, but after some reading I discovered some good news - only the first layer will oxidize/corrode, and the case as a whole will be fine. The last one also seems to be a relatively common problem, and fortunately it's an easy fix! After two hours of fidgeting with a paperclip and protractor trying to push the latch forward, I finally decided to shine a flashlight into the small holes near the trackpad and latch mechanism. Sure enough, there was a small piece of plastic that had fallen into the hole and was blocking the latch from springing forward. I used a small metal hook to carefully move the piece of plastic upwards and not slide it across (where it would eventually just obstruct the latch again) and then removed it. Voila, the latch was working again!

 
New website online!
Software
Saturday, 18 October 2008
As I talked about a few posts ago, I've been trying out Drupal and designing a new section of the Diffingo website with it that's devoted to its open-source software. I polished it a bit and it's now online at diffingo.com/oss. Now that I have a developer blog there, I'll be posting info relevent to fwbackups and my other software there... But the rest will still be here.
 
Writing cross-platform applications with Git, Qt and CMake
Tips&Tricks
Monday, 18 August 2008
I've been working a lot on the new fwbackups branch, where my main goal was to make it faster, more versatile and cross-platform. I decided to write it in C++ and use Qt for the interface, since when combined with CMake it would be very easy to have it compiling on all platforms. Stick the code into a git repo and you've got cross-platform building with cross-platform revision control! If you're looking for a way to setup a cross-platform application, I've listed the steps I took below:

Step 1: Install the Dependencies

Before we begin, you'll have to install a few dependencies:

Step 2: Create the git repository

Now that you have Git installed, it's time to create the Git repository which will host your project. Open up a command line and type:

  • Linux (Applications Menu > System Tools > Terminal), Unix or Mac OS X (Macintosh HD > Applications > Utilities > Terminal):
    mkdir -p ~/development/ProjectName
    cd ~/development/ProjectName
    git ini
  • Microsoft Windows (Start > Run, type "cmd"):

    mkdir "My Documents"
    mkdir "My Documents\development"
    mkdir "My Documents\development\ProjectName"
    cd "My Documents\development\ProjectName"
    git init

This will initialize a git repository called ProjectName inside the "development" folder in your home. You can replace ProjectName with whatever you'd like, but just remember to replace all further instances of it in this tutorial with the same name.

If you'd like to share the project and authorize with other developers to commit to the Git repository, be sure to check out gitosis.

Step 3: Directory Layout

While it's not required, I chose to use an out-of-source build to help keep the source directories clean and keep the build files for each platform separate. Inside your newly-created ProjectName folder, create the following directory tree:

  • build/
    • mingw/
    • linux/
    • osx/
    • unix/
  • pixmaps/
  • src/
  • translations/

Step 4: Configure CMake

 The last step is to configure CMake. When CMake is involked, it reads the CMakeLists.txt file and then automatically generates Makefiles for your platform. Use this template CMakeLists.txt file and save it in the ProjectName directory created earlier:

# Name of the project
project( ProjectName )

# Essentially, just split up your project version numbers by the dot.
# These variables map version 0.0.1 of ProjectName.
set( VERSION_MAJOR "0" )
set( VERSION_MINOR "0" )
set( VERSION_PATCH "1" )

if( APPLE )
# If we're running OS X, we need CMake 2.6.0
cmake_minimum_required(VERSION 2.6.0)
set( CMAKE_OSX_ARCHITECTURES "ppc;i386" )
else( APPLE )
# Otherwise, CMake 2.4.8 is fine
cmake_minimum_required( VERSION 2.4.8 )
endif( APPLE )

# This project requires Qt4 and Gettext
# If your project does not use Qt or Gettext, simpy remove these lines.
find_package( Qt4 REQUIRED )
find_package( Gettext REQUIRED )

# Enable all compiler warnings
add_definitions( -Wall )

# Process the "src" subdirectory
add_subdirectory(src)

If you're using gettext for translations (as many open-source projects do) then all you need to change is the ProjectName at the beginning and the version number. You'll notice that "add_subdirectory(src)" is called, so the next step is to create the CMakeLists.txt in the ProjectName/src directory:

# All cpp files go here
set(SRC_FILES
main.cpp
ProjectName.cpp
)

# Headers with signal/slot definitions go here
# Remove me if not using Qt
set(MOC_HDRS
ProjectName.h
)

# Qt designer interface files go here
# Remove me if not using Qt
set(UI_FILES
interface/ProjectName.ui
)

# Qt RC files go here, uncomment if applicable
# Remove me if not using Qt
#set(RC_FILES ProjectName.qrc)

# Remove me if not using Qt
qt4_wrap_ui( UI_HDRS ${UI_FILES} )
qt4_wrap_cpp( MOC_SRCS ${MOC_HDRS} )
# If you're using Qt RC files, uncomment this too
#qt4_add_resources( RC_SRC_FILES ${RC_FILES} )
# Includes the standard Qt libraries
include( ${QT_USE_FILE} )

# Include your headers in the build and source directories
# If you need to include more directories, add them here
include_directories( ${ProjectName_BINARY_DIR}/src
${ProjectName_SOURCE_DIR}/src
)

if( APPLE )
# Define some settings for the Bundle
set( MACOSX_BUNDLE_BUNDLE_NAME ProjectName )
set( MACOSX_BUNDLE_GUI_IDENTIFIER "ProjectName" )
set( MACOSX_BUNDLE_ICON_FILE ProjectName.icns )
set( MACOSX_BUNDLE_INFO_STRING ""${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}",
Copyright 2008 ProjectName team" )
set( MACOSX_BUNDLE_SHORT_VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}" )
set( MACOSX_BUNDLE_LONG_VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" )
set( MACOSX_BUNDLE_BUNDLE_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" )
set( MACOSX_BUNDLE_COPYRIGHT "(C) 2005-2008 Stewart Adam" )
# create a bundle with an icon too!
# If you're not using Qt, uncomment the next line and comment the line below it:
#add_executable( ProjectName MACOSX_BUNDLE ${SRC_FILES} )
add_executable( ProjectName MACOSX_BUNDLE ${SRC_FILES} ${MOC_SRCS} ${RC_SRC_FILES} ${UI_HDRS} )

# Allows for bundle re-creation just by running "make". Also installs bundle icon
add_custom_target( osx_bundle_dirs
COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/ProjectName.app/Contents/Resources
COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/ProjectName.app/Contents/MacOS
COMMAND cp ../../../pixmaps/${MACOSX_BUNDLE_ICON_FILE}
${CMAKE_CURRENT_BINARY_DIR}/ProjectName.app/Contents/Resources/${MACOSX_BUNDLE_ICON_FILE}
# Qt translations - uncomment this line when you need to install them to the bundle
#COMMAND cp *.qm ${CMAKE_CURRENT_BINARY_DIR}/ProjectName.app/Contents/Resources/
)
add_dependencies( ProjectName osx_bundle_dirs )
# This tells cmake where to place files inside the bundle
set_source_files_properties( ${ProjectName_RESOURCES} ${ProjectName_TRANSLATIONS}
PROPERTIES MACOSX_PACKAGE_LOCATION Resources )
else( NOT APPLE )
# Builds a binary for windows (without cmdline showing), regular for Linux
# If you need the cmdline showing, remove the WIN32 attribute

# If you're not using Qt, uncomment the next line and comment the line below it:
#add_executable( ProjectName WIN32 ${SRC_FILES} )
add_executable( ProjectName WIN32 ${SRC_FILES} ${MOC_SRCS} ${RC_SRC_FILES} ${UI_HDRS} )
endif( APPLE )

# Link Qt to the executable
target_link_libraries( ProjectName ${QT_LIBRARIES} )

 

Step 5: Build the project

 

Now that CMake is configured, you're good to go! To build the project, run:

cd ~/development/ProjectName/build/osx
cmake . ../../
make

If you'd like to build for Unix or Linux instead of Mac OS X, change the "build/osx" to "build/unix" or "build/linux" respectively. If you're running Windows, you need to reverse the slash direction and add an additional parameter to CMake:

cd "My Documents\development\ProjectName\build\mingw"
cmake . ..\..\ -G "MinGW Makefiles"
make
 
<< Start < Prev 1 2 3 4 5 Next > End >>

Results 1 - 11 of 49