Categories
Geeky/Programming Ramblings

Ubuntu 8.04 Hardy Heron – Linux is Cool, Linux Wireless is Not – 10 Step Program

Gah. I have a love hate relationship with Linux. It is pretty cool, can do pretty much everything. But.. But.. wireless support is just a joke. Same issues with Yellow Dog Linux on the PS3.

Wireless should JUST WORK.

I downloaded the 8.04 iso, and burnt it to cd. Installed it in windows, which is cool, a 10 GB partition. rebooted and the windows boot manager lets you choose , Vista or Ubuntu.

After getting set up, logged in, I tried to get on wireless. Doesn’t work. The thing is with Linux, is if you start configuring stuff here and there, it can get WAY out of hand, and then its just wacked. That happened, so I reboot to Vista, uninstall Linux, reinstall.

Now, lets search the forums, blogs and what not to get wireless to work. These are the steps I took to get it to work. My laptop is Inspiron E1705 with Broadcom wireless..

Fire up terminal..

1) sudo apt-get install build-essential

2) wget http://bu3sch.de/b43/fwcutter/b43-fwcutter-011.tar.bz2

3) tar xjf b43-fwcutter-011.tar.bz2

4) cd b43-fwcutter-011

5) make

6) cd..

7) wget http://downloads.openwrt.org/sources/broadcom-wl-4.80.53.0.tar.bz2

8) tar xjf broadcom-wl-4.80.53.0.tar.bz2

9) cd broadcom-wl-4.80.53.0/kmod

10) sudo ../../b43-fwcutter-011/b43-fwcutter -w “/lib/firmware� wl_apsta.o

Now, reboot a few times, and then maybe.. just maybe your wireless will connect and work. Once it latches on, it seems to be fine. I am on Ubuntu right now, writing this post.

Only 10 steps to get wifi working, all manual, and just a PITA. Granted it took me about an hour to patch together 18 different ways to get it to work..

Now I know why people use Mac and Windows. There is now way regular users are going to put up with that. Its like having to turn a crank to get your engine in your car to start. Just ain’t going to happen. Maybe in version 9 🙂

Categories
Uncategorized

links for 2008-04-25

Categories
Geeky/Programming

Ruby on Rails and MySql .. on Windows Vista

So, this evening I got the urge to get Ruby on Rails working on Vista, with MySql. I haven’t done much with RoR, but figured I would give it a go. I have this test hosting account that has RoR hosting, so that is what got me somewhat motivated…anyway’s, on with the show.

 

Install Ruby

Installing Ruby is pretty easy. You can follow the tutorial pretty much step by step from the rubyonrails.org site, except it is tailored to *nix machines (Mac, Linux) as far as paths and stuff..

1) Download and install ruby..(http://www.rubyonrails.org/down)

2) get RubyGems, run ruby setup.rb

3) Get rails:…. gem install rails –include-dependencies

Create Application

At the command prompt:

rails c:railsblog

cd railsblog

ruby script/server

test it on http://localhost:3000

if all is well, you will see a cool welcome screen..

Now.. lets actually start making our blog app by generating a controller..(remember , you need to call “ruby” before executing these scripts.. in Mac, etc you don’t have to)

ruby script/generate controller Blog

Then edit your blog_controller.rb and add some code:

class BlogController < ApplicationController
    def index
        render :text => “Hello World!”
    end
end

