Showing posts with label draft. Show all posts
Showing posts with label draft. Show all posts

Diable google picasa sync from android edit

http://www.google.com/support/forum/p/android/thread?tid=69b6774bbe77e236&hl=en

You can go to settings> applications and then on gallery clear data. This removes the picasa photos . Then don't sync picasa again. Worked perfectly for me.

Go to.
Settings> applications> manage applications> all> gallery> clear data

There is no option to un-check!

weechat nick alignment edit

weechat.look.prefix_align

description: prefix alignment (none, left, right (default))

type: integer

values: none, left, right (default value: right)

weechat.look.prefix_align_max

description: max size for prefix (0 = no max size)

type: integer

values: 0 .. 128 (default value: 0)

edit

http://todayis.tistory.com/276
우분투나 데비안에서 고정 ip를 설정하는 방법이다.
데비안의 경우 설치 시 ip를 설정할 수 있지만, 우분투의 경우는 DHCP로 잡히기 때문에.. 필요에 따라 다시 설정을 해 주어야 한다.

먼저 네트워크 인터페이스를 내린다(중지 시킨다).
$ sudo ifdown eth0

네트워크 인터페이스 설정 파일을 자신의 상황에 맞게 수정한다.
$sudo vi /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
network 192.168.0.0
broadcase 192.168.0.255
gateway 192.168.0.1
dns-nameservers 168.126.63.1 168.126.63.2

네임 서버를 수정한다.
$ sudo vi /etc/resolv.conf
nameserver 168.126.63.1
nameserver 168.126.63.2

네트워크 인터페이스를 올린다(다시 동작 시킨다).
$ sudo ifup eth0


ip 를 자동으로 할당받고 싶다면, '/etc/network/interfaces' 에서 iface eth0 inet static 이하의 부분을 iface eth0 inet dhcp 로 수정해 주면 된다.

우분투에서 MAC address 변경 edit

bayron.tistory.com/entry/우분투에서-MAC-address-변경
sudo vim /etc/network/interfaces


auto eth0
iface eth0 inet dhcp
hwaddress ether 00:00:00:00:00:00

노란색 부분에 원하는 MAC address 입력.


sudo service /etc/init.d/networking restart

MAC Address Generator


http://sqa.fyicenter.com/Online_Test_Tools/Test_MAC_Address_Generator.php

windows 7 네트워크 MTU 설정 edit

http://www.coolenjoy.net/bbs/cboard.php?board=32&no=2255

레지스터리로 하는법은
HKEY_LOCAL_MACHINE > System > CurrentControlSet > Services > Tcpip > Prameters > Interfaces 가셔서 요상한 이름의 폴더중 자신의 아이피속성이 들어가있는 폴더 선택 후
새로만들기 > DWORD 값 하시고 MTU라고 적으신 다음 원하시는 숫자 입력하시면 되지 않을까 합니다...

제가 아는 레지 수정방법은 XP에서 쓰던 방법이라.. 제대로 될진^^;;

cmd로 하는법은 netsh interface ipv4 set subinterface "로컬 영역 연결" mtu=XXX store=persistent

자신의 어댑터 이름을 로컬 영역 연결에 입력 해주시구요.. MTU자리에 숫자입력하면 간단하게 수정됩니다

Using libcurl in libpurple edit

http://pidgin.im/pipermail/devel/2007-November/003967.html
Vishal Rao vishalrao at gmail.com
Tue Nov 6 01:08:27 EST 2007


Hello,

I'm writing a libpurple plugin (cross-platform Windows and Linux/Unix)
and I need to do an FTP upload via code. Can you recommend some
quick/easy library to do an FTP upload which also compiles/works on
Windows and Linux?

Thanks,
Vishal Rao

--
"Thou shalt not follow the null pointer for at it's end madness and chaos lie."

http://pidgin.im/pipermail/devel/2007-November/003968.html
Casey Harkins caseyharkins at gmail.com
Tue Nov 6 01:41:18 EST 2007


libcurl perhaps? Never used it, so I'm not sure about quick/easy, but it
does support most platforms (including Windows, Linux and most flavors
of Unix) and multiple protocols.

http://curl.haxx.se/libcurl/

-casey

