Thursday, January 29, 2009

simplevms.com

I recently purchased simplevms.com and plan to start building a website with virtual machine solutions built with ubuntu and lavalinux stacks. As many of you know virtual appliance are great when you want to test out a server solution without building a physical server. I have been building servers for the last 9 years and recently I have really taken vm technology to a whole new level within my company. I want to start making some of the technology available online so...

Some of the stacks I plan on building:
Developer stack : eclipse, php, python, ruby, apache, mysql, tomcat, oh may :)
Jabber Stack: apache, jabber server, admin site, jabber client site.
VOIP stack: asterisk, flash admin website, apache
Fileserver: samba, website admin, hylafax server, pdf printer server folder
SCV: Subversion, CVS, git, git web interface, apache, Bazzar
iFolder: Folder syncronization, Web admin, Web client installs,
SSH gateway: SSH server with webmin for admin.

If you have an idea for a virtual appliance send me an email and I might build it and post it.

Wednesday, January 28, 2009

Online complete Linux Books

So I can across a cool site I wanted to share. www.scribd.com

It is a site where users can upload complete books, articles and self made documentation. they have everything online. Some of the books I was interested in were : ubuntu, server administration, eclipse programming, Adobe AIR, django, rails, etc.

I also found some gems like Linux magazines and sports, etc.

I came across a cool Ubuntu magazine called Full Circle. They have a bunch on the site.

Here is a link to issue 20.
http://www.scribd.com/doc/10167944/Full-Circle-Magazine-Issue-20

They have great articles on how to build a webserver to designing your own livecd.

Well just passing it on.

Sunday, January 25, 2009

Subversion Ubuntu and a Panda

I spent the last couple hours getting eclipse, python, panda3d onto my workstation communicating with a brand new server running ubuntu, apache, and subversion. Why?

It seemed like a great idea at the time. I have lots and lots of source code with various projects that I have and am continuing to write over the last 9 years and I am tired of hauling different external drives to and from work depending on the project I am working on.

I decided to start using subversion - I never really used any version control system but it is appealing to me to have a version control system in place to check code in and out to any machine I happen to work off of. But I really did not know what was involved in setting up Subversion. In all honesty however it would have been easier if the server was not a apache machine with virtual aliases etc. I also wanted to subversion repos to build themselves on an NAS sitting in the same area as the server which brought it's own level of issues with SAMBA and permissions. The process was so draining and long I really need to redo it and blog about it so others can benefit from it.

Well now I have a subversion box and I can check in code and put code into it from eclipse or any other subversion client.

Enough for tonight - I am off to sleep and dream about all the code I can make tomorrow. :)

Tuesday, January 6, 2009

General Opensource post

Not really about Ubuntu but more about opensource. I'm blogging from my other pc right now :) the Vista one. I know, I know. But I am a developer and some of my clients cling to their Microsoft ways which means I still need a development pc with windows installed.

Anyways !!!! Being in a vista world is painful. I really mean it. Here I am paying over a hundred dollars for an OS which is slow on a quad core with 4 gbs of memory and a SATAII HD with 16MB cache raided as 0. I mean I really have to spend time when I install it to remove the Aero effects, add a bunch of registery tweaks for file system speed ups, increasing L Cache and hacking the tcpip stack to get more connections for my browsing. Needless to say besides the OS I try to make all the other software, opensource.

I include in my opensource arsena many projects and project spin-offs. A list can be found on the side of my blog. And I am constantly on the lookout for more. Well I found a cool site last week which I wanted to share.

Mulder's Homepage - I don't think it's Mulder the former FBI detective turned opensource but nonetheless - the man has built a bunch of cool apps with Delphi for Windows based on alot of opensource projects including Mplayer with Smplayer and lots of codes. :)

From his website
"This package contains the latest builds of MPlayer for the Windows platform as well as SMPlayer and MPUI. Thanks to the award-winning MPlayer engine, more than 192 Video- and 85 Audiocodecs are supported natively! For maximum performance the package includes optimized MPlayer binaries for various CPU types. Furthermore the Full-Package includes the Binary Codec Package to enable even more audio/video formats."

What I really like about his install is it checks your cpu and loads an optimized version of mplayer and during the install the installer actually recompresses the dlls and exes with upx and makes them lighter and faster.

The player works really great - no more Windows Media Player for me!!! and VLC although good sometimes cannot play wmv files right. This Mplayer build plays it all.

On his site he also has : AVidemux, MakeInstallPlayer, LameXP, SFXTool, and a version of mencoder with a gui. I actually loaded them all and they run fast and light.

Try them out - you'll find yourself using less of the windows bloat and more opensource.

http://mulder.dummwiedeutsch.de/home/?page=home

and an embeded remote help desk tool


Also added a remote help desk tool which starts up vnc and send the users desktop streaming to a tech - the user can select a tech which has the vnc server portion loaded in their system tray. Basically the user logs into the portal - if they have an issue, they could go to Tools->Remote control and a separate window pops-up where they can select a tech. Once selected the tech recieves a popup and they can accept the connection. A new window comes up on the tech side and he can see the user's desktop. The user does not need to open any ports and it runs entirely in memory so no installing stuff like webex. :)

Embedded Ticket System


Added a Ticket System within the portal so the user can post errors or issues and information is stored in a mysql data and an email is sent to the tech assigned during that time.

The user can see via a list if their issue was posted by someone else within their organization.

SSH RDP Client Admin


Example of the admin piece within the portal. Admin is setting up a new published app.

Here he enters in the app information that will be generated into xml and sent to portal clients by client group.

Information such as term server ip or name, rdp settings such as compression or full screen, or drive mappings.

RDP encapsulated SSH client


Well I've been coding all night and have a new version of the portal application.