try it (http://localhost:3000/blog).. whoops.. error?

no such file to load — sqlite3

check under your app dir (c:railsblog) your configdatabase.yml

it is set to sqllite.. we need to get MySql installed and configured

Install MySql (5.0.51a)

This is a whole nother debacle. MySql doesn’t really work right on Vista.

download MySql (http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-essential-5.0.51a-win32.msi/from/pick#mirrors), install it

you will notice.. the config assistant doesn’t run at the end..

Configure It, Hack It, Swear At It

First, in the MySql/bin directory, set both the MySql config assistant and the mysqld-nt.exe to run in XP Sp2 compatibility mode, and run as administrator (this will
allow the service to start once the config assistant is done, once we hack to run anyway’s)

In your application logs in event viewer you will see

Activation context generation failed for “C:Program FilesMySQLMySQL Server 5.0binMySQLInstanceConfig.exe”.
Error in manifest or policy file “C:Program FilesMySQLMySQL Server 5.0binMySQLInstanceConfig.exe” on line 6.
The value “asAdministrator” of attribute “level” in element “urn:schemas-microsoft-com:asm.v1^requestedPrivileges” is invalid.

Nice..

I guess older version work, but 5.0.51a doesn’t. You can see in the error, “asAdminstrator”, it should be “requireAdministrator”, we need to hack the exe..

download resource hacker – http://www.angusj.com/resourcehacker/

Open the MySqlInstanceConfig.exe in Reshack, ctrl+f, search for “asAdministrator”, change to “requireAdministrator” save and compile the exe over the old one..

Whoo hoo! The config assistant runs!

Basically the defaults, except I chose

“multilingual” on the character set screen,

and checked the “Include Bin Directory in Windows PATH” box on the Windows Options Screen

and – setup a root password on the security screen!

after it is all done, I like to secure my local machine, go to the my.ini in your MySql directory, and under the [mysqld] add

bind-address=127.0.0.1

so only local apps can connect..

Test MySql by opening a cmd prompt,

mysql -h localhost -u root -p

hit enter, it will ask for a password , and you should be able to login

Configure MySql For Our App

login to MySql using the cmd above..then

CREATE DATABASE blog;
CREATE USER ‘blog’@’localhost’ IDENTIFIED BY ‘blog’;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON blog.* TO ‘blog’@’localhost’;
FLUSH PRIVILEGES;

quit

Now we have a database called “blog” a user called “blog” with password “blog”

We need to tie Ruby to MySql now…

run..

gem install mysql

now, you probably have your mysql directory in your path, but since you need to restart your machine or explorer for new paths to show up, it doesn’t work yet..
so we need to make sure we do that, otherwise, if you try hitting http://localhost:3000/blog you will get a libmysql.dll error popup. I just killed explorer.exe and
start->run explorer in task manager, and then hit http://localhost:3000/blog again and saw the “hello world”

Yesssss… it works. Now , for the fun stuff, actually coding and creating tables, and more!!!!

Categories
Uncategorized

links for 2008-04-23

Categories
Geeky/Programming Ramblings

Windows Vista vs. Windows XP Debate. Who Wins?

I have been using Microsoft’s Windows Vista since it came out RTM, Oct 30 2006. I had it on a Dell desktop, which worked fine. Some driver issues before January 2007, but it still worked. I have had it on my main Dell laptop since May 2007. I use this laptop for work (read: Visual Studio 2005, 2008, SQL Server, Office 2007 etc, etc)

I started using XP the same way since it came out in 2001. Even though, at work, I was forced to use 98/2000 for a while, but I had XP running at home, and ran it all they way up till I installed Vista fresh.

Now XP SP0, was very buggy, driver issues. Same with Windows 2000, SP1 came out and a lot of issues were fixed and it was more stable, yet insecure. SP2 fixed most of the big problems and it was very stable, mature OS, and now SP3 is RTM which adds a few hidden features, as well as all the security patches since SP2. Good deal, yeah, XP is stable, mature and works. Guess what? So is UNIX. It doesn’t mean we want to use it on our machines.

Vista is the new OS in town from Microsoft, and it works just fine. Great almost. Yeah, you heard me right. It works, it doesn’t suck, and yeah, it is better than XP.

Anyone who says otherwise either

a) Doesn’t know how to setup and work Windows

b) has hardware that they can’t get working

c) has an OEM machine full of bloatware slowing it down

d) doesn’t know how to tweak a machine for performance.

e) they haven’t used Vista (because of work reasons or whatever)

Yes, XP works, it works well, for people running Compaq Pesarios or HP machines that are 5-6+ years old. It works well for Linux geeks who really don’t know how to work Windows. It works well for Mac people that need Windows every now and then.

But Vista, just works. My desktop was purchased in Nov 2005. 2 GB of ram. Vista works like a champ. Laptop in May 2007, once again, runs like a champ. Even my MacBook with 1GB runs Vista very well using Apple’s Boot Camp.