http://pidgin.im/pipermail/devel/2007-November/003971.html
Vishal Rao vishalrao at gmail.com
Tue Nov 6 08:29:02 EST 2007


thanks, i've started to use the libcurl which comes with cygwin and my
libpurple plugin compiles under windows/cygwin/mingw.

problem is, when i include curl and call its init and cleanup
functions in the plugin code, the plugin no longer shows up in
pidgin's plugin list to load! the plugin works again when i comment
out the curl code... im statically linking curl and my plugin dll size
goes up from about 100k to 500k.

any ideas as to why this is happening and how to get it to work?

--
"Thou shalt not follow the null pointer for at it's end madness and chaos lie."

http://pidgin.im/pipermail/devel/2007-November/003972.html
Daniel Atallah daniel.atallah at gmail.com
Tue Nov 6 09:10:12 EST 2007


The problem is likely that you're using the cygwin-dependent libcurl.
The reason that your plugin no longer appears is that it probably
can't find cygwin1.dll, which libcurl needs. Using the MS dependency
checker application on your plugin dll will verify this. Pidgin (on
Windows) is a native win32 application, so you should use a natively
compiled libcurl instead and avoid having these problems.

-D

http://pidgin.im/pipermail/devel/2007-November/003977.html
Vishal Rao vishalrao at gmail.com
Tue Nov 6 11:19:38 EST 2007


Yup, it did seem to have a dependency on cygwin. So I built libcurl
myself and rebuilt the plugin. Still see the same problem. Dependency
walker shows dependency on libpurple.dll and dwmapi.dll which is the
same as the working plugin without curl.

If I comment out the calls to curl's init and cleanup, the plugin
loads. I moved the calls to other functions and not the plugin's
init/load, still the plugin does not load if I include curl calls...

--
"Thou shalt not follow the null pointer for at it's end madness and chaos lie."

http://pidgin.im/pipermail/devel/2007-November/003980.html
Vishal Rao vishalrao at gmail.com
Tue Nov 6 11:36:42 EST 2007


Doh, nevermind. I just needed to place libcurl.dll in Pidgin's folder
not in the plugins subfolder. Static linking is giving me linker
errors so I'm using the curl dll.... thanks!

--
"Thou shalt not follow the null pointer for at it's end madness and chaos lie."

http://pidgin.im/pipermail/devel/2007-November/003988.html
Vishal Rao vishalrao at gmail.com
Wed Nov 7 00:46:56 EST 2007

FYI I've attached my libpurple plugin code for any comments on it.
It's supposed to be a "webaware" plugin similar to miranda-im's
webaware plugin which uploads your status so you can display it on
your webpage.

I'm writing it mostly for myself because I didn't find an existing
replacement plugin for Pidgin which I'm starting to use on Linux and
Windows... I hope there doesn't already exist a similar plugin for
Pidgin which I could just use?

--
"Thou shalt not follow the null pointer for at it's end madness and chaos lie."
-------------- next part --------------
A non-text attachment was scrubbed...
Name: webaware.c
Type: text/x-csrc
Size: 11254 bytes
Desc: not available
Url : http://pidgin.im/pipermail/devel/attachments/20071107/eeedb93a/attachment-0001.c

attachment-0001.c:
/*
 * WebAware (version 0.0.3) libpurple plugin.
 *
 * Copyright (C) 2007 Vishal Rao <vishal.rao@lahsiv.net>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 * http://www.gnu.org/copyleft/gpl.html
 */

/** 
 * This is a libpurple plugin which places your IM status on FTP or local directories.
 * It is useful for displaying your status on your website.
 */

/*
Changelog:

0.0.3 (Nov 6th, 2007) :
Now using libcurl and glib threads/mutexes for the (hardcoded for me) FTP upload.

0.0.2 (Oct 9th, 2007) :
Now just listens to account-status-changed signals.

0.0.1 (Oct 9th, 2007) :
First cut based on helloworld.c hardcoded only for MSN, Yahoo and GoogleTalk.
Can only listen to signed-on and signed-off signals.
Does not store status anywhere in this version.
*/

