Dear Prospective library maintainer,
I am a .NET programmer, with the need for specialized tools reliant on the BitTorrent network. Now I would have no issue if mature libraries for my platform of choice existed. I am also one man without the time to create his own library for .NET. This said, I am writing this as a plea to the other people out there who are creating their own libraries with no considderation given to independant open developers.
As far as I can tell, there are few choices for someone like myself.
1) Port existing C libraries to Managed C++ and create a wrapper in C# (ick)
2) Use David Smith’s binary open binary open free commercial library which lacks documentation and uses disingenuous licensing
3) Wait for someone to make an open-source library with a compatible license (I’m watching you Miguel & Alan)
4) Write my own
Obviously, you (as developers) are welcome to license and offer your code in any manor you deem prudent. I’m also quite aware of the impact your careers in software development may have tainted your view on licensing. I’ve had a similar experience with my current employer. The majority of our development team is composed of ex-Microsoft employees formerly associated with the ‘Indigo’ project. I am also sensitive to the importance required in keeping your intellectual property yours, and imposing stringent guidelines upon those who would use your works in an effort to sustain your business.
I mean, I know you put an enormous amount of effort into the development of this library, and I believe every developer should be compensated for his or her hard work. But, I certainly would never incorporate a library into any of my personal or professional applications that did not have a clearly defined path of evolution. On the other hand, I would be willing to incorporate a library with a clearly defined state of existence, a high level of developmental transparency, and a strong community derived support platform. It’s good to know that if development ceased for whatever reason, that my product (whatever it may be) would still continue to evolve without hindrance.
Maybe I’m wrong, but I see enormous benefit with an open model, and little with the traditional in the case of this particular project. You can still sell your product commercially, but I find it silly to cut out hobbyists and open source developers who could potentially build applications around your library, bolstering it’s worth in the eyes of potential buyers. But that’s just my take on it.
Because of the inherently restrictive nature imposed by a closed development process, closed code is quite literally unfeasible for most open source developers. In the event that the maintainer decided to cease development, it would leave every derived application out in the cold. When it comes to porting, patching, and altering his or her existing platform, no open developer with any common sense would allow his or her application to become ‘tainted’ in this way.
The principals behind an open model would involve open code. Developers and users abound can and would create feature rich applications using code derived from your library. This could come in the form of an extended feature set using the available code, bundled binaries, bundled code (Tested with a daily BVT recompile), community patch submissions, and quite likely other unforeseen applications.
Ideally, the open model can be used to embrace the addition and alteration of all interested parties, with ownership of the elements in question being returned to the developer. The idea is to restrict usage, license the source, and charge those who stand to profit by direct use of the library (commercial entities), but not those who foster the growth of the technology itself.
The technologies we use at my workplace are numerous, but we retain usage rights to all the source code involved (open source, or licensed). In fact, we have a stringent requirement that all involved technologies be built from source nightly. So in the unlikely event we find a cost benefit to move all our production servers to Mono/Apache
(or something), all the porting can happen in-house, and we are not reliant on any particular vendor.
Personally, I will have to wait until someone else develops a library without usage restrictions in order to offer my applications free of charge, in their entirety. Or if this does not happen, and in the unlikely event that I discover an exorbitant amount of free time, I could create my own library. (It’s sad, but work occupies 99% of my coding nowadays)
Installing OpenSSH
Pop up a terminal, and edit /etc/apt/sources.list – like this:
$ sudo gedit /etc/apt/sources.list
Remove the cdrom source line
Add “universe multiverse” to the first deb line after “dapper” so that it looks like this:
deb http://us.archive.ubuntu.com/ubuntu/ dapper universe multiverse main restricted
save and quit
then run
$ sudo apt-get update $ sudo apt-get install openssh-server
You’re done.
Installing Development Tools – Optional
Run these commands.
sudo apt-get install build-essential sudo apt-get install linux-headers-$(uname -r) sudo apt-get install monodevelop mono mono-gmcs
Install FreeNX
For 32-bit Systems
Run these commands.
$ sudo gedit /etc/apt/sources.list
add these lines to the top.
# FreeNX
deb http://free.linux.hp.com/~brett/seveas/freenx dapper-seveas freenx
now run these commands.
gpg --keyserver subkeys.pgp.net --recv-keys 1135D466 gpg --export --armor 1135D466 | sudo apt-key add - sudo apt-get update sudo apt-get install freenx
Use the NoMachine Keys
You’re Done.
For AMD64 (might work)
Run these commands.
$ sudo gedit /etc/apt/sources.list
add these lines to the top.
# FreeNX
deb-src http://free.linux.hp.com/~brett/seveas/freenx dapper-seveas freenx
now run these commands.
$ gpg --keyserver subkeys.pgp.net --recv-keys 1135D466 $ gpg --export --armor 1135D466 | sudo apt-key add - $ sudo apt-get update $ sudo apt-get source nx freenx expect fakeroot cdbs autotools-dev dpatch debhelper patchutils autoconf automake1.4 libjpeg-dev libpng12-dev libssl-dev libx11-dev libxaw7-dev zlib1g-dev $ cd nx-nx-1.4.92+1.5.0/ $ fakeroot dpkg-buildpackage -b (Go get coffee, this takes forever) $ sudo dpkg -i ../*.deb $ cd ../freenx-0.4.4+0.4.5 $ fakeroot dpkg-buildpackage -b $ dpkg -i ../freenx_0.4.4+0.4.5-4ubuntu2_all.deb
Use the NoMachine Keys
You’re Done.
Installing Apache 2.0 (WebDAV, PHP)
Run these commands
$ sudo apt-get install apache2 $ sudo apt-get install php5
Installing Samba/Winbind – (pam_mkhomedir, login, ad)
run this command:
$ sudo apt-get install samba winbind
Now, the first thing we are doing is setting up samba/winbind to work with the domain, so do a nano /etc/samba/smb.conf and insert the following lines:
workgroup = MYDOMAIN idmap uid = 10000-20000 idmap gid = 10000-20000 template shell = /bin/bash template homedir = /home/%D/%U winbind enum users = yes winbind enum groups = yes winbind cache time = 10 winbind separator = + security = domain password server = * winbind use default domain = yes
Remember that this is just and example, you should/can change the values according to your needs.
After that we need to make the system to use winbind.
First edit /etc/nsswitch.conf and replace:
passwd: compat group: compat
with:
passwd: compat winbind group: compat winbind
Now go to /etc/pam.d and edit the following files:
common-account:
#Commented for winbind to work #account-required pam_unix.so account-required pam_winbind.so
common-auth:
auth sufficient pam_winbind.so auth required pam_unix.so nullok_secure use_first_pass
common-session:
session required pam_unix.so session required pam_mkhomedir.so umask=0022 skel=/etc/skel/
sudo:
auth sufficient pam_winbind.so auth required pam_unix.so use_first_pass
Finally, there are only a few things left to do:
Join the domain:
$ net rpc join -D MYDOMAIN -U Administrator
Test it with:
$ wbinfo -u $ wbinfo -g
Make the domain home dir (users home dirs will be inside this one, but can be configured in smb.conf):
$ sudo mkdir /home/MYDOMAIN
You’re Done!
Installing Subversion
run this command
$ sudo apt-get install subversion libapache2-svn libapache2-mod-auth-pam $ sudo mkdir /usr/local/svn
Edit /etc/apache2/mods-enabled/dav_svn.conf
uncomment DAV and SVNPath
change SVNPath to SVNParentPath and have it point to /usr/local/svn
Before the tag, paste this
AuthPAM_Enabled on AuthType Basic AuthName "Subversion Repository" Require valid-user
save/quit
$ sudo /etc/init.d/apache2 restart
Installing WebSVN
$ sudo apt-get install websvn enscript
Our repositories are in /usr/local/svn – please use that.
Yes to all.
—-
That’s it, you’re done.
You’re Ubuntu server should now happily co-exist on any NT Domain based network. Congrats.
I am the proud owner of a Macbook Pro.
As you may or may not be aware, this lovely incarnation of x86 hardware runs OSX flawlessly; however, it becomes less enjoyable once you decide you want to get some work done and slap Windows on the beast.
I hope this post will serve as a warning for those of you (like myself) who may want to endulge in some of the latest technology, on some of the latest hardware, while still seeking to maintain the ability to complete your job.
Now, I’m relatively experienced when it comes to fussing around with the betas microsoft offers it’s testers (and some they don’t). I was a willing tester of every client and server solution they’ve offered since the early versions of Windows 98.
Windows 98, wow was that a rough release through the earliest stages of development. Sure, they basically had to rewrite 95 to be rendered by a browser, but that seems like smooth sailing when compared to the hurdles Vista has overcome.
Vista’s release has been rough, very rough. Features have been hacked and slashed more times than the release date has been pushed back. Working subsystems based on proven code have been rewritten (from scratch) with an emphasis placed on compatibility. Fundamental usability guidelines have been broken time and time again, but Microsoft never was very good with consistency.
I mean, I guess I’m ranting here, but I’m pissed. RC1 gave me the feeling things were looking up. It was faster and more consistant then every build before it, and it maintained enough backwards compatibility that I was able to compile and run the entire Payscale system on the thing, I was excited!
But then it started to turn into tar, slowing down with every day I used it. I can recall expanding a 4MB zip file, and waiting for 2 minutes… 2 minutes! Speed was starting to irritate me, but I had enough patience to work through those issues, it was afterall, a beta. Well, stortly thereafter, the display began to corrupt, more artifacts appeared every day I used the thing, it was horrible, I wanted to cut my eyes out. I could not look at code without developing a headache, yet I continued. I had put myself in this situation, and I still had deadlines.
So I wake up today, on my telecommuting day, I was excited to begin a morning of code. To my suprise I was welcomed into the conscious workday with a BSOD. I uninstalled every new application, and disabled every device I could think of, one by one, hoping to find the culprit. Before long, safe mode wasn’t safe from the BSOD.
I speak to you today from my brand new install of Windows XP (I had to wipe out Vista AND OSX to install it). Bootcamp decided it did not want to resize partitions anymore and recommended I re-install OSX. Fuck em. I formatted the whole thing and installed XP.
I am a little annoyed at the situation, and the simple fact I lost almost 6 hours of would-be code. I won’t be touching Vista until RTM (At least, that’s what I claim today) and neither should anyone who does not considder themselves a masochist.
Site content and design copyright 2005-2010 bsd.bz