Vista IS more secure. You can run it without added bloat of an antivirus/spyware in my opinion. And if you are behind a router, you don’t need a firewall. Now, in XP’s case.. you probably need all three, just because XP is more vulnerable, and when by chance it does get hit by malware, it makes it MUCH harder to get it off XP (I know from helping people) compared to Vista.  Vista has built in tools to identify rouge programs, processes, and things that just shouldn’t be there. It gives you more insight into what is going on – the control panel has tons of options to monitor everything, and, Vista is locked down by default.

Yes UAC is a pain. I disable it, I am a power user. You don’t even need to be a power user, just a smart user. Don’t install crazy things, use Firefox, things like that.

I have been using Mac OS 10.4 and 10.5 now for about 6 months. It is OK, it works, depending on what you want to do. If I wasn’t a Windows developer, I could get by on Mac. I could get by on Linux (I have used it on and off for 8 or so years). But could an average user get by on Linux? No. That is why Linux will never become mainstream for end users – it is too difficult. Even Mac/Windows (and pssst Linux) geek’s give up on Linux because it is just too damn non-user friendly sometimes. No, I shouldn’t have to recompile my kernel to get wireless working. No, I shouldn’t have to edit config files ANYWHERE to change settings, not as an end user. As a power user, yea, that’s fine.

Back to XP vs. Vista – the petition to keep XP alive is just like trying to keep VB6 alive – it will always fail. VB.NET is superior to VB6, Vista is superior to XP – it just is. Vista MCE is much better than MCE 2005, just a ton more options and features, and it works, I could just keep going on and on listing feature comparisons, but it isn’t worth it.

I can say from experience, that Vista wins this war with XP, and until someone can convince me, that is how I roll 🙂

Categories
Blogging Ramblings

FriendFeed, Pownce, Twitter, et al – And Why Twitter Is The #1 Service (Even though it is down a lot)

The A-listers. The are the people who just talk about themselves. The A-Listers on the Internet. The A-listers mostly talk to the just the A-listers. They all use every new service that has come out and claim it is the next big thing. Yes, some services are good, some not so good. They seem to miss points on things though. It is almost like the MSM. They don’t catch on to the good things till after the bloggers been talking about things for a while.

The a-listers, they catch on to things, but they get so caught up in everything they don’t step back and take a look at a service (Facebook for instance – for a good two months it was Facebook this, Facebook that, even after tons of people were using it and praising it, a-listers then all of a sudden “discovered” Facebook and it was glorious, now, people still using it, but the a-listers have moved on to new and shiner things aka FriendFeed)

Twitter seemed to pick up steam, and it is good, but can get overwhelming. I am ashamed to admit it, but I do like Pownce better, the ability to put files up is just stellar, which Twitter doesn’t have.

FriendFeed is like a super twitter almost, where it aggregates all these services (Twitter, Blog, Flickr, and more)

What ends up happening though is duplication. Ugh. So I subscribe to you on Twitter – cool, then Pownce – cool, Next, Facebook, alright. But the problem is, you use a tool that posts to all 3 (Plaxo pulse, SocialThing, etc, etc) – so what happens? I get the same update in 3 places – not cool. Duplication.

Then, I get your FriendFeed, which is duplication AGAIN of all that stuff. Yikes.

Now all these sites have web interfaces, which are nice. Some have desktop apps, and more and more desktop apps are coming out. So you end up having 3-4 desktop apps for all these services (reminds me of ICQ, Yahoo Messenger, Windows Live Messenger, AIM, Google Talk) – WTF huh? Are we going backwards?

Using the iPhone, you can get to mobile versions of Twitter, Pownce, Facebook, FriendFeed, etc, and its all good, yet … Duplication.

Personally, I like setting up Twitter in my Google Talk (I’m really using Pidgin). Then if I want to be apart of the conversation, I send “on” and it turns on updates, it comes through like an IM, and when it gets overbearing, I just type “off” and they are quiet, and I don’t miss anything.

Pownce has a third party tool, pownceaim, but it really lacks something, its too chatty, and handles auto replies bad.

But, overall, why is Twitter #1? Well, this is why.

You can TEXT your status to Twitter from your phone!

You can get TEXT’s of updates to your phone.

These other services lack in this area. Facebook has something similar but it doesn’t even work for T-Mobile.

Why do these other services lack the SMS feature? One word. Money.

They don’t want to pay for a short code (which is upwards of 5000 a year last time I was looking) to be able to handle text messages. Twitter has paid up for theirs, and I think that is the best part about Twitter, I can update my friends and followers just by texting, which is cool when you are not by the computer.