/*
TODO :

1. Actually place status on multiple FTP and local dirs.
2. Handle all available protocols not just MSN, Yahoo and GoogleTalk.
3. Use Pref API to load/store config along with UI.
*/

#define PURPLE_PLUGINS

#include <glib.h>

#ifndef G_GNUC_NULL_TERMINATED
  #if __GNUC__ >= 4
    #define G_GNUC_NULL_TERMINATED __attribute__((__sentinel__))
  #else
    #define G_GNUC_NULL_TERMINATED
  #endif /* __GNUC__ >= 4 */
#endif /* G_GNUC_NULL_TERMINATED */

#include "plugin.h"
#include "version.h"
#include "request.h"
#include "notify.h"
#include "connection.h"
#include "signals.h"
#include "util.h"

#include <curl/curl.h>

CURL * g_curl = NULL;

char g_curldata[500] = {0};
int g_curldatalen = 0;

GMutex * g_statusmutex = NULL;
GMutex * g_threadmutex = NULL;

int g_threadstarted = 0;
GThread * g_thread = NULL;
GError * g_error = NULL;

PurplePlugin * g_plugin = NULL;

/*
 * Connection protocol_id list:
 * MSN is "prpl-msn"
 * Yahoo is "prpl-yahoo"
 * GTalk is "prpl-jabber"
 */

PurpleConnection * g_msn = NULL;
PurpleConnection * g_yahoo = NULL;
PurpleConnection * g_gtalk = NULL;

gulong g_statusid = 0;

char g_msnstatus[100] = {0};
char g_yahoostatus[100] = {0};
char g_gtalkstatus[100] = {0};

static void
check_connection(PurpleConnection * conn)
{
  const char * msn = NULL;
  const char * yahoo = NULL;
  const char * gtalk = NULL;

  if (!g_msn)
  {
    msn = purple_strcasestr(conn->account->protocol_id, "prpl-msn");

    if (msn)
    {
      g_msn = conn;
      return;
    }
  }

  if (!g_yahoo)
  {
    yahoo = purple_strcasestr(conn->account->protocol_id, "prpl-yahoo");

    if (yahoo)
    {
      g_yahoo = conn;
      return;
    }
  }

  if (!g_gtalk)
  {
    gtalk = purple_strcasestr(conn->account->protocol_id, "prpl-jabber");

    if (gtalk)
    {
      g_gtalk = conn;
      return;
    }
  }
}

static void
update_status(PurpleConnection * conn, char * gstatus)
{
  GList * statuses = NULL;
  GList * statusitem = NULL;
  PurpleStatus * status = NULL;
  PurpleStatusType * statustype = NULL;
  PurpleStatusPrimitive statusprimitive = PURPLE_STATUS_UNSET;

  g_strlcpy(gstatus, "Unknown", 99);
  
  statuses = purple_presence_get_statuses(conn->account->presence);
  
  statusitem = g_list_first(statuses);

  g_mutex_lock(g_statusmutex);
  
  while (statusitem)
  {
    status = (PurpleStatus *) statusitem->data;
    
    if (purple_status_is_active(status))
    {
      statustype = purple_status_get_type(status);
      
      statusprimitive = purple_status_type_get_primitive(statustype);

/*      
      purple_notify_message(g_plugin, PURPLE_NOTIFY_MSG_INFO, conn->account->protocol_id,
        purple_primitive_get_name_from_type(statusprimitive), NULL, NULL, NULL);
        */
      
      g_strlcpy(gstatus, purple_primitive_get_name_from_type(statusprimitive), 99);
    }
    
    statusitem = g_list_next(statusitem);
  }
  
  g_mutex_unlock(g_statusmutex);
}

// curlreader is the "data provider" for the libcurl ftp upload
static size_t
curlreader(void *ptr, size_t size, size_t nmemb, void *stream)
{
  static int total = 0;
  int current = 0;
  
  while (total < g_curldatalen && current < size*nmemb)
  {
    *(((char*)ptr)+current) = *(((char*)stream)+total);
    
    total++;
    current++;
  }
  
  if (current == 0) total = 0;
  
  return current;
}

