by Nikesh Jauhari (njauhari@cybage.com) at September 03, 2010 04:27 PM
by Nikesh Jauhari (njauhari@cybage.com) at September 03, 2010 04:27 PM


by Jonathan Simon (noreply@blogger.com) at September 03, 2010 11:17 AM
by A Googler (noreply@blogger.com) at September 03, 2010 10:00 AM
For the last couple of ubuntu versions, gnome-screensaver, which is also the gnome screen-locking program, has been using gtkbuilder .ui files for configuration; unfortunately almost all of the third-party themes (e.g. on gnome-look.org) use .glade files. Here’s how to convert a .glade file to a .ui file for use with current versions of gnome-screensaver:
(...)
Read the rest of Ubuntu Tip : Installing New Lock Dialog Theme on Lucid/Karmic (71 words)
© admin for Ubuntu Geek, 2010. |
Permalink |
No comment |
Add to
del.icio.us
Post tags: desktop, Installing New Lock Dialog Theme on Lucid
#solo10.
I'll admit it; I'm slow sometimes. For a very long time now I haven't really gotten why people keep sprinkling AJAX over their web pages (partly because I assiduously use NoScript and so mostly don't see it). Oh, I understood that you needed it to create actual applications on the web and that it could be convenient for making vaguely friendly things, but I didn't really understand it in the context of relatively ordinary web apps like DWiki.
But my recent thinking about my comment form design mistake has finally fixed that. Here is my recent insight in a nutshell:
AJAX lets you do things without page changes and refreshes, so you can preserve the user's context on the page and make them less confused.
In a conventional non-AJAX web interface, any significant action forces a (full) page reload. This creates a visible page refresh except in extremely ideal circumstances and in general means that the user has to find their place again and reorient themselves. This is sort of tolerable if what the user is working on fits entirely inside their browser window; it's fairly horrible if it doesn't and they have to actively scroll around to find where they were before. This is the core problem I have with a revision to my comment form design; I'm pretty sure that people would get lost among everything else going on.
(The ideal circumstances are that you're using fragment identifiers in the URL, the browser accurately repositions things back at the fragment identifier, and the entire system loads the new page so fast that there is no visible flicker.)
In an AJAX web interface the user can perform actions without this lurching jump. For example, when they click on 'add comments', they don't get yanked to a new page; instead, a comment form unfolds right then and there in front of them. This is less confusing in two ways. First, it is happening right in front of you, clearly visible. Second, it is the only thing that is happening; you don't have to pick out the significant change from all of the other flickering and movement and so on that's going on as the page reloads.
This creates a more fluid, less disorienting interface, one that is easier and faster to work with because you spend more time doing what you're interested in and less time finding your place again every so often. In a sense, the result is much closer to a direct manipulation interface than a standard, non-AJAX web page can manage.
I don't think that there's any way to pull this off without AJAX; you really need some way to do a partial page content update without anything else flickering or moving. That's just not something that browsers offer (you don't even get it on plain user-initiated page refresh).
(I suspect that this is old hat for people in the field, but all of it only clicked for me when I started really thinking over the problem of people getting lost in my comment form under various circumstances, cf TemplateLimitations.)
PS: looking backwards, this makes me slightly more sympathetic to old HTML frames. Although they were almost never used this way, you can argue that they were a crude first attempt at the sort of limited page update you'd need to pull this off.
The Ubuntu developers are moving quickly to bring you the absolute latest and greatest software the Open Source community has to offer. The Maverick Meerkat Beta is the beta release of Ubuntu 10.10, bringing with it new features for the next version of Ubuntu.
This is a beta release. Do not install it on production machines. The final stable version will be released on October 10, 2010.
(...)
Read the rest of Ubuntu 10.10 Beta (Maverick Meerkat) Released and Download links included (1,182 words)
© admin for Ubuntu Geek, 2010. |
Permalink |
No comment |
Add to
del.icio.us
Post tags: download Ubuntu 10.10 Beta, News, Ubuntu 10.10 Beta, upgrade Ubuntu 10.10 Beta
All the panels from the Silicon Valley DevOps Days are now online. A huge round of applause for InfoQ for putting this entire event online and making it available to the world.
If you want a glimpse into the next 10 years of system administration as a career path, you need to get up to speed now so it doesn't take you by surprise in the coming years.
Oracle released VirtualBox 3.2.8, a maintenance release of VirtualBox 3.2 which improves stability and fixes regressions.
(...)
Read the rest of Virtualbox 3.2.8 released and ubuntu installation instructions included (507 words)
© admin for Ubuntu Geek, 2010. |
Permalink |
No comment |
Add to
del.icio.us
Post tags: desktop, install Virtualbox 3.2.8 in ubuntu 10.04, install Virtualbox 3.2.8 in ubuntu lucid
I wanted to help put some of you in the mindset of a DoD person when reading recent news, namely Defense official discloses cyberattack and Pentagon considers preemptive strikes as part of cyber-defense strategy, both by Washington Post reporter Ellen Nakashima. I'll assume you read both articles and the references.by Richard Bejtlich (noreply@blogger.com) at September 02, 2010 11:40 PM
Amazon.com just posted my five star review of Hacking Exposed: Wireless, 2nd Ed by Johnny Cache, Joshua Wright and Vincent Liu. From the review:by Richard Bejtlich (noreply@blogger.com) at September 02, 2010 06:28 PM
by Maile Ohye (noreply@blogger.com) at September 02, 2010 05:58 PM
For the past few days, our NYC office has had incredibly irritating problems with the internet connection. We’ve got service through a local Metro-E provider, but they’re a CLEC, which means they don’t own the lines, they just lease them from the ILEC, who is in this case, Verizon.
The root of the issue is that the wiring at the building we’re in is crap. It’s a small 5 story building that used to be apartments and has been converted to offices, and the wiring is just not up for the job. We went through several pairs of copper pairs looking for one that was good enough to carry the metro-E signal, and it was all we could do. Before metro-E, we had DSL, where we capped out at just over 1Mb/s…and this is in Manhattan.
Unfortunately, the circuit is currently in the middle of dying, so it’s working sometimes and failing others. I first opened this ticket on Monday, and have exchanged emails with our provider a dozen times or so. They’ll see the issue, but symptoms are vague as to whether it’s their equipment, our equipment, or the line running between our equipment, or (what I’m fairly sure the problem is), the lines entering the building from Verizon.
It wasn’t until last night when they finally saw enough errors on the bridge to have Verizon to commit to a service call tomorrow evening to add a loop. Every other time, everything on the line was hunky-dory. This is why intermittent problems take so long to solve…because all the stake holders have to be monitoring at exactly the right time for anything to get done.
Meanwhile, I’ve been having to apologize to my users, and give them instructions on how to forward their desk phones to their cells.
Even though the problem isn’t actually with my provider, I would love to get a secondary network connection, because the lines here are just too unreliable. No cable companies will give us service, no fiber companies will touch the building…it’s pretty much just Verizon and their CLECs at this point.
I think we’ve only got 2 more years on the lease?
A compilation of the best solutions provided to common PHP questions.
The PHP Anthology will save you time, and eliminate the frustration of completing PHP tasks, with a comprehensive collection of ready-to-use solutions. If you’re building web applications with PHP you’ll never let this book out of your site!
Tonight, we rebooted a machine that hung (presumably due to OOM or other funkiness) and it came back in the bios saying:
Foreign configuration(s) found on adapterOur managed hosting support weren't sure what to make of this, so we decided to make a new home (from backups) for the services on this now-dead machine. Dell won't helping debug on this until tomorrow.
This is one of many total data losses I've observed on RAID sets in recent months - all due to RAID failures. Thankfully, We have backups that get shipped to HDFS. We monitor those backups. We also have puppet and other automation to help move and rebuild services on a new host. We're equipped to handle this kind of failure.
This leads me to a new conclusion: The 'R' in RAID is a lie. It is not redundant. Treating it that way can lead you to the raid-is-backup fallacy.
Wikipedia has this to say about Redundancy (engineering): "In engineering, redundancy is the duplication of critical components of a system with the intention of increasing reliability of the system, usually in the case of a backup or fail-safe."
Adding more parts (complexity) to a system doesn't often increase its reliability. Even taking into account the disk redundancy you might get with mirror or parity, you're still hedging that the RAID card doesn't die, which it will. Everything's MTBF comes eventually, so weigh your risk.
Back to my conclusion that RAID is not redundant. RAID is not dead, I'm just done viewing RAID as a continuity-through-drive-failure technology. RAID has other benefits, though. It achieves more than just redundancy (when your card doesn't die).
RAID makes multiple drives present as a single drive device to the OS, right? Right. RAID allows you to aggregate disk IO performance to achive higher read/write rates than with a single disk alone. You can also aggregate disk space this way, too, if you didn't know.
It's almost 0100 now, I'd much rather be sleeping or playing TF2 than helping
rebuild from backups.
![]()
This tutorial will explain how to setup Multiple simultaneous keyboards with unique layouts
(...)
Read the rest of How to setup Multiple simultaneous keyboards with unique layouts (154 words)
© admin for Ubuntu Geek, 2010. |
Permalink |
One comment |
Add to
del.icio.us
Post tags: desktop, setup Multiple simultaneous keyboards with unique layouts ubuntu
If you want to suspen your gnome session when it is idle at the login screen use the following procedure.
Add gnome-power-preferences to GDM’s autostart directory
(...)
Read the rest of How to suspend your gnome session when it is idle (68 words)
© admin for Ubuntu Geek, 2010. |
Permalink |
One comment |
Add to
del.icio.us
Post tags: desktop, How to suspend your gnome session when it is idle at login screen ubuntu