The blogosphere is rampant with “twitter replacements” this week since twitter has had some downtime, but no matter which you pick, it will never beat Twitter until they accept TXT, IM, and Web, and Other API built program updates – that is the killer feature.. It seems that most of the a-listers don’t realize that.

Categories
Uncategorized

links for 2008-04-20

Categories
Geeky/Programming

OAuth: Getting Started with OAuth in C#, .NET

I have been playing around with Pownce and their API. They offer HTTP Basic Authentication and OAuth authentication. I decided to give a go with OAuth since BASIC auth just seems, dirty insecure to me. I started digging around, and http://oauth.net/ has some good info. Under code there is a C# (CSharp) version – http://oauth.googlecode.com/svn/code/csharp/  but, I couldn’t find any good examples of getting started implementing this in your app, so…

I downloaded the OAuthBase.cs class and added it to a sample project so I could get going. Now, how to use this OAuth thing…

Well, first you need a “request token” server/url that you can use, something that takes your request and gives back a token (You can use http://term.ie/oauth/example/ to test, instead of Pownce  or some other utility)

As the “consumer” of the service, you have a key and a secret. The hardest part of the OAuth request is generating the signature, which the OAuthBase.cs does for you. I did run into some small issue with generating a timestamp though, seems that the OAuthBase.cs class had/has a bug in the timestamp function. it was returning back a timestamp like 12393923423.134  instead of just 12393923423 – which the first one, with the .134 will cause an invalid signature in your requests.

I sent a comment/message to the creator of OAuthBase.cs about it, not sure what else to do there, I am pretty sure I had the latest version (it was linked off oauth.net)

here is the function I changed:

public virtual string GenerateTimeStamp() {
    // Default implementation of UNIX time of the current UTC time
    TimeSpan ts = DateTime.UtcNow – new DateTime(1970, 1, 1, 0, 0, 0, 0);
    string timeStamp = ts.TotalSeconds.ToString();
    timeStamp = timeStamp.Substring(0, timeStamp.IndexOf(“.”));
    return timeStamp;           
}

Now, you want to test this out, create a test .NET app (C#), and add OAuthBase.cs to your project. I created a test Windows Form app. I had to add a reference to System.Web as well., then the basic code (I am using the test OAuth server)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Web;
using OAuth;

namespace PownceTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            string consumerKey = “key”;
            string consumerSecret = “secret”;
            Uri uri = new Uri(“http://term.ie/oauth/example/request_token.php”);

            OAuthBase oAuth = new OAuthBase();
            string nonce = oAuth.GenerateNonce();
            string timeStamp = oAuth.GenerateTimeStamp();
            string sig = oAuth.GenerateSignature(uri,
                consumerKey, consumerSecret, 
                string.Empty, string.Empty,
                “GET”, timeStamp, nonce,
                OAuthBase.SignatureTypes.HMACSHA1);

            sig = HttpUtility.UrlEncode(sig);

            StringBuilder sb = new StringBuilder(uri.ToString());
            sb.AppendFormat(“?oauth_consumer_key={0}&”, consumerKey);
            sb.AppendFormat(“oauth_nonce={0}&”, nonce);
            sb.AppendFormat(“oauth_timestamp={0}&”, timeStamp);
            sb.AppendFormat(“oauth_signature_method={0}&”, “HMAC-SHA1”);
            sb.AppendFormat(“oauth_version={0}&”, “1.0”);
            sb.AppendFormat(“oauth_signature={0}”, sig);

            System.Diagnostics.Debug.WriteLine(sb.ToString());

        }
    }
}

 

If you run that app, you will get a debug line like..

http://term.ie/oauth/example/request_token.php?oauth_consumer_key=key&oauth_nonce=1901809&oauth_timestamp=1208645244&oauth_signature_method=HMAC-SHA1&oauth_version=1.0&oauth_signature=iv%2b45QPR9a%2fMDjw8qkEee61Fp0g%3d

One thing that had me scratching my head of a second was my signature was good like 80% of the time, I noticed I wasn’t URLEncoding it, so spaces were getting sent as ( ) instead of (+) – doh!

If you click on the link that is generated, you will get a response like