// uploader is the thread which waits 10s before performing the upload
static gpointer
uploader(gpointer data)
{
  CURLcode result;
  //GTimer * timer = NULL;
  
  //sleep(10000); // wait 10 seconds before uploading status...
  
  /*
  timer = g_timer_new();
  g_timer_start(timer);
  while(g_timer_elapsed(timer, NULL) < 10.0);
  g_timer_destroy(timer);
  */
  
  g_usleep(10000000); // wait 10 seconds before uploading status...
  
  // currently uploading miranda-im's webaware_data.js file format!
  
  g_mutex_lock(g_statusmutex);
  strcpy(g_curldata, "initArray(4);\n");
  strcat(g_curldata, "addData(new Array(\"CSTIME\", 2007, 11, 06, 15, 00, 00));\n");
  strcat(g_curldata, "addData(new Array(\"STATUS\", \"JABBER\", 40071, \"");
  strcat(g_curldata, g_gtalkstatus);
  strcat(g_curldata, "\", \"Nope, not here.\"));\n");
  strcat(g_curldata, "addData(new Array(\"STATUS\", \"MSN\", 40071, \"");
  strcat(g_curldata, g_msnstatus);
  strcat(g_curldata, "\", \"Nope, not here.\"));\n");
  strcat(g_curldata, "addData(new Array(\"STATUS\", \"YAHOO\", 40071, \"");
  strcat(g_curldata, g_yahoostatus);
  strcat(g_curldata, "\", \"Nope, not here.\"));\n");  
  g_mutex_unlock(g_statusmutex);
  g_curldatalen = strlen(g_curldata);
  
  g_curl = curl_easy_init();
  // upload to ftp
  if (g_curl)
  {
    curl_easy_setopt(g_curl, CURLOPT_UPLOAD, 1);
    curl_easy_setopt(g_curl, CURLOPT_URL, "ftp://user:pass@site.tld/folder/file");
    curl_easy_setopt(g_curl, CURLOPT_READDATA, g_curldata);
    curl_easy_setopt(g_curl, CURLOPT_READFUNCTION, &curlreader);
    result = curl_easy_perform(g_curl);
    curl_easy_cleanup(g_curl);
  }  
  
  g_mutex_lock(g_threadmutex);
  g_threadstarted = 0;
  g_mutex_unlock(g_threadmutex);
  
  return NULL;
}

static void
save_status(const char * gstatus)
{
  g_mutex_lock(g_threadmutex);
  
  if (g_threadstarted == 0)
  {
    g_thread = g_thread_create(&uploader, NULL, FALSE, &g_error);
    g_threadstarted = 1;
  }
  
  g_mutex_unlock(g_threadmutex);
}

static void
save_status2(const char * gstatus)
{
  CURLcode result;
  
  // TODO : Read prefs and save status to FTP and/or local dir.
  /*
  purple_notify_message(g_plugin, PURPLE_NOTIFY_MSG_INFO, "Save Status",
    gstatus, NULL, NULL, NULL);  
  */
  g_curl = curl_easy_init();
  // upload to ftp
  if (g_curl)
  {
    curl_easy_setopt(g_curl, CURLOPT_UPLOAD, 1);
    curl_easy_setopt(g_curl,CURLOPT_URL, "ftp://user:pass@site.tld/folder/file");
    curl_easy_setopt(g_curl, CURLOPT_READDATA, g_curldata);
    curl_easy_setopt(g_curl, CURLOPT_READFUNCTION, &curlreader);
    result = curl_easy_perform(g_curl);
    curl_easy_cleanup(g_curl);
  }
}

static void
update_and_save_status(PurpleConnection * conn)
{
  const char * msn = NULL;
  const char * yahoo = NULL;
  const char * gtalk = NULL;

  msn = purple_strcasestr(conn->account->protocol_id, "prpl-msn");
  yahoo = purple_strcasestr(conn->account->protocol_id, "prpl-yahoo");
  gtalk = purple_strcasestr(conn->account->protocol_id, "prpl-jabber");

  if (msn)
  {
    update_status(g_msn, g_msnstatus);
    save_status(g_msnstatus);
  }
  else if (yahoo)
  {
    update_status(g_yahoo, g_yahoostatus);
    save_status(g_yahoostatus);
  }
  else if (gtalk)
  {
    update_status(g_gtalk, g_gtalkstatus);
    save_status(g_gtalkstatus);
  }
}