by A Googler (noreply@blogger.com) at September 02, 2010 08:24 AM
Today i’ve tried the four (4) tiling applications on Xfce, that wikipedia refers as “Third party tiling applications on Xorg”
The winner is: Stiler
Both Tile & QuickTile had a really bad tiling appearance and PyTyle doesnt work with Xfce
by ebalaskas@ebalaskas.gr (Evaggelos Balaskas) at September 02, 2010 07:22 AM
by Nikesh Jauhari (njauhari@cybage.com) at September 02, 2010 04:27 AM
global is necessaryglobal is necessaryWhen I started out programming in Python, I didn't really like
global. For a long time I considered it unaesthetic, annoying,
and on the whole an irritating wart of the bytecode implementation. As I mentioned recently,
I have come around to a different view of global, and it goes like
this.
If you want to have both global variables and lexically scoped local variables, you have to be able to tell whether a given name being assigned to in a function is a local or a global variable at the time that the function is being defined. Assuming that you want as much as possible of this to be implicit for various reasons, there are three relatively reasonable choices that I can think of:
(If a name is never assigned to within a function but only read from, it's either a global variable or a 'use of an undefined value' error. Python opts to consider it a global variable.)
The third option is fragile (and un-Pythonic). This leaves you with a
choice between the first and the second options, and either way you are
going to need a keyword for it. Python makes the decision that writing
to global variables will be rare and so it forces you to declare them
explicitly; local variables, the common case, are handled implicitly. So
it needs global, because having local instead would be worse (and
having neither would be much worse).
(This decision might be either a pragmatic one, based on what was expected to be common, or a philosophical choice to make global variables more inconvenient in the hopes of making them less common. I don't know the Python history involved, so I have no idea which it was.)
Other languages make different choices here, sometimes for philosophical reasons that come down on the other side and sometimes just for historical ones (eg, if they started out without local variables or lexical scoping at all).
The core problem with the fully implicit option, why it is fragile in many ways, is that it makes the meaning of a function dependent on its surrounding context. You can't just read a function and know what it does and what it manipulates; instead you have to know what global names exist when the function is defined.
One consequence of this is that anything that changes what global names are defined can change the meaning of the function. In a language like Python where function definition is an ordinary executable statement, one done immediately when encountered, merely moving a function definition forward or backwards inside a file could change the function's meaning even without any other code changes (as you move it before or after where global names are created or even deleted).
So, just as one of our cars was due for registration renewal and inspection, the check engine light on it came on. We took it into the shop and had some valve, the AC system, and a couple other things fixed and the mechanic told me that they could not do the inspection yet because the car has to pass a “drive cycle” before the engine light will turn off.
What the hell is a drive cycle?
Well, it turns out that the on board diagnostics (OBD) computer has to run some self tests on the emissions system. Those tests are set to “Incomplete” or INC whenever you reset a code in the computer, disconnect the battery, or replace one of those components. After certain conditions while driving are met, the tests run and mark each component as “OK”. When that’s all done, the engine light goes off and the car can pass inspection.
But the freaking light won’t go off!
And without an ODBII scanner, you have no idea why. So I bought such a scanner, and finally that damn check engine light means something. Why they can’t put the text of the code on one of the numerous text capable displays in the car without the need to plug in a serial cable connected to this gizmo to get the code is beyond me. Well, the scanner told me that a couple of the “drive cycle” tests were still “INC”. Hmmm. But we drove it for like a week! One mechanic told me “drive like 150 miles”. Another said “just run over to Greensboro and back, that ought to do it”. Really? You guys don’t know how it works either?
Again, What the hell is a drive cycle?
Oh, drive cycle, right! Well, depending on the car, you have to do a few things like idle from a cold start with the AC and rear defrost ON for 2.5 minutes. And run at 55 MPH for 3 minutes after a half throttle acceleration. Oh, and coast from 55 mph to 20 mph WITHOUT TOUCHING THE BRAKE! Really? That’s pretty specific stuff and I don’t think I was ever going to trigger the accelerate with NO AC AND NO ELECTRICAL LOAD in the middle of August in North Carolina. That AC is ALWAYS on!
Well, some Google searching and I found out the exact conditions that the OBD drive cycle tests need. Armed with that knowledge, I can get the car to run all it’s tests in about 20 minutes.
But the light’s still on!
Sigh. Well, it turns out that the gear shift computer just started throwing an error. U0404. Yeah, I got your 404 right here, buddy. @#$%^&! The car is all ready to go for the emissions inspection but can’t pass until that freaking light is off. So, it goes back to the shop next week to fix that code, probably will need my expert gyrations through another drive cycle, and a quick verification on my trusty new OBD Scanner and THEN maybe it’ll pass the inspection and I can do my guest spot on Car Talk…
by first.last@gmail.com (Joe O'Brien) at September 01, 2010 11:46 PM
How you can monitor your server and performs usage? With Bijk you get online 30 graphs about Load, CPU, memory, traffic, Apache, PostreSQL and others with Alerts. Bijk can be used on Debian, Ubuntu, CentOS, RedHat and with Cloud providers. (...)
Read the rest of Linux Server Monitoring with Bijk (620 words)
© admin for Ubuntu Geek, 2010. |
Permalink |
No comment |
Add to
del.icio.us
Post tags: Linux Server Monitoring with Bijk, Server, ubuntu Linux Server Monitoring with Bijk

JStripChart jsc = new JStripChart();
JPanel, and then
jsc.add(some_data);
some_data to the right of the chart and move everything else along. That's it. (To get it to continuously update, create a Timer loop.)by Peter Tribble (noreply@blogger.com) at September 01, 2010 07:29 PM
xed is a perl script that locks a file, runs $EDITOR on the file, then unlocks it.
It also checks to see if the file is kept under RCS control. If not, it offers to make it so. RCS is a system that retains a history of a file. It is the predecessor to GIT, SubVersion, CVS and such. It doesn't store the changes in a central repository; it comes from a long-gone era before servers and networks. It simply stores the changes in a subdirectory called "RCS" in the same directory as the file. (and if it can't find that directory, it puts the information in the same directory as the file: named the same as the file with ",v" at the end.)
[More about this little-known tool after the jump.]
There’s an amusing thread on the LOPSA Discuss list going on right now. It’s called “What Animal is a System Administrator“.
I was leaning toward the beaver until I saw the post by Paul Graydon, who recommends the Pooka, aka the Púca:
The púca has the power of human speech, and has been known to give
advice and lead people away from harm. Though the púca enjoys
confusing and often terrifying humans, it is considered to be
benevolent.
It’s like I’m looking in a mirror.
Well it is the first of the month and it seems like I have internet access still. That's good news.
Lets see what happens my DHCP lease expires. That's the real test.
I don't want to push my luck, but it looks like good news so far!
The other day, I caught a message that KSplice was available for Fedora. I thought I’d be a wiseguy and I replied “Yeah, great. Call me in 20 years when it’s available for for RHEL”. Well, as several people pointed out, it turns out the joke is on me.
As you can see, it’s actually available for many Linux-based OSes at various prices. I suppose my confusion stemmed from the fact that I misunderstood what ksplice was.
My impression from a long time ago, when it first came out on Ubuntu, was that it was essentially a kernel patch that dynamically loaded patches and provided the ability to rebootstrap a kernel that was already loaded. As it turns out, it’s a commercial product that offers the ability to not have to reboot your machine to update the kernel. Let me be frank: I’m all about that.
The part that I kind of object to is in the press release, of all things. It’s the opening line of the company profile:
Ksplice is an enterprise software company making reboots a thing of the past.
Please, lets be honest. Reboots are inevitable. Using this product as a stop-gap for untimely reboots may be handy (at the low low price of $50 per year per server), but it can’t (and shouldn’t!) replace regular reboots.
The reasons for scheduled rebooting of machines are numerous. The primary one is that regular reboots assure that the machine is configured to boot correctly. If you’ve got a machine that’s got over 100 days of uptime, how do you know it will start correctly? You last booted it last quarter…what has happened to that machine since then? Changes in installed services, mountpoints, etc…it’s hard to tell if it’s going to be in a known-good state when it comes back up after a power failure.
Another reason to reboot occasionally is to clean up the running state of the machine. What’s that you say? Your machine is running fine? Well, sure, it may be, but how much cruft is left hanging that isn’t obvious? Have you ever used kill -9? Do you know for sure that there aren’t any memory leaks in your running services? Any processes hang while reading I/O and is now stuck in uninterruptible sleep?
Yes, there are lots of things that happen to servers over the course of doing their jobs. A reboot fixes many of them. The only argument against it is uptime.
I’ve written about uptime before, and I still feel the same way. Modern system administration has advanced beyond a single server providing a service. Uptime needs to be measured from the outside in, and according to the availability of the service, not the individual servers comprising that pool.
Feel free to disagree. Let me know if you’ve got an uptime of a year plus and you’re proud of it, or if you would be ashamed to be in that position.
Edit
This entry is causing quite a stir on Reddit. Cxunix from twitter also weighed in on his blog, servermanaged.it (link is in Italian, English translation here).
by A Googler (noreply@blogger.com) at September 01, 2010 12:00 PM
As a follow-up to the About Solaris part, and as everybody know by now the OpenSolaris project has evolved recently, sort of. I really didn't have time to write about this, but because others have done a really good job at express themselves on this subject, I will aggregate some of them here since the whole opinion of them all summarize mine pretty well.
About the leaked (?) information itself:
About the position on the end of the OpenSolaris per-se:
About the succession:
Overall thoughts, which tend to describe very well my mood after thinking about this subject as a whole:
a powerful, fast and reliable backup & sync tool
(...)
Read the rest of How to install luckyBackup 0.4.2 in ubuntu 10.04/9.10 (171 words)
© admin for Ubuntu Geek, 2010. |
Permalink |
One comment |
Add to
del.icio.us
Post tags: desktop, install luckyBackup 0.4.2 in ubuntu 10.04, install luckyBackup 0.4.2 in ubuntu lucid
by Nikesh Jauhari (njauhari@cybage.com) at September 01, 2010 04:27 AM
The assumption is that the /data directory on the NSM server is mounted to a NAS file system.
1. Login to the NSM Server via SSH as root user.
2. Stop all the NSM service processes (and in case of HA, stop it on both the NSM servers).
3. Rename the current logs directory as follows:
mv /usr/netscreen/DevSvr/var/logs /usr/netscreen/DevSvr/var/logs_bak
4. Become nsm user and create a soft link for the logs directory to point to /data directory as follows:
su nsm -
cd /usr/netscreen/DevSvr/var
ln -s /data logs
5. Make sure the user nsm can write files under /data directory.
6. When the “ls -l” command is performed under /usr/netscreen/DevSvr/var, it should look as below for the soft link :
lrwxrwxrwx 1 nsm nsm 14June 7 11:07 logs -> /data
7. Now copy all the old device logs to /data or /usr/netscreen/DevSvr/var/logs:
cd /usr/netscreen/DevSvr/var/logs_bak
cp -rpf * /usr/netscreen/DevSvr/var/logs/.
8. Once the copy is complete, verify that all files have nsm ownership.
9. Now start all the NSM processes. Login to the GUI client to make sure logs are visible and new logs are showing up.
10. Perform the same procedure on the secondary NSM server as well.
11. Once it is confirmed that servers are showing new and old logs, then delete the old logs directory “/usr/netscreen/DevSvr/var/logs_bak” on both NSM Servers.
12. Start processes on the secondary server in case of HA.
I’ve just released a simple chef cookbook that will install nodejs from source. You can check it out directly from github or download it from the opscode cookbook site. Let me know what you think if you find it useful.
by Maile Ohye (noreply@blogger.com) at September 01, 2010 12:30 AM
![]() |
![]() |
| Demo'ing the AR toolkit we built during my O'Reilly Masterclass |
A compilation of the best solutions provided to common PHP questions.
(...)
Read the rest of The PHP Anthology: 101 Essential Tips, Tricks & Hacks (Download Free PDF Guide) (48 words)
© admin for Ubuntu Geek, 2010. |
Permalink |
No comment |
Add to
del.icio.us
Post tags: News, php tutorials guide
net.ipv4.conf.*.rp_filter can worknet.ipv4.conf.*.rp_filter can workFirst, the background. net.ipv4.conf.*.rp_filter controls some IP address source validation filtering done on incoming IPv4 packets. It has three values:
| 0 | No filtering is done. |
| 1 | Packets are discarded if they come in on any interface except the one that a reply to the source IP would go out on. |
| 2 | Packets are discarded if a reply to the source IP could not be sent out any interface. |
(A more formal description is in ip-sysctl.txt in the kernel documentation. Like all interface sysctls, it can be set separately for each interface, as a default, and for all interfaces.)
I don't understand how this can possibly work. Well, I understand how it works, I just don't understand how it can possibly do any good in most configurations. And I don't understand how a setting of '1' can possibly work at all in multihomed configurations where the multihomed machine is not the sole router for every network it's connected to that is not where its default route points.
First, as far as I can tell a setting of '2' is equivalent to '0' if you have a default route set (the usual case). With a default route set, all source IPs are reachable and so '2' will never discard packets, which is exactly the same as '0'.
For a machine with a single network interface and a default route, all settings are equivalent (for the same reason as above; all source IPs are reachable through your single interface). If you do not have a default route, either '1' or '2' will discard packets that come from networks you do not have routes for.
It is the multihomed case where things explode. Suppose that you have
a multihomed host with two network interfaces, net-1 and net-2, with
IP-1 on net-1 and IP-2 on net-2. With an rp_filter value of 1, a
machine on net-2 cannot talk to this machine's IP-1 address unless the
packets pass through the multihomed machine on the way to net-1, ie the
multihomed machine is the router for the net-2 machine. If the packets
go through another router, they will arrive on the multihomed machine's
net-1 interface but the replies would go out the net-2 interface, so
they fail the check.
Effectively this creates a bad version of an isolated interface, with the packet reachability restrictions but without the multiple split routing tables that make multihomed hosts actually work. As a bonus it hides the restriction deep in the networking sysctls, where you have to be an expert to find it.
(I suppose that there are some advantages to this half-hearted approach, in that it avoids some limits in the policy based routing version of it.)
By the way, I stumbled over this courtesy of Ubuntu 10.04 setting
rp_filter to 1 by default. We have multihomed non-routing machines,
and when we set up an Ubuntu 10.04 test version things promptly
exploded. If I was not already suspicious of network sysctls, we could
have spent quite a lot of time trying to find out just why the machine
was ignoring certain sorts of network traffic.
(As it was I did 'sysctl -a | fgrep net. | sort' on both a 10.04
and an 8.04 machine and then looked for settings that were different.
Ubuntu 10.04 may not be the first version that sets this, but 8.04
definitely didn't.)
PS: a much more useful version of this sysctl would be a 'private' flag on interfaces. If an interface had the private flag set, packets with a source IP address that was routed through that interface would only be accepted on that interface; all other interfaces would discard such packets.
This was filmed on the Big Island of Hawaii, in the saddle between Mauna Kea and Mauna Loa.
Hat tip to Andrew Cooper.
Some teams don’t do demos at the end of their iterations. Many of the teams who don’t do demos also have trouble finishing all the stories they committed to at the beginning of the iteration. They continue, iteration to iteration, not always finishing, not getting to releaseable at the end of the iteration. And, sometimes, these teams don’t do retrospectives because they are not done.
There’s significant value in a demo at the end of the iteration.
If you’re not demoing at the end of an iteration, reconsider. Use the demo to get feedback, record your velocity, and see if you are done enough with this project for now, or if you really need to continue working off this backlog.
Here’s a quick fix for an Ubuntu 10.04 bug that prevents USB Drive from mounting on a PC with Floppy drive (wow, these things still exist?)
The solution is to remove the floppy drive module from linux kernel and you will be able to mount usb drive.
sudo modprobe -r floppy
Should you ever need the module again, you can issue
sudo modprobe floppy
to load the module back (alongside with the annoying bug).
Hope this will help!
p/s: To be fair, my office Dell Optiplex machine (with Pentium 4 HT 2.80GHz, 2005 issue) still has those floppy drives, although I haven’t use them ever since they assigned it to me (back in 2008).
This tutorial will explain how to start and stop NSM services in proper order
In a stand-alone NSM configuration:
The proper startup order is:
1. Start Gui Server
/etc/init.d/guiSvr start
2. Start Device Server
/etc/init.d/devSvr start
3. Start HA Server
/etc/init.d/haSvr start
The proper stop order is:
1. Stop HA Server
/etc/init.d/haSvr stop
2. Stop Device Server
/etc/init.d/devSvr stop
3. Stop Gui Server
/etc/init.d/guiSvr stop
For NSM HA configuration users
If you are using in a high-availability NSM configuration use the following commands
The proper startup order is
Start HA Server
/etc/init.d/haSvr start
The proper stop order is:
Stop HA Server
/etc/init.d/haSvr stop
by A Googler (noreply@blogger.com) at August 31, 2010 11:00 AM
We have already discussed how to install ubuntu 10.04 LAMP server .If you are a new user and not familiar with command prompt you can install GUI for your ubuntu LAMP server using one of the 2 options
(...)
Read the rest of How to install GUI in Ubuntu 10.04 (Lucid Lynx) Server (439 words)
© admin for Ubuntu Geek, 2010. |
Permalink |
6 comments |
Add to
del.icio.us
Post tags: install GUI in Ubuntu 10.04 server, install GUI in Ubuntu lucid server, install webmin in ubuntu 10.04 lts server, install webmin in ubuntu 10.04 server, install webmin in ubuntu lucid server, Server
I spent part of today writing a quick one-off data conversion program. The core of it was a function that filtered items from a list through a number of things in order to sort them into the right category. Once the dust settled on all of the sorting needed, the function had quite a lot of stock arguments, things that didn't vary from call to call in my program. In fact, an unwieldy number of them.
There are at least three vaguely Pythonic options for how to deal with this (plus how I actually did), but what interests me in retrospect is the one answer that I didn't even think about. Namely, global variables.
There are all sorts of reasons to avoid global variables in general, but this was a one-off program and if I'm being honest, that's what all of those stock parameters really were. I was making them local variables in the calling function and then passing them in to the classifying function not so much because it was a good idea but because that's what I do in Python. I just don't use global variables very much even when they'd arguably make sense, and when I do use them I feel irritated.
As best I can tell, what does it is the pesky global keyword. Having
to declare variables global any time I want to rebind them adds just
enough extra friction to using global variables in practice that I would
rather not bother and instead pass lots of things around as parameters.
I generally resort to global variables only when passing the same
information as parameters would add arguments to too many layers of
function calls.
(This is the situation where you have four or five layers of function calls and some of the stuff down at the leaves wants to gather some expensive piece of information only once. The nominally logical thing to do is to call the 'gather information' function once at the start of your program and then pass the parameter all the way down to the leaves, but that means you have to pass the information object through all of the intermediate layers, where all it does is clutter up parameter lists. Really, you want to put it in a global variable, especially if you have several different clusters of these functions that want different chunks of information; passing the information they need down as parameters doesn't scale.)
Part of the friction is the annoyance of the extra line in any function
that will rebind the global variable. But another part is just having to
think about it at all, partly because I sort of consider global to be
a wart (especially because I know what the bytecode is doing behind
the scenes).
(Global's not really a wart, but that's another entry.)
The three Python options that immediately come to mind are:
Since this was a quick hack, I was lazy and did the poor man's structure: I made a tuple with all of the stock parameters and just passed in the tuple (and then unpacked it in the classifying function). This is less aesthetically pleasing than a structure, but also less code, and it is the obvious next step when one's parameter list spirals out of control and most of it is the same from call to call.
(My eventual code had two arguments that varied from call to call and six that were the same, packed into a tuple. I'm sure that this is a code smell, but it was a quick hack.)
by dmarkle@ashtech.net (Daniel E. Markle) at August 31, 2010 02:05 AM
Yehuda Katz: you basically never, ever want to use a >= dependency in your gems.
Jeremy Kemper: Loosen activesupport dep to float on 3-0-stable or master
My guess is that Yehuda has had a bit of much bad experience with depending on somebody to honor their interfaces. The problem with such an approach is that you essentially stop all forward progress. In this case, 3.1’s Active Record depends on arel and Active Support, and arel also depends on Active Support. Result:
Bundler could not find compatible versions for gem "activesupport":
In Gemfile:
rails depends on
activesupport (~> 3.0.0)
rails depends on
activesupport (3.1.0.beta)
My take: gems should honor their interfaces, and Yehuda’s advice should only be taken when there is evidence that the maintainers do not take this obligation seriously. People should be able to trust that new releases of Active Support will maintain backwards compatibility.
As this change to arel is unreleased, in order to test the scenarios in Agile Web Development with Rails Edition 4 against the upcoming release of Rails, I need to pull in an unreleased version of arel in my testing. I shouldn’t have to do this, and furthermore the fact that I have to means that the comment that is placed by default in generated Gemfiles is currently broken (incomplete).
I know y'all can't live without another update so here it is.
The VerizonSupport twitter account sent me a secret URL to give them my account info and problem description. After filling it twice (separated by 2 days), I got no phone call, no email, no results.
Today I called and was told that the IVR system transfered my phone call to billing because I was entering my phone number (as asked) but since I don't have Verizion phone service it was confused. That is the phone number on my account, and it certainly is able to look up my account after I've entered it, but the person assured me that this was the problem. I should select the option where I enter my account number instead of my phone number and it should work.. promise.
When I got home (where I have the account number) I did as requested and of course the system said it is transferring my account to billing.
So what to do?
Well, I've tried billing and tech support with no luck. I decided to call sales. Stephanie and I had an ok conversation. She said that last month my account was "in treatment" and now it definitely isn't so there should be no outage on Wednesday. I pointed out that the IVR system disagrees, but she said I should "let it go". She also said that if I do have an outage on the first of the month, they can cancel the account and recreate it. I'd have a 20 minute outage. She wrote all of this up in my account notes.
Wednesday I'll be "oncall" for work from 4pm to midnight. If there is an outage in the morning, I'll be spending all day getting it fixed so that I can have connectivity for my oncall shift.
I've spent more than 10 hours on the phone with Verizon at this point.

or
buttons at the top of the inbox to correctly mark a conversation as important or not important. (You can even set up filters to always mark certain things important or unimportant, or rearrange and customize the three inbox sections.)by A Googler (noreply@blogger.com) at August 30, 2010 09:55 PM
<IfModule mod_mime.c>
AddHandler application/x-httpd-php .php
AddHandler application/x-httpd-php-source .phps
</IfModule>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>
by ilia@ilia.ws (Ilia Alshanetsky) at August 30, 2010 06:52 PM
You should all know this comic strip:
but have you ever wondered, what would happen if you hadnt setup sudo properly ?
Click on images !
by ebalaskas@ebalaskas.gr (Evaggelos Balaskas) at August 30, 2010 06:49 PM

by A Googler (noreply@blogger.com) at August 30, 2010 04:21 PM
This is apparently the “time to schedule your conference trips” part of the year, because there is news on the SysAdmin conference front.

First, and most pressing, the LISA10 conference schedule has been released! I’ve got to say, I’m digging the theme of the website, too. More important, though, is the content. Interestingly, all sessions and tutorials are available in half-day increments this year. This means that you can attend the first half of one session then migrate to another session after lunch. I’ve got mixed feelings about this, but I’m interested in how it will pan out. More flexibility is nice, though, and sometimes the first half of a session is really review (though there are a lot of arguments against that, too).
As always, there are discounts available for certain groups, and you do get a lower admission price if you’re a member of LOPSA, USENIX, or SAGE.
Check out the registration page for the fees. There’s an early-bird special going on until October 18th, so make sure you register soon. The return on investment for this conference is amazing.
I’m going to be there as a conference blogger, along with Matthew Sacks, Ben Cotton, and Marius Ducea. We’ll be publishing entries on the USENIX blog (which I’ll be linking to from here as well, of course).
Come to LISA and have a great time. And if you do decide to come, find me and say hello. I always love meeting readers.
Shifting gears a little bit, I’m sure you remember the PICC conference that LOPSA-NJ hosted. Well, we had a blast, and last year’s conference chair, William Bilancio, did an amazing job. It’s a bit much to do that twice in a row, though, so he was looking for someone to take the responsibility for this year’s conference, and after running it through my head a while, I decided that I’d take the job if he thought I’d do alright. Here’s his email announcing it:
It is with a great sigh of relief that Matt Simmons has decided to be
the Program Chair for PICC ‘11.Last year Matt was the head of the marketing team and did a great job
at getting the word out about the conference and was a key person in
making last years conference a success.Tom and I feel that he will do a great job as the Program Chair and
will make PICC ‘11 a great conference.In other news I will be getting in contact with the hotel and get the
date locked in, in the next few weeks and then we can start really
working on the conference.Please start thinking about sponsor ideas as well as any new people
you think will be able to help make PICC ‘11 another great conference.Again thank you Matt for taking PICC ‘11 Program Chair job and good luck.
William
I want to thank William and everyone who was involved with last year’s conference. Everyone I’ve talked to had a great time and has been looking forward to this coming year. I’m going to work hard to try to improve on William’s example, and really grow the community of system administrators in New Jersey and the rest of the northeast. I’m going to need help, though, so if you helped out last year, I’ll be calling on you now. If you weren’t involved last year, now is a great time. Drop me an email or comment on this story to let me know that you’re interested in volunteering. We can definitely use the help.
In addition, I was talking to Lee Damon, who let me know about a SysAdmin conference called “Cascadia IT Conference” (aka “CasITConf”), and it’s happening in the Pacific Northwest. It’s being put on by SASAG, the Seattle-Area System Administrators’ Guild.
So there you go. Three sysadmin conferences in one post. It’s going to be a busy year for everyone, so get involved and lend a hand to someone in your area!
What surprised me when I attended Ohio Linux Fest was that it is a national conference; it draws people from all over.
One of the little-known gems at OLF is their training sessions called "OLF University." It is excellent training that is at a very nice price. Considering the high-caliber trainers that they've recruited, I think (and I've told OLFU coordinators) that training like this should be priced 2x or 3x higher. The productivity boost from just one class will pay for itself in a month or two. I recommend people sign up before the organizers start listening to me.
Beth Lynn Eicher wrote a great article about OLF and the training. Check it out.
If you aren't going to OLF University, but are going to OLF, be sure to stop by the LOPSA table!
by A Googler (noreply@blogger.com) at August 30, 2010 01:40 PM
implement Comparable in the classes that need sorting. And in most cases the actual comparison is trivial - we're just comparing the name, which is just a String. (For patches it's a 2-stage numerical comparison of the patch id and revision, but still simple.)Set with TreeSet and everything sorts. Simple, obvious, and something I should have done much earlier.Kstat class implements Comparable, which immediately gets the output from some of the JKstat demos sorted. (And sorted correctly - there is a specific Comparator in use here, to sort names like sd0 which contain numbers correctly: the numerical part is sorted separately and as a number, so that sd2 comes before sd10.)by Peter Tribble (noreply@blogger.com) at August 30, 2010 11:30 AM
People have grown accustomed to being tracked online and shown ads for categories of products they have shown interest in, be it tennis or bank loans.The article later goes on to contrast this technique of following you around with products you looked at before with behavioral targeting like Google is doing, which learns your broader category interests and shows ads from those categories.
Increasingly, however, the ads tailored to them are for specific products that they have perused online. While the technique, which the ad industry calls personalized retargeting or remarketing, is not new, it is becoming more pervasive as companies like Google and Microsoft have entered the field. And retargeting has reached a level of precision that is leaving consumers with the palpable feeling that they are being watched as they roam the virtual aisles of online stores.
In remarketing, when a person visits an e-commerce site and looks at say, an Etienne Aigner Athena satchel on eBags.com, a cookie is placed into that person’s browser, linking it with the handbag. When that person, or someone using the same computer, visits another site, the advertising system creates an ad for that very purse.
by Greg Linden (glinden@gmail.com) at August 30, 2010 09:28 AM

by A Googler (noreply@blogger.com) at August 30, 2010 09:09 AM
For the past year i am looking for http 404 (not found) on my blog. I have only two sites, a blog & a wiki, so without any other web application, i can monitor for web vulnerabilities (that hackers are looking for) by just looking for 404 (Not Found) http errors.
I am using mod_rewrite for URL manipulation. My custom .htaccess redirects every Not Found (404) page to my index.php.
You can use it too, but you must be extremely careful.
You MUST NOT have any valid URLs with one the files below.
If you have, just remove the specific line from the .htaccess file.
An example:
Url: http://ebalaskas.gr/README doesnt exist,
so if you click on it, you should redirect to my home page.
RewriteEngine on
RewriteRule xmlrpc.php$ index.php
RewriteRule login_page.php$ index.php
RewriteRule setup.php$ index.php
RewriteRule config.inc.php$ index.php
RewriteRule multithumb.php$ index.php
RewriteRule orderSuccess.inc.php$ index.php
RewriteRule send_reminders.php$ index.php
RewriteRule config.php$ index.php
RewriteRule ask_password.php$ index.php
RewriteRule msgimport$ index.php
RewriteRule README$ index.php
RewriteRule fastenv$ index.php
RewriteRule main.php$ index.php
RewriteRule sql.php$ index.php
RewriteRule error.php$ index.php
RewriteRule errors.php$ index.php
RewriteRule sitemap.xml$ index.php
RewriteRule show_image_in_imgtag.php$ index.php
RewriteRule phpmyadmin$ index.php
RewriteRule blackhat.dll$ index.php
RewriteRule general.js$ index.php
RewriteRule get_reminders.php$ index.php
RewriteRule install.txt$ index.php
RewriteRule get_events.php$ index.php
RewriteRule auth.inc.php$ index.php
RewriteRule delete.php$ index.php
RewriteRule adxmlrpc$ index.php
RewriteRule class.dashboard_lms.php$ index.php
RewriteRule home$ index.php
RewriteRule default.php$ index.php
RewriteRule index.inc.php$ index.php
RewriteRule logging.php$ index.php
RewriteRule public.php$ index.php
RewriteRule index.inc.php$ index.php
RewriteRule add-cats.php$ index.php
RewriteRule nosuichfile.php$ index.php
RewriteRule judge.php$ index.php
RewriteRule apple-touch-icon.png$ index.php
RewriteRule apple-touch-icon-precomposed.png$ index.php
RewriteRule host-meta$ index.php
by ebalaskas@ebalaskas.gr (Evaggelos Balaskas) at August 30, 2010 05:22 AM
by Nikesh Jauhari (njauhari@cybage.com) at August 30, 2010 04:27 AM
Here is an irritation that gets me every so often: the Bourne shell has
no wildcard match operator that you can use in if checks and the like.
You can do wildcard matches, but only in case statements.
(Bash has the [[ =~ ]] operator, but it uses regular expressions
instead of shell wildcards. I know, I pick nits, but shell wildcards are
often simpler and they match what you use in other sh contexts.)
This comes up surprisingly often, at least in the sort of shell scripts
that I write. It's not insurmountable but it is inconvenient and it
can make my shell scripts read less clearly. Later shells, such as
Plan 9's rc, get this right and have built in wildcard matching and
non-matching operators, and I have wound up using them relatively
frequently.
(Yes, there is a workaround if you are doing this often enough.)
Of course, like a lot of things about the Bourne shell there are
historical and philosophical reasons for this. The biggest one is
a programming language design issue: you really want your wildcard
matching operator to have shell support so that you do not have to keep
quoting the wildcards themselves. Philosophically, the only good place
to put this in the Bourne shell is as part of explicit shell syntax (ie,
in a case statement); inventing a magic operator that didn't do shell
wildcard expansion when used as if it was a command would be at least
inconsistent.
(Tom Duff was willing to be this magical when creating rc,
fortunately. It may be inconsistent but it's very convenient.)
The difficulty is compounded because the natural place to put such an
operator is in test, and test started out as an external program,
not something built in to the shell. If not expanding wildcards in
something that looks like a command is odd in the Bourne shell, doing so
for some arguments to an external program is outright serious magic.
PS: expr is not an adequate substitute for various reasons.
case conditions will do variable expansion and then, if the variable
expands to a wildcard, do wildcard matching on the result. So the simple
way around this is to define a function:
match() {
case "$1" in
$2) return 0;;
esac
return 1
}
Then you can say 'if match $var ".c"' and the like. If you have to
you can even write vaguely crazy things like 'if match $var "*.c" &&
[ -f $var ];'.
I’ve been asking to have ‘The Puppetmaster’ as my job title for quite a while now – ever since I first discovered the joys of configuration management with Puppet some 18 months ago. We do a reasonable number of solutions that involve Puppet, with more coming up soon. I’m not exactly a Puppet guru – not yet, at any rate – but I am the person who has the most familiarity with it and the most experience with it here.
My new business cards arrived today and about half of them look like this. I’m going to have to dedicate myself to becoming a true master of Puppet to be worthy of these!
That and buy my manager a beer or five.
Ubuntu Tweak is an application to config Ubuntu easier for everyone.It provides many useful desktop and system options that the default desktop environment doesn’t provide.With its help, you will enjoy with the experience of Ubuntu!
(...)
Read the rest of Ubuntu Tweak 0.5.6 final released with Desktop Recovery and installation instructions included (242 words)
© admin for Ubuntu Geek, 2010. |
Permalink |
No comment |
Add to
del.icio.us
Post tags: desktop, install Ubuntu Tweak 0.5.6 in ubuntu, Ubuntu Tweak 0.5.6
In around 15 minutes, the time it takes to install Ubuntu Server Edition, you can have a LAMP (Linux, Apache, MySQL and PHP) server up and ready to go. This feature, exclusive to Ubuntu Server Edition, is available at the time of installation.The LAMP option means you don’t have to install and integrate each of the four separate LAMP components, a process which can take hours and requires someone who is skilled in the installation and configuration of the individual applications. Instead, you get increased security, reduced time-to-install, and reduced risk of misconfiguration, all of which results in a lower cost of ownership.New pre-configured installation options have been added to the postgreSQL Database options join existing Mail Server, Open SSH Server,Samba File Server, Print Server, Tomcat Java Server,Virtual Machine Host,Manual Package selection,LAMP and DNS options for pre-configured installations, easing the deployment of common server configurations.
(...)
Read the rest of Step By Step Ubuntu 10.04 (Lucid Lynx) LAMP Server Setup (684 words)
© admin for Ubuntu Geek, 2010. |
Permalink |
5 comments |
Add to
del.icio.us
Post tags: install Ubuntu 10.04 lamp server setup, Server, ubuntu lucid lamp server, ubuntu lucid server tutorial
Powered by Twitter Tools
So how secure is your password? You can test it from this website : http://howsecureismypassword.net/
Warning: Do not use your real password for testing on this website, it is not secured!

With TickVue you can track the stock market in nearly real-time. It queries Yahoo Finance periodically, updates the stock values you are interested in, and calculates your portfolio value and daily gain.
(...)
Read the rest of TickVue - Track the stock market in nearly real-time (98 words)
© admin for Ubuntu Geek, 2010. |
Permalink |
4 comments |
Add to
del.icio.us
Post tags: desktop, install Tickvue ubuntu, Track the stock market in nearly real-time
GE continues to hire security professionals to help reduce IT risk at our company. I should be posting additional jobs for my team (GE-CIRT) next month, but right now my boss (our CISO) asked me to help find a Business Response Team (BRT) Leader for our Corporate entity. Visit www.ge.com/careers and search for job 1251700 to find the role. From the summary:by Richard Bejtlich (noreply@blogger.com) at August 29, 2010 10:48 AM
John Fowler (Oracle Executive Vice President for Server and Storage Systems) held an on-line webcast on August 10 on the strategy for hardware servers based on SPARC and x86, and the formalization of the upcoming release of Solaris 11 in 2011.
This post is only aimed at summarize the main points, the complete slides of the presentation are available at the Oracle web site.
The points are:
Solaris 11 will be based on the now close OpenSolaris distribution, which will include:
The ZFS uberblock is the root of the tree of ZFS objects in a pool (technically it is more a pointer to the root, but it's how ZFS finds everything). Because it is the root, it has to be updated on every ZFS update. Also, because it is so important ZFS keeps quite a lot of copies of it (and has a clever 'copy on write' scheme for it, so that it is not quite updated in place).
Given the impact of writes on mirrors, it becomes interesting to ask how many copies of the uberblock ZFS actually writes out. First off, the raw numbers: there are four copies of the uberblock on every physical disk in the pool, stored as part of the four ZFS label areas (two at the start of the disk and two at the end).
At the top level, there are two cases for uberblock updates. If the vdev or pool configuration is considered 'dirty', the uberblock is synced on all vdevs. If the pool configuration is unchanged, the uberblock is synced to at most three vdevs, chosen by picking a random start point in the list of top level vdevs. If your pool only has three (or less) top level vdevs, the two cases are equivalent.
(My powers of reading the OpenSolaris source code are not quite up to determining exactly what makes the pool configuration dirty. Certainly adding or removing devices does it, and I think that devices changing their state does as well. There are likely to be other things as well.)
When ZFS syncs the uberblock to a top level vdev, it writes copies of the new uberblock to all physical devices in the vdev (well, all currently live devices); to all mirrors in a mirrored vdev, and to all disks in a raidzN vdev. Syncing the uberblock to a physical device involves four separate writes. But wait, we're not done. To actually activate the new uberblock, the ZFS labels themselves must be updated, which is done separately from writing the uberblocks. This takes another four writes for each physical disk that is having its uberblock(s) updated.
So the simple answer is that if your pool has three or less top level vdevs, you will do eight writes per physical device every time a transaction group commits in order to write the uberblocks out. Fortunately transaction groups don't commit very often.
The best documentation for the logic of the uberblock update sequence
is in vdev_config_sync() in uts/common/fs/zfs/vdev_label.c.
The short version is that it goes:
(ZFS labels include what transaction group (aka 'txg') that they are valid for. They do not explicitly point to an uberblock. Uberblocks contain a transaction group number and a pointer to that txg's metaobject set (MOS), which is the real root of the ZFS pool.)
This tutorial will explain how to install the Wacom Bamboo driver in Ubuntu 10.04
(...)
Read the rest of Install the Wacom Bamboo driver in Ubuntu 10.04 (Lucid Lynx) using PPAs (30 words)
© admin for Ubuntu Geek, 2010. |
Permalink |
No comment |
Add to
del.icio.us
Post tags: desktop, Install the Wacom Bamboo driver in Ubuntu 10.04
You can now easily configure a wacom tablet on linux!
(...)
Read the rest of Wacom Control Panel - Easily configure wacom tablet (140 words)
© admin for Ubuntu Geek, 2010. |
Permalink |
One comment |
Add to
del.icio.us
Post tags: desktop, install Wacom Control Panel ubuntu 10.04, Wacom Control Panel
Torrent Search is a torrent searching application developed in Python, and using GTK+ for its graphical interface. Torrent Search is available under Linux and Windows.
(...)
Read the rest of How to install Torrent Search 0.9.0 in ubuntu (69 words)
© admin for Ubuntu Geek, 2010. |
Permalink |
No comment |
Add to
del.icio.us
Post tags: desktop, install Torrent Search 0.9.0 in ubuntu
VLC media player is a media player, streamer, and encoder for Unix, Windows, Mac OS X, BeOS, QNX, and PocketPC. It can play from many inputs like files, network streams, capture device, desktops, or DVD, SVCD, VCD, and audio CD. It can play most audio and video codecs (MPEG 1/2/4, H264, VC-1, DivX, WMV, Vorbis, AC3, AAC, etc.), but can also convert to different formats and/or send streams through the network.
(...)
Read the rest of How to install VLC 1.1.4 in ubuntu 10.04 (107 words)
© admin for Ubuntu Geek, 2010. |
Permalink |
No comment |
Add to
del.icio.us
Post tags: desktop, install VLC 1.1.4 in ubuntu 10.04, install VLC 1.1.4 in ubuntu lucid
Debian has already turns 17 ! For those who wants to celebrate it (especially LoCo), you can follow the methodology as outlined in the DebianDay2010 Wiki page.

I still didn’t see Malaysia among the LoCos that organized Debian Day 2010, perhaps we can hold a meeting on that?
Randy Pausch, you may recall, became infamous because of his dying "Last Lecture". Just tonight I happened to come across a talk he did on Time Management, "because time is all we have." As he particularly pointed out, "you may have less of it than you think." Time management tips from a dying man, who better to speak on the subject?
Whats shocking to me is that the talk is not philosophical, rather its 1 hour 16 minutes of non-stop practical pointers, ideas and applications.
Randy Pausch Lecture: Time Management
I think my chief takeaway was that time is, and should be treated as, a precious commodity. If you are spending time, it should be on something worthy of that sacrifice. What this also implies is that if someone wants my time, I should ensure they are using my time wisely. Time is not an infinite resource.
This point is particularly key to me because I am a wanna-be perfectionist. I will drag on and on and on for days, weeks, months trying to think something through before truly devoting myself to it. For code this means that I want to be able to visualize all the logic before I start writting. Now, this is an entirely flawed concept, because any reasonably complex program is going to have more lines of code in it that you can keep in your head. Therefore, when I try to visualize everything I'm actually just moving from visualizing one small part to another, and loosing something during the mental context switch. I should instead just start writing the program and then deciding ahead of time to improve it later. This is essentially my version of "a working program today is better than a perfect program in a year".
I'm reminded of a phrase I cooked up with Tamarah (my wife, the lovely women above) several years ago. When discussing something emotional and complex, you can spend a lot of time thinking over and re-thinking the right way in which to phrase it to provide clarity. But this is exceptionally hard to do and very time consuming. Therefore, when we see eachother in this "I'm not sure how to put it..." pause, we will say: "Badly... and work from there." So we work in drafts, making it clear that the first draft is probably horrifically inaccurate and wrong, but we'll work towards clarity together and in doing so get a clearer picture of the topic than we'd ever get from the perfect one line explanation.
For sysadmins I find this really hard. It seems all we sysadmins are both perfections and ADHD at the same time. I wish I were exaggerating, but most of us really actually are clinically hyperactive... its a job qualification. The problem is that while we can keep a lot of plates spinning, we're very bad (on the whole) of providing timely delivery with high quality, unless an external force demands it. This is why sysadmins have to have managers. Geeks without overlords will do amazing things and deliver very few of them. (The description of a good overlord is an excessive left for the reader.)
I digress. I personally recommend watching this video repeatedly, say every 3 months. I re-watch David Allen's GTD talk at Google every couple months already. I always find something new in it and it's a great reminder to get back on the wagon. More importantly, personal management is dry and tedious, so hearing enthusiastic guys like David Allen or even Tony Robbins (say what you will, his TED talk was fantastic) can be a real pick-me-up.
This is one of those distinctions that is both obvious and obscure.
SMTP proxies and SMTP relays both sit between two machines; call them the outside client and the inside mail server, as in the case of our external mail gateway.
A SMTP proxy is synchronous. When it gets a SMTP connection from the outside client, it establishes an SMTP conversation with the inside mail server. When it receives a SMTP command from the outside client, it applies its own processing (if any), sends the command on to the inside mail server, and only gives a positive reply to the outside client if the inside mail server also accepts it. Of course a filtering SMTP proxy can reject a SMTP command without even bothering the inside mail server if it wants, and it can filter and modify the commands it sends onward (and the replies it gets back).
('Command' here is broadly construed; for example, all of the message body might be seen as a single command.)
A SMTP relay is asynchronous. Even if it immediately starts a SMTP conversation with the inside mail server, it won't delay replies to the outside client's SMTP commands until it has answers from the inside mail server. Most SMTP relays don't even start talking to the inside mail server until they've had a full conversation with the outside client.
SMTP proxies are in many ways simpler than SMTP relays, because they never becomes responsible for messages themselves; responsibility passes directly from the outside client to the inside mail server, because the SMTP proxy never tells the outside client that the mail has been accepted until the inside mail server has also accepted it. A SMTP proxy does not have to reliably save messages to disk in case they can't be immediately delivered or the system crashes, it does not have to maintain and retry queues of pending messages, and it has the important property (from an antispam perspective) that it never has to generate and send a bounce message and thus it never has to worry about the accept-then-bounce issue.
Because a SMTP relay actively takes responsibility for messages, it does have to deal with all of those issues. (It may chose to break the rules, in which case mail can silently vanish.)
Essentially all MTAs are SMTP relays, because that's their purpose; they accept and transport and store email for people. Very few are capable of acting as SMTP proxies, because this is a rare case for them.
Conversely, anti-spam filters that you talk to using SMTP are generally SMTP proxies, because they don't want to deal with all of the extra complexity of being an SMTP relay (especially the the accept-then-bounce issue).
Here’s a quick OS X tip – but only works if you’re using OS X 10.6 (Snow Leopard). You’ve always been able to drag items from the Trash to your Desktop (or any other folder) if you decide not to delete them. Now you can move some (or all) files from your Trash back to their original location on your Mac.
To do so, select the items you want to move back to their original locations from the Trash, then right-click (or ctrl-click if you have a single-button mouse) and select Put Back.

Now all the files you selected will be relocated back to their previous locations. No need to manually move files around one by one anymore
---
Related Articles at Simple Help:
Psensor is a graphical hardware temperature monitor for Linux.
(...)
Read the rest of Psensor - A Graphical Temperature Monitor (223 words)
© admin for Ubuntu Geek, 2010. |
Permalink |
7 comments |
Add to
del.icio.us
Post tags: desktop, install Psensor ubuntu, Psensor, Psensor ubuntu