Key features:
SSH enabled RDP session to Term servers.
LAVA SSH gateway listening at port 80 for clients to connect to via SSH.
Once they connect, they pull in some port forwarding information which is tied to their user id.
The SSH embedded client reads the xml information and then port forwards to their internal terminal server and sets up the port onto their local machine at port 3390
The client then generates an RDP file that is run on the localmachine and connects the MS RDP client to port 3390 on the localmachine. Voila - the client is using SSH and RDP without knowing it.

Beautiful part is the EXE is under 8 mb and runs entirely in ram. No install. Just run it off a usb and connect to your published apps via SSH and no port opening on firewalls cause the SSH server is listening on 80.

I might expand the published apps to include X servers and imbed an X client in the portal app , I could also add a vnc client embedded in the portal so you could vnc into servers via ssh.

I have a screenshot above:

Monday, January 5, 2009

SSH gateway for RDP

SO I am building a SSH gateway to place in between some terminal servers we have at the office. The cool thing about the SSH server is that it will compress the RDP traffic and redirect the client to the internal RDP server.

What I am envisioning is a to build a small python app which will allow a user to login to a mysql database which will have some published app information, this information will be sent back to the client upon successfully logging in and tell the client which ssh server to connect to and which internal terminal server the client should call the rdp client to.

In essence the client connects to the ssh server and port forwards RDP to the local machine and then creates an RDP file that is autostarted by the localmachine which tells it to connect to itself at port 3389. That port will be forwarded automatically to the server running in the datacenter via ssh.

This way the only port that needs to be opened at the client end would be port 80 which is just web traffic port- I am going to have the SSH server listen on that port. Everything will be sent thru SSH so no RDP configuration on router.

I have tested it and file transfers work faster from RDP as well as screen refreshes. PDF rendering is alot smoother and I also like the fact that it is using SSH security and the data is encrypted.

Just another way opensource, ubuntu, python, ssh is helping me out.

Sunday, January 4, 2009

Preload

Along with playing with the 64bit os this weekend, I decided to mess with sysctl.conf and preload again.

For those who do not know /etc/sysctl.conf controls your kernel parameters - it's a nice way to adjust your operating system's running kernel without rebuilding the kernel from source and preload is a program you can install via 'sudo apt-get install preload' which preloads dlls and binaries into memory. It watches which programs you use and trys to load parts of the program into memory so when you launch the program it runs faster.

Still trying to find the best ratios for performance. I really like preload but you have to tweak it out a bit and also tune your system to be a little more aggressive with virtual memory garbage collecting via sysctl.conf. Preload obviously would not be too beneficial in a server environment but on the desktop it does make things pop up faster.

The whole test was to see if I could really shave openoffice and firefox launch times. And preload worked very well after I tricked out my sysctl.conf file.

Here are some of the changes I made in /etc/sysctl.conf
vm.swappiness=15
vm.vfs_cache_pressure=50
net.core.rmem_default = 256288
kernel.shmmax = 268435456
net.core.optmem_max = 57344
kernel.threads-max = 16379
fs.file-max = 16384
vm.page-cluster = 3

Then I adjusted my /etc/preload.conf
minsize = 1500000
memtotal = 30

Openoffice and firefox both noticiably increased in launch times. I don't have too many firefox extenstions but it does take a couple seconds for it to pop up - with preload and my new sysctl it comes up almost instantly. Openoffice runs faster also, it loads in about 10 secs and then each load afterwards is like instant. For Openoffice I changed some settings in it's preferences also, I increased the memory Openoffice could use to 64MB so it can load more of itself in the background. Now both come up fast.

64bits of power

So I have been playing with Ubuntu 8.10 64bit this weekend.

I like it.

My home test machine an AMD 3400+ seems to run faster with it than the 32bit ubuntu I have been using. I was worried about alot of the third-party software i use as they come in debs already for ubuntu but building some from source was not too bad and I then make the newly built binaries debs for 64 so it worked out. I was really worried about my game library - panda3d - but the folks at panda3d started making 64 bit versions and they had a premade deb so it all worked out. I loaded it and ran the source code of my developing game and voila - it worked without any changes.

I'm going to start building a new pc for my home and since I am going to have more than 4gb it was important to me to see if the 64bit version was going to be any trouble but i have been running it for 2 days and burned some cds, played my music, hooked up my ipod, wrote some python, panda3d, and django code and even did some rails and everything worked well. YIPPPEEE!!! Who says computers are a pain?

Friday, January 2, 2009

8.10 build

Almost done with CD version of 8.10 build. I've been doing alot of python programming lately with my game as well as my websites and haven't been developing lava for the last 2 months. I decided to replace my extra home development computer in the next month, so I am going to finish up my 8.10 build of lava and lavalite so I can load it onto the new machine.

As I am going to build my pc, I have been looking around for my new machine parts and found an Intel i7 920 Core chip and motherboard which I am eyeing. The motherboard allows for up to 24GB :) oh my! Obviously I am not going to buy all the memory at once but over time. 4 GB here, 4 GB there. Anyways, it made me think about the native 4GB limit in the Ubuntu 32bit kernel and how I would need to either install the 32bit server kernel or rebuild the 32bit kernel to get that extra memory. I haven't used the 64bit version and was wondering if anyone has and what their experience has been with it? Maybe I will build a 64bit version of my LAVA and LavaLite so the native 64bit kernel can see past 64bit without having to recompile or load a server kernel. Are there any downsides to install the server kernel as opposed to the desktop? Maybe I should just try the 64bit version out? I do alot of programming in panda3d now and it ships as a deb for 32bit ubuntu on their site. Not sure if there will be any issues with running it in a 64bit os. Also I have a bunch of other software not in the repos which are all 32bit. I guess the only way to know for sure it to install it and see.