Microsoft ZUNE HD

Microsoft’s just sent out a press release (after the break) and launched an official Zune HD page.

The Zune HD is real, and it’s coming this Fall. Microsoft officially announced the next iteration in their Zune line today, making it less of a tripped out pipe dream, and more of a totally tubular reality. The specs, which look exactly like that leak we saw, go like this: 3.3-inch, 480 x 272 OLED capacitive touchscreen display, built-in HD Radio receiver, HD output (utilizing a new dock — not on-board), and… not much more right now. Microsoft is doing away with the famed squircle in favor a full multitouch device, and they seemed to indicate that some new touch-friendly apps and games would be headed our way, though they were fairly mum when it came to details. The device will boast an IE-based, customized browser, but little else was said in the way of software.

Details are also scarce concerning storage capacities, CPU performance, and other crucial numbers, but it seems like they’ve got more in store come E3… and that’s the next big piece of news. Zune integration is coming to the Xbox and Xbox Live, as the Zune marketplace will step in to replace the current Live video resources, expanding the library and offering all kinds of new perks, like Zune’s first foray into international waters. According to the company, at E3 «attendees will see first-hand how Zune integrates into Xbox LIVE creating a game-changing entertainment experience» — we’re not entirely sure what the means right now, but it sounds sweet. Try to contain your excitement.

Picture of black Zune HD, now after the break, which Microsoft is giving out to selected «Zune MVP» sites such as Inside the Circle and ZuneTracks.

HP Mini 1101

HP’s got more additions to its Mini netbook lineup coming your way with the 1101 and 110 XP / Mi. All three models sport a 10.1-inch widescreen LED, autosync software for easier connectivity to your primary PC, and the standard 1.6 GHz Intel Atom N270 / 1.66GHz N280 processor options with GMA 950 graphics, VGA output, 3 or 6 cell batteries, and 802.11b/g.

The Mini 110 XP edition takes the trend even further with — and we’re sure you’re surprised here — 1GB RAM and 160GB HDD or 32GB SSD, as well as optional WWAN and a Broadcom Crystal HD Enhanced Video Accelerator, which HP claims will let you watch 1080p video smoothly — yeah, we’ll believe it when we see it. Those who go with the company’s Linux-based pet Mi can bump up to 250GB HDD and 2GB memory. As for the Mini 1101, it looks like it’s basically the business-centric 110 with XP and Vista as your OS choices and no apparent video enhancer. As for pricing and availability, the Mini 1101 is coming at ya on June 1st with a base price of $329, while Mini 110 will follow shortly after in black swirl on June 10th, and white swirl / pink chic on July 8th. Those will start at $279 with Mi and $329 if you want Windows XP instead.

iPhone SDK development on multiple computers

Sometimes it’s good to be able to use several computers to develop your iPhone app. In my case my main development machine is the iMac, but summer is coming up and I may not want to stop developing just because I go out of town. Luckily I have a MacBook, on which I have also installed the iPhone SDK.

In order to test on the device when I develop using the MacBook I have to move my certificate, private key and provisioning profile to it. Here’s how I do that.

1. Launch Keychain Access on the iMac (main development computer).

2. Under the Keys category I Ctrl-click the private key that has the certificate for ‘iPhone Developer: ‘ attached to it.

3. In the context menu select ‘Export …’.

4. When saving provide a password, which will be required for importing on the other computer.

5. A .p12 file was saved, transfer it to the target computer.

6. Grab the development provisioning profile (either by downloading from the iPhone Program Portal or by grabbing the right one from ~/Library/MobileDevice/Provisioning Profiles/) and transfer it to the target computer.

7. Double click the .p12 file on the target computer. If you provide the correct password the key and certificate will be installed into the Keychain on the target computer.

8. Drag the provisioning profile onto the Xcode dock icon.

The application can now be installed on the device from the target computer, which in my case is the lovely black MacBook.

A Short Introduction To Cron Jobs

crontab

The command to create/edit, list, and remove cron jobs is crontab. If you call it with the -u option, it specifies the name of the user whose crontab is to be tweaked. If this option is not given, crontab examines «your» crontab, i.e., the crontab of the person executing the command. If you are looged in as root and run crontab without -u, then root’s crontab is listed/modified/removed. If you are logged in as exampleuser and run crontab without -u, then exampleuser‘s crontab is listed/modified/removed.

Examples:

crontab -l

lists the cron jobs of the user as that you are currently logged in:

server1:~# crontab -l
* * * * * /usr/local/ispconfig/server/server.sh > /dev/null 2>> /var/log/ispconfig/cron.log
30 00 * * * /usr/local/ispconfig/server/cron_daily.sh > /dev/null 2>> /var/log/ispconfig/cron.log
server1:~#

crontab -u exampleuser -l

lists all cron jobs of exampleuser.

crontab -e

let’s you create/modify the cron jobs of the user as that you are currently logged in (I’ll come to the syntax in the next chapter).

crontab -u exampleuser -e

let’s you create/modify the cron jobs of exampleuser.

crontab -r

deletes all cron jobs of the user as that you’re currently logged in.

crontab -u exampleuser -r

deletes all cron jobs of exampleuser.

If you have written your cron jobs to a text file, you can use the text file to create the cron jobs. For example, let’s assume you have created the text file /tmp/my_cron_jobs.txt

vi /tmp/my_cron_jobs.txt

… with the following contents:

30 00 * * * /path/to/script

You can create a cron job from that file as follows:

crontab /tmp/my_cron_jobs.txt

(Or for exampleuser:

crontab -u exampleuser /tmp/my_cron_jobs.txt

)

Please note that this will overwrite all previously created cron jobs – if you’ve already created some cron jobs, you better use crontab -e and add the new cron job manually.

See

man crontab

to learn more about the crontab command.

Cron Job Syntax

A cron job consists out of six fields:

<minute> <hour> <day of month> <month> <day of week> <command>

field          allowed values
—–          ————–
minute         0-59
hour           0-23
day of month   1-31
month          1-12 (or names, see below)
day of week    0-7 (0 or 7 is Sun, or use names)

When specifying day of week, both day 0 and day 7 will be considered Sunday.

A field may be an asterisk (*), which always stands for first-last.

Names can also be used for the «month» and «day of week» fields. Use the first three letters of the particular day or month (case doesn’t matter), e.g. sun or SUN for Sunday or marMAR for March..

Let’s take a look at the two cron jobs from the first chapter:

* * * * * /usr/local/ispconfig/server/server.sh > /dev/null 2>> /var/log/ispconfig/cron.log

This means: execute /usr/local/ispconfig/server/server.sh > /dev/null 2>> /var/log/ispconfig/cron.log once per minute.

30 00 * * * /usr/local/ispconfig/server/cron_daily.sh > /dev/null 2>> /var/log/ispconfig/cron.log

This means: execute /usr/local/ispconfig/server/cron_daily.sh > /dev/null 2>> /var/log/ispconfig/cron.log once per day at 00:30h.

The day of a command’s execution can be specified by two fields: day of month, and day of week. If both fields are restricted (i.e., aren’t *), the command will be run when either field matches the current time. For example, 30 4 1,15 * 5 would cause a command to be run at 4:30h on the 1st and 15th of each month, plus every Friday.

You can use ranges to define cron jobs:

Examples:

1,2,5,9 – means every first, second, fifth, and ninth (minute, hour, month, …).

0-4,8-12 – means all (minutes, hours, months,…) from 0 to 4 and from 8 to 12.

*/5 – means every fifth (minute, hour, month, …).

1-9/2 is the same as 1,3,5,7,9.

Ranges or lists of names are not allowed (if you are using names instead of numbers for months and days – e.g., Mon-Wed is not valid).

1,7,25,47 */2 * * * command

means: run command every second hour in the first, seventh, 25th, and 47th minute.

Instead of the first five fields, one of eight special strings may appear:

string         meaning
——         ——-
@reboot        Run once, at startup.
@yearly        Run once a year, «0 0 1 1 *».
@annually      (same as @yearly)
@monthly       Run once a month, «0 0 1 * *».
@weekly        Run once a week, «0 0 * * 0».
@daily         Run once a day, «0 0 * * *».
@midnight      (same as @daily)
@hourly        Run once an hour, «0 * * * *».

You can also use name=value pairs in a crontab to define variables for the cron jobs:

# use /bin/bash to run commands, instead of the default /bin/sh
SHELL=/bin/bash
# mail any output to exampleuser, no matter whose crontab this is
MAILTO=exampleuser
# set the PATH variable to make sure all commands in the crontab are found
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

* * * * * my_command

Please note: unless you set a PATH variable in a crontab, always use full paths in the crontab to make sure commands are found and can be executed. For example, instead of writing rsync, you should write /usr/bin/rsync. Use which to find out the full path of a program:

which rsync

server1:~# which rsync
/usr/bin/rsync
server1:~#

See man 5 crontab to learn more about the cron job syntax.