Login
Search
Links
Tags
apple art avr bangkok bike canon centennial park dav3 drive email fail feedback food funny howto hua hin humour inspirational international iphone iphoto kick boxing language license lyrics malaysia map micro muay thai music osx photo photos phuket rant review ride shopping singapore squash sydney test thailand tip travel ubuntu video walk wordpress woy woy youtubeArchives
- January 2012 (4)
- October 2011 (3)
- September 2011 (9)
- August 2011 (11)
- July 2011 (2)
- June 2011 (7)
- January 2011 (1)
- September 2010 (4)
- August 2010 (4)
- July 2010 (10)
- May 2010 (1)
- April 2010 (1)
- October 2009 (1)
- September 2009 (2)
- July 2009 (2)
- June 2009 (4)
- March 2009 (1)
- January 2009 (1)
- November 2008 (2)
- October 2008 (1)
- September 2008 (4)
- August 2008 (1)
- April 2008 (8)
- March 2008 (8)
- February 2008 (11)
- January 2008 (16)
- December 2007 (1)
- May 2007 (2)
- March 2007 (1)
- December 2004 (1)
Recent Activity
Tag Archives: howto
accented characters in osx
I had a need to be able to print accented characters on certain letters, mainly being vowels, but potentially others as well. Most character sets have a limited set of accents, and most of them only apply to certain letters, and others don’t have the accents I want.
For example I want to print 5 main types of accents, being:
à á ā â ǎ
another example
x̀ x́ x̄ x̂ x̌
I’m using a macbook pro and pages in OSX, although this applies to any application, this is how I did it:
Open up System Preferences >> Personal >> Language and Text >> Input Sources
Once there, add a new keyboard, in this case I added “US Extended”.
Now to add some accents, I need to type the accent first, and then the character, but this only works for some letters (I suppose those that can be normally accented), but as you can see above, I have accented the letter ‘x’. So achieve this you must type the letter first and then [option]+[shift]+[code]. Not too hard, the five I need are:
- a bar over the letter - ā - [option]+a then type the letter
- a 'v' over the letter - ǎ - [option]+v then the letter
- a '^' over the letter - â - [option]+^ then the letter
- a '`' over the letter - à - [option]+` then the letter, and finally
- a ' ́' over the letter - á - [option]+e then the letter
^ <-- is [shift]+6
` <-- is the back tick, or key with the tilde (~) on it
́ <-- is the quote mark key with single and double quotes [',"]
It was that simple :-)
note: I am learning the thai language and it is a very tonal language and inflections on letters are necessary to determine the tone of the word, hence I need this ability. These 5 marks above fit the bill perfectly, although the bar one really isn't needed, but at least now I have the option of including it, or not including it.
Originally found here: http://tlt.its.psu.edu/suggestions/...
Reset Error Code 6502 – Cannon MP620
I recently installed a continuous inking system into my Canon MP620 Multi-Purpose printer. It went relatively painlessly, except when restarting. The ink tubes got caught under the housing and jammed the print head against the right hand side of the printer, causing a 6502 Error Code.
I fixed the jam, and restarted the printer, everything seemed to be normal. The printer went through a startup routine, cleaning heads and what-not, but when it finished the error persisted.
I restarted the machine, and still, the error remained. After a bit of googling, I found the solution:
How to RESET the Error code “6502”
1 – Unplug your printer, pausing for effect.
2 – Plug the printer back in and then:
2a – Press AND HOLD the Power button
2b – Press the Stop button twice
2c – Release the Power button
2d – Press the Stop button a further four times (see notes)
notes:
- someone reported you may hear beeping, I did not
- I think the four button press of the stop AFTER releasing the Power button may not be required since once the powerbutton was released, the system immediately went into a startup routine, it didn’t appear to wait for the stop buttons. But who knows, it was there, I did it, and it worked
2 ways to trim youtube videos
I found a page that detailed a way to trim a youtube video. Which incidentally reminded me about tubechop. I read over the page that showed me another way to do it. I liked it because it uses the actual youtube video and inserts start and end tags (the end tag didn’t seem to work for me), where-as tubechop actually takes a copy of the youtube video and hosts it on it’s own servers. And frankly, I know nothing about these people and how long they intend to be around. So if you use it, then one day it just might not be there anymore. I have included both methods for you here anyway.
1) watch the instruction video directly from tubechop:
2) And here is the URL hack for the youtube link (I have highlighted the relevant section):
untrimmed
<object width=”425″ height=”344″><param name=”movie” value=”http://www.youtube.com/v/iGpIT2bVZDw&hl=en&fs=1&rel=0″></param><param name=”allowFullScreen” value=”true”></param><param name=”allowscriptaccess” value=”always”></param><embed src=”http://www.youtube.com/v/iGpIT2bVZDw&hl=en&fs=1&rel=0″ type=”application/x-shockwave-flash” allowscriptaccess=”always” allowfullscreen=”true” width=”425″ height=”344″></embed></object>
trimmed
<object width=”425″ height=”344″><param name=”movie” value=”http://www.youtube.com/v/iGpIT2bVZDw&start=204&end=228&hl=en&fs=1&rel=0″></param><param name=”allowFullScreen” value=”true”></param><param name=”allowscriptaccess” value=”always”></param><embed src=”http://www.youtube.com/v/iGpIT2bVZDw&start=204&end=228&hl=en&fs=1&rel=0″ type=”application/x-shockwave-flash” allowscriptaccess=”always” allowfullscreen=”true” width=”425″ height=”344″></embed></object>
This is the above example, note the big gap from the original start position to the new start position:
(featured on http://q-ontech.blogspot.com/2008/12/how-to-trim-youtube-video.html )
The same video edited in tubechop:
regex expressions for validating email addresses
Whilst doing my usual mindless surfing of the internet, I found this page webmonkey relating to the validation of email addresses. In short, this is what they had to say:
1. Dirt-simple approach
Here’s a regex that only requires a very basic xxxx@yyyy.zzz:
.+\@.+\..+
Well, they didn’t put it on their page, so I went and found it and put it here for posperity. It’s WAY COOL! :-P
1. Dirt-simple approach
Here’s a regex that only requires a very basic xxxx@yyyy.zzz:
.+\@.+\..+
Upside: Dirt simple.
Downside: Even invalid email addresses like xxxx@yyyy.zzz, or even a@b.c, make it through.
2. Slightly more strict (but still simple) approach
Regular-Expressions.Info provides a basic email validation regex that tries to be a little smarter:
[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}
Upside: Only allows email address-friendly characters, restricts domain extension to only two to four characters.
Downside: It still allows many invalid email addresses, and misses some longer domain extensions (.museum, for example).
3. Specify all the domain extensions approach
Reddit user teye points to his regex, which only allows domain extensions that actually exist:
([a-z0-9][-a-z0-9_\+\.]*[a-z0-9])@([a-z0-9][-a-z0-9\.]*[a-z0-9]\.(arpa|root|aero|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|
name|net|org|pro|tel|travel|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|
ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg
|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|
eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|
hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kr|
kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mk|ml|mm|mn|mo|mp|
mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|
pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|
sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|
tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|
zw)|([0-9]{1,3}\.{3}[0-9]{1,3}))
Upside: It doesn’t allow xxxx@yyyy.zzz!
Downside: Upkeep could be tough with this one. You’d have to update any time new domain extensions are announced. In fact, you already would need to add the .me extension.
4. Way complicated approach
A Perl module has a long regular expression based on the standard description of an email address. It’s so long (nearly 6,500 characters!) that I won’t include it here.
Upside: It’s complete.
Downside: It’s way complicated.
Well, they didn’t put it on their page, so I went and found it and put it here for posperity. It’s WAY COOL! :-P
(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:
\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(
?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[
\t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\0
31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\
](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+
(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:
(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)
?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\
r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[
\t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)
?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t]
)*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*
)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)
*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+
|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r
\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:
\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t
]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031
]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](
?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?
:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?
:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?
:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?
[ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|
\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>
@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"
(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t]
)*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?
:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[
\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-
\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(
?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;
:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([
^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\"
.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\
]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\
[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\
r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]
|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \0
00-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\
.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,
;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?
:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*
(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[
^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]
]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)(?:,\s*(
?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(
?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[
\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t
])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t
])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?
:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|
\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:
[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\
]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)
?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["
()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)
?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>
@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[
\t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,
;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t]
)*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?
(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:
\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[
"()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])
*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])
+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\
.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(
?:\r\n)?[ \t])*))*)?;\s*
Ubuntu – changing DHCP to Static
Before jumping in and making the changes, do
ifconfig -a
and note down any particular settings which you may need (if you don’t already know them)
Then edit /etc/network/interfaces
change:
iface eth0 inet dhcp
to:
iface eth0 inet static
address 10.0.0.101
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
gateway 10.0.0.100
May also need to add nameservers to /etc/resolv.conf, eg:
nameserver 10.0.0.100
nameserver 192.122.108.211
Obviously change to suit your network settings.
Once done, don’t forget to restart the networking interface
sudo /etc/init.d/networking restart
Synergy in OpenSolaris and Ubuntu
I have been tinkering with linux distros for a while now, my favourite (generally) would have to be Ubuntu. It is one of the few that installs quickly and simply on most of my systems here.
A package I also use is Synergy. This is one of the best pieces of software ever developed for multi-desktop computing. Much better than VNC and Remote Desktop, although they each serve their purpose and offer different functionality.
To learn more about Synergy, visit http://synergy2.sourceforge.net/
To learn how to install it in OpenSolaris (I am using preview 2) it is simply a matter of:
wget ftp://ftp.sunfreeware.com/pub/freeware/intel/10/libgcc-3.4.6-sol10-x86-l...
gunzip libgcc-3.4.6-sol10-x86-local.gz
pkgadd -G -d libgcc-3.4.6-sol10-x86-local
wget ftp://ftp.sunfreeware.com/pub/freeware/intel/10/synergy-1.3.1-sol10-x86-...
gunzip synergy-1.3.1-sol10-x86-local.gz
pkgadd -G -d synergy-1.3.1-sol10-x86-local
You have to make sure that /usr/local/bin is in your path.
tip: I use/prefer BASH, to edit the user path for BASH in OpenSolaris you HAVE to edit the file .bashrc located in your home directory. Editing it anywhere else will have no effect since (in Preview 2) this file explicitly defines the path WITHOUT inheriting the original path. You have been warned (it took me a few hours to find this!)
for ubuntu there is an excellent walkthru here: https://help.ubuntu.com/community/SynergyHowto
note: for the ubuntu install, make sure you have added the universe repositories http://dav3.net/ubuntu/repositories
Adding Ubuntu Repositories
In a nutshell
edit the file /etc/apt/sources.list
You can edit it from the command line ( http://help.ubuntu.com/community/Repositories/CommandLine ) or use the GUI from the Ubuntu desktop: System –> Administration –> Software Properties and add to the repositories by adding a channel (the add button). You can also add new repositories there as well.
For a very well documented HOWTO: visit http://help.ubuntu.com/community/Repositories/Ubuntu
SSH Server in Ubuntu
To securely administer your Ubuntu Server remotely, you need to install SSH server. SSH provides you with a secure connection to your server and allows you to run commands all as if you were logged in at the terminal itself.
To install SSH server in Ubuntu
$ sudo apt-get install openssh-server
All going well, your install is complete. your RSA and DSA keys have been created and you have a default config file.
Connecting to the server
To connect to the server from other machines use ssh (on *nix computers or putty on windows systems). You log into the machine by typing:
$ ssh 192.168.0.4 or c:\>putty 192.168.0.4
(this is an example IP address, use whatever IP address is assigned to the server)
Configuring SSH
There is a default config already with the SSH Server, you can chop and change it to suit your needs. For security you may want to disable root logins and X11Forwarding. If you don’t know what they are, then you probably do want to disable them anyway. The configuration file you want to edit is /etc/ssh/sshd_config
Disable remorte root logins
Search for and edit the following line in the /etc/ssh/sshd_config file:
PermitRootLogin yes
and change it to:
PermitRootLogin no
Disable X11 forwarding
Same file as above, search for and change the following line:
X11Forwarding yes
to:
X11Forwarding no
Restart the SSH Server
After you have made these changes, you will need to restart the SSH server. At the command prompt type:
$ sudo /etc/init.d/ssh restart
More on X11 Forwarding
If you want to use X11 Forwarding option so that you can connect your remote machine desktop using Xterm if you want to connect the X11 session you need to use the following command
ssh -X serveripaddress
Copy Files Securely using SCP
Another common need is to be able to copy files between servers you are administering. While you could set up FTP on all of the servers, this is a less-than-ideal and potentially insecure solution. SSH includes within it the capability to copy files using the scp command. This has the added benefit of copying the files over a secure channel along with taking advantage of any key-based authentication you might have already set up.
To copy a file to a remote machine use the following command
scp /path/to/file user@remotehost:/path/to/destination
If you need to copy from the remote host to the local host, reverse the above command
scp user@remotehost:/path/to/file /path/to/destination
if you need to copy an entire directory full of files to a remote location, use the -r argument
scp -r /path/to/directory/ user@remotehost:/path/to/destination/
If you are transferring logfiles or other highly compressible files, you might benefit from the -C argument. This turns on compression, which, while it will increase the CPU usage during the copy, should also increase the speed in which the file transfers.
Use the -l argument to limit how much bandwidth is used. Follow -l with the bandwidth you want to use in kilobits per second. So, to transfer a file and limit it to 256 Kbps use the following command
scp -l 256 /path/to/file user@remotehost:/path/to/destination
RAR in Ubuntu
IMHO RAR is a dying archive format, except in the torrent and related warez world. Why? I don’t know. But what I do know (now) is how to install RAR for linux under Ubuntu 6.10 (Edgy) and this is it:
Download rarlinux, the version I got was 3.6.0 and I found it here:
http://www.rarlab.com/rar/rarlinux-3.6.0.tar.gz
(you can use ‘wget’ from a linux console to grab it)
ungzip the file:
tar -zxvf rarlinux-3.6.0.tar.gz
Now for some reason when i did this the first time, it didn’t fully unzip and I had to process the tar file again, but on another machine both steps were done with the above command. If you have a rar folder now, then skip the next command, but if you have a new file with the name rarlinux-3.6.0.tar (ie, no .gz ext) then untar it with the following:
tar -xvf rarlinux-3.6.0.tar
then change into the rar directory created, and you only need to copy the ‘rar’ file into your “/user/bin” directory
cd rar
cp rar /user/bin/.
use “rar” at the command line without any options to get an overview of the switches and commands associated with it
Years ago I hand-coded my first website, and sometimes I still do the odd bit of dabbling like that. But these days there are so many great content management systems (CMS) out there, that really, why bother. I use to use Druple, and I have nothing against that, but a while back now I migrated to WordPress…. All was fine until…