static void
account_status_changed(PurpleAccount *account, PurpleStatus *old, PurpleStatus *new, gpointer data)
{
  PurpleConnection * conn = NULL;
  /*
  purple_debug_misc("signals test", "account-status-changed (%s, %s, %s)\n",
          purple_account_get_username(account),
          purple_status_get_name(old),
          purple_status_get_name(new));
  */
  
  /*
  char msg[100] = {0};
  
  g_snprintf(msg, 99, "account: %s, old: %s, new: %s", purple_account_get_protocol_name(account),
    purple_status_get_name(old), purple_status_get_name(new));
  
  purple_notify_message(g_plugin, PURPLE_NOTIFY_MSG_INFO, "Account Status Changed",
    msg, NULL, NULL, NULL);  
  */
  
  conn = purple_account_get_connection(account);
  check_connection(conn);
  update_and_save_status(conn);  
}

static gboolean
plugin_load(PurplePlugin * plugin)
{
  /*
  purple_notify_message(plugin, PURPLE_NOTIFY_MSG_INFO, "WebAware Load",
    "plugin_load() called", NULL, NULL, NULL);
  */

  /*
  g_signonid = purple_signal_connect(purple_connections_get_handle(), "signed-on", g_plugin,
    PURPLE_CALLBACK(signed_on_cb), NULL);

  g_signoffid = purple_signal_connect(purple_connections_get_handle(), "signed-off", g_plugin,
    PURPLE_CALLBACK(signed_off_cb), NULL);
  */

  /*
  g_statusid = purple_signal_connect(purple_connections_get_handle(), "savedstatus-changed", g_plugin,
    PURPLE_CALLBACK(savedstatus_changed_cb), NULL);
  */

  g_statusid = purple_signal_connect(purple_accounts_get_handle(), "account-status-changed", g_plugin,
    PURPLE_CALLBACK(account_status_changed), NULL);

  g_statusmutex = g_mutex_new();
  g_threadmutex = g_mutex_new();
  
  return TRUE;
}

static gboolean
plugin_unload(PurplePlugin * plugin)
{
  /*
  purple_notify_message(plugin, PURPLE_NOTIFY_MSG_INFO, "WebAware UnLoad",
    "plugin_unload() called", NULL, NULL, NULL);
  */

  purple_signals_disconnect_by_handle(g_plugin);

  g_mutex_free(g_statusmutex);
  g_mutex_free(g_threadmutex);
  
  return TRUE;
}

static void
plugin_destroy(PurplePlugin * plugin)
{
  /*
  purple_notify_message(plugin, PURPLE_NOTIFY_MSG_INFO, "WebAware Destroy",
    "plugin_destroy() called", NULL, NULL, NULL);
  */

  purple_signals_uninit();
  purple_connections_uninit();
}

static PurplePluginInfo
info =
{
    PURPLE_PLUGIN_MAGIC,
    PURPLE_MAJOR_VERSION,
    PURPLE_MINOR_VERSION,
    PURPLE_PLUGIN_STANDARD,
    NULL,
    0,
    NULL,
    PURPLE_PRIORITY_DEFAULT,

    "core-vishalrao-webaware",
    "WebAware",
    "0.0.3",

    "Web Awareness Plugin",
    "The WebAware plugin places your status information on FTP or local directories."
    " It is useful for being able to display your status on your webpage.",
    "Vishal Rao <vishal.rao@lahsiv.net>",
    "http://lahsiv.net/",

    plugin_load,
    plugin_unload,
    plugin_destroy,

    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL 
};

static void
init_plugin(PurplePlugin * plugin)
{
  g_plugin = plugin;
  purple_signals_init();
  purple_connections_init();
  
  //Note: purple_accounts_init() seems to cause Pidgin to not sign on!
  //purple_accounts_init();
}

PURPLE_INIT_PLUGIN(webaware, init_plugin, info);

// --------- The End ---------

finch에 pidgin-nateon 플러그인을 deb 패키징 후 설치 edit

서버에서 메신저를 돌려볼려던 생각은 옛날부터 해왔었는데 검색하던중 찾아낸 finch는 공교롭게도 pidgin의 CLI 버전이다.