oauth_token=requestkey&oauth_token_secret=requestsecret

We are good to go! This is just the first step. We need to use those tokens now to move on, but we got past the first step of authenticating to the OAuth server to get tokens! Yay! (Ex: your app has to actually request that url, use the tokens, have the user authorize your app, then go from there..)

This maybe the first in a few blog posts on OAuth – happy coding!

Categories
Geeky/Programming

My Current iPhone Setup – Lots of Cool Apps Out Lately

In the last couple of weeks, many cool new iPhone native apps have come out, so I have been tricking out my iPhone lately.

First, Aqwoah Battery is really cool. It changes the generic battery screen to what you see here. The percent that your battery is charged, a no brainer!

iPhone Screen 0

Next, my first screen, you can see I have custom theme (I am currently running Aqwoah theme). The generic apps, SMS Through Settings are there, then I added the “Contacts” button. Reader and Facebook are web clips, and then Twinkle is a cool new twitter client that just came out

iPhone Screen 1

On the second screen, I have iFlickr (to upload directly to flickr while taking a pic), Installer (a must have – this is how you get all the native apps!), iTunes (blech), VNSea client, Meebo (web clip), MobileScrobbler (Last.FM Client, streams music), Services -(to shut off/on wifi, bluetooth, ssh), iFlix (netflix client), ShowTime (record video), Pownce, Twitter, Leaflets, LinkedIn, Plaxo Pulse, Wikipedia (all web clips) and then Wallpaper (lets you see shared wallpaper and download it, and share your own)

iPhone Screen 2

And here is screen 3, Flickr (web clip), iXboxLive (lets me see my xbox 360 friends status, etc), delicious (web clip), TimeCapsule (backup apps), Snapture (totally cool camera app), MyExample (my app I made!, my sandbox), fring (voip/IM client), SMBPrefs (SummerBoard – lets you theme everything).

iPhone Screen 3

And at the bottom you can see the 4 default icons that are there, phone, mail, safari, iPod.

I dont have too many apps installed, but some good ones, and it seems that it just keeps getting better. Now that I can make apps for this, it opens up doors as well. Hopefully the official SDK makes this even better

Technorati Tags: ,,,
Categories
Geeky/Programming Ramblings

Why is MFC Not Dead?

I was reading through some blogs this morning, and ran across this one, from my MSDN Feed.

Here is my answer (I wanted to leave a comment, but it wasn’t working, and I figured it would be a good blog post anyways)

Right now you can make an MFC app and it can run on win98,2k,xp,vista, etc – out of the box. Anything with .NET requires the framework, and if you want your app to just be downloaded and ran, then the framework limitation hurts you. Why make someone download and install a d 20+ MB framework?

I wish there was a way to deploy .net apps without the framework, maybe with just assemblies the apps needs.

But like I said, companies want apps to run on as many clients as possible, which just isn’t a reality with .NET, but it is with MFC.

I really think Microsoft is clueless on why people use MFC and not .NET or even an Web App. Finally, MSFT is starting to use .NET in their client apps here and there (WLW, SSMS, Zune, etc, etc)

Once all apps written by Microsoft use some form of .NET, and Windows 98, 2000, and XP are gone for good (or at such small % of market share they don’t matter, say < 1%), then we can actually write .NET client applications (and have to target the version of .NET on Vista, since that is the lowest common denominator) – OR… MSFT could push .NET as a critical update to XP and wipe the % of .NET installed down to a low enough number to make it feasible to create .NET client apps and get a good chunk of the market share..

There are always going to be people that use MFC for whatever reason, but ease of use is certianly not one of them. A small example is, in .NET, I can create an app that displays a toast message, has a systray icon, connects to FTP, handles web services, and much much more, in very little time, and with a small number of lines of code, whereas in MFC, doing those things is a huge undertaking, 1000's of lines of code, and even then some of it is very "hackish". Yes, doable, but not very easily.

Another argument could be as well, that if your app is good enough, people will download it and install the framework if they don't have it, and I think that is a very good argument (except windows 98 is out of luck – can't install .NET) – I think this last argument is the best – if people want it, and it is an awesome app, they will install whatever to get it to run.

Anyways, I am rambling.. probably could keep talking on this topic for another 100 paragraphs or so. 🙂