pidgin-nateon 패키지의 의존성인 pidgin 대신(콘솔에선 설치해도 못씀) finch를 사용하기 위해서 finch 의존성으로 다시 패키징한다.

libpurple 설치


플러그인을 빌드하는데 libpurple이 필요. 데비안 lenny 기준 백포트로 설치

$ sudo aptitude -t lenny-backports install libpurple0

pidgin-nateon 플러그인 다운로드


svn에서 최신 리비전을 받는다

$ svn export http://dev.haz3.com/svn/nateon/trunk/ pidgin-nateon

pidgin-nateon 빌드


control 파일 추출을 위한 pidgin-nateon deb 패키지 빌드 (/2011/05/deb.html)


control 파일을 직접 만들 수 있다면 생략.

pidgin-nateon$ dpkg-buildpackage -rfakeroot -uc -b

control 파일을 만들 수 있다면 소스 빌드


pidgin-nateon$ ./configure --prefix=/usr
pidgin-nateon$ make
pidgin-nateon$ make DESTDIR="$PWD/build" install

(!) configure할때 prefix를 /usr 가 아닌 다른경로로 설정한다면 finch가 locale을 인식 못하는 문제가 발생한다.

finch-nateon deb 패키지 빌드


finch-nateon, finch-nateon/DEBIAN 디렉토리를 생성한다.

pidgin-nateon deb 패키지 빌드 하였다면


pidgin-nateon/debian/pidgin-nateon/DEBIAN/control -> finch-nateon/DEBIAN/control 복사 후 수정

...
Package: pidgin-nateon -> finch-nateon
...
Depends: pidgin -> finch
...

pidgin-nateon/debian/pidgin-nateon/usr -> finch-nateon/usr 복사한다.

pidgin-nateon 소스를 빌드하였다면


control 파일을 finch-nateon/DEBIAN/ 에 넣고 빌드된 바이너리들을 finch-nateon/ 에 넣어준다.

CUI인 finch에서는 필요없는것들을 제거해준다.

  • finch-nateon/usr/share/pixmaps (finch는 콘솔 인터페이스이므로 이미지는 필요없다.)
  • finch-nateon/usr/share/doc (문서따위..)

finch-nateon 상위 디렉토리(pidgin-nateon)에서 dpkg-deb으로 빌드

pidgin-nateon$ dpkg-deb --build finch-nateon

생성된 finch-nateon.deb 의 이름을 알맞게 수정

finch-nateon.deb -> finch-nateon_2.5.6-svn143_i386.deb

패키지 설치


$ sudo dpkg -i finch-nateon_2.5.6-svn143_i386.deb

빌드된 finch-nateon 플러그인 deb 패키지 파일 다운로드 링크



참고 링크



스크린샷



dpkg-source: error: source package has two conflicting values - foo and bar edit

http://www.mail-archive.com/debian-mentors@lists.debian.org/msg19604.html

Why do you call the directory bar if the source package is foo?

Ideally, these three should match:

- The name of the directory
- The name of the source package in the control file
- The name of the source package in the debian changelog

In your case, dpkg-gencontrol is complaining about a mismatch between
the last two. I think dpkg-source gives a warning if the directory
name does not match.

Richard Braakman

fakeroot?? edit

http://ubuntuforums.org/showthread.php?t=208606

Re: fakeroot??
Quote:
Originally Posted by hwe001
Hi I am working on a workstation and can not use 'sudo', but how to install a software (eg Skype) locally? anyone knows how to use "fakeroot"? does that mean I still can use "fakeroot" to install a software locally?

Thanks, Harvey

No, fakeroot is used when building packages in your user account, and all it does it change the owner of the files in the package to root:root, instead of user:user.

If you want to install packages on your system directories, then you have to use sudo or be root. However, you can locally install software in your user directory and use it successfully. This is not secure, because you could mistakenly remove a file from your user account and break the software. A good example is the firefox binary from mozilla.org .. you can download it into your user directory, untar it, and just click on the 'firefox' script to start it. I have not used Skype, but maybe you can do this with Skype too.

You should get access to sudo to install software properly, or have someone who has sudo install it for you.

HTH,
<- Older