Fri, 27 Jul 2007

9:55 AM - Apple iPhone

The numbers are out on the iPhone. In the first two days, Cingular (AT&T) activated 150,000 phones. Apple sold 270,000 iPhones. There is a security issue with the device. A bug in safari allows people to take over your phone by visiting a website. Apple stock has been up and down on these announcements.

location: Home

()

9:53 AM - The Freak Kernel aka Linux 0.01

http://linux.slashdot.org/article.pl?sid=07/07/27/0542212

i386 and not GNU quality LOL. Now half the internet runs on it.

location: Home

()

9:35 AM - Save Thunderbird

The Mozilla foundation is thinking about killing Thunderbird.  We need an e-mail client that can run on most operating systems.  It is a very important product.  Think of the alternatives:  pine, mutt, evolution, GNUmail, ... 

()

Thu, 26 Jul 2007

Tue, 24 Jul 2007

3:23 PM - About AT&T

This has to be the funniest explanation of telecom mergers ever http://video.google.com/videoplay?docid=-2004785759717366066

location: Home

()

Mon, 23 Jul 2007

10:02 AM - Old C++ code

I found this from an old C++ assignment from my first term at WMU. Kind of interesting how my coding style has changed and stayed the same. I don't know if this is the final version or not. I doubt it.


#include
#include
#include
using namespace std;

void initDeck( int[], int );
void printDeck( int[], int );
void printCard( int );
void printFaceValue( int );
void printSuit( int );
void shuffle( int[], int );
void deal( int[], int );
bool isFullHouse( int[], int );
bool isStraight( int[], int );
void printFullHouse( int[], int );
void printStraight( int[], int );
int getRand( int );

const int DECKSIZE = 52;
const int CLUBS = 0;
const int SPADES = 1;
const int DIAMONDS = 2;
const int HEARTS = 3;

int main()
{
int A[DECKSIZE];

srand( time(0) );

initDeck( A, DECKSIZE );
printDeck( A, DECKSIZE );

shuffle( A, DECKSIZE );
printDeck( A, DECKSIZE );

return 0;
}

void initDeck( int A[], int size )
{
for ( int i = 0; i < size; i++ )
A[i] = i;
}

void printDeck( int A[], int size )
{
cout << "current deck:

";

for ( int i = 0; i < size; i++ )
{
printCard( A[i] );

if ( i % 4 == 3 )
cout << endl;
else
cout << ", ";
}

cout << endl;
}

void printCard( int card )
{
printFaceValue( card );
cout << " of ";
printSuit( card );
}

void printFaceValue( int card )
{

int face = card % 13;

switch ( face )
{
case 0:
cout << " 2";
break;
case 1:
cout << " 3";
break;
case 2:
cout << " 4";
break;
case 3:
cout << " 5";
break;
case 4:
cout << " 6";
break;
case 5:
cout << " 7";
break;
case 6:
cout << " 8";
break;
case 7:
cout << " 9";
break;
case 8:
cout << "10";
break;
case 9:
cout << " J";
break;
case 10:
cout << " Q";
break;
case 11:
cout << " K";
break;
case 12:
cout << " A";
break;
}

return;
}

void printSuit( int card )
{

switch ( card % 4 )
{
case CLUBS:
cout << "clubs";
break;
case SPADES:
cout << "spades";
break;
case DIAMONDS:
cout << "diamonds";
break;
case HEARTS:
cout << "hearts";
break;
}

return;
}

void shuffle( int A[], int size )
{
bool notfound = true;

for ( int i = 0; i < size; i++ )
{
A[i] = getRand( size );

do
{
if ( A[i] == A[ i + 1 ] )
notfound = false;
else
notfound = true;

} while ( notfound == false );

}
}

int getRand( int scale )
{
return rand() % scale;
}

(1 comment | )

Fri, 20 Jul 2007

7:02 AM - Yes

I've managed to create a MidnightBSD Live CD for AMD64! I posted a crappy version on the FTP server, but I've got a decent version locally. I'm hoping to commit this in the next few days. I've never been a huge Live CD fan, but for an installation medium or people to try it, well it's a great idea. This will allow me to move forward with my new installer plans.

I'm intentionally not posting this on the mbsd blog because I don't want to get people's hopes up until it's committed. A Live CD is one of the biggest requests I've had. It may even back off pressure to do a full release.

()

Wed, 18 Jul 2007

7:17 AM - New Harry Potter book leaked to the net

http://www.nytimes.com/2007/07/17/books/17cnd-potter.html?ei=5065&en=0733e90a3f03c8b7&ex=1185336000&partner=MYWAY&pagewanted=printvd

Looks like the ending is clear on this book.

()

6:48 AM - NASDAQ fails to kick Dell of the exchange

http://news.yahoo.com/s/pcworld/20070717/tc_pcworld/134673

Dell gets a free pass after failing to file their earnings reports on time for four consecutive quarters. Why are they special?

()

6:25 AM - Mac OS X Worm?

An anonymous security researcher has claimed to create a Mac Worm for OS X. The worm uses mDNSresponder as the attack vector. For people unfamiliar with that software, it is effectively Bonjour (aka Rendevouz). What I find interesting about this article is that it does not explore the attack vector on other operating systems. Apple open sourced mdnsresponder. It is in the FreeBSD and MidnightBSD ports system and was previously used as an optional feature for many open source projects including KDE. The open source community has created an alternative package named avahi (sp?) that is under a better license than Apple's open source terms. The FreeBSD project has encouraged use of this code instead for many of their ports.

However, Bonjour is available on Windows. iTunes uses it and Apple has shipped it for printer sharing with their wireless routers for some time. The software runs as root on OS X. Presuming there is code reuse with the windows counterpart, this worm could effect many operating systems.

There is a catch though. This service is limited to your local network. It will not traverse the internet. (local subnet) So if I execute the worm at home, it could only infect/attack my other machines but could not go after people in the outside. One caveat is if you use public wireless networks. You could get infected at a coffee shop, work or a university and bring it home to trash your home Mac or PC as well

http://arstechnica.com/journals/apple.ars/2007/07/17/anonymous-blogger-claims-proof-of-concept-mac-worm

()

Mon, 16 Jul 2007

6:45 AM - Will Perveasive Multithreading Make a comeback?

http://ask.slashdot.org/article.pl?sid=07/07/15/1853241&from=rss

In short, no. I've been thinking about this article for a bit of time now. It inspired my NEXTSTEP and BE posts this weekend. The design ramifications do not warrant the work required to write an OS from the ground up like this. Even with some of my private kernel design ideas, I don't think this will ever happen again in a commercial product or mainstream open source product.


location: Home

()

6:40 AM - Open Sound System released under CDDL and GPL

http://developer.opensound.com/

The real question is what do I do with this. FreeBSD has endorsed the CDDL in the sense they included code released under it in the base system. (ZFS and possibly dtrace) Where does that leave us? On the other hand, many of the drivers still have closed source glue which may mean this is useless to us.

location: Home

()

Sun, 15 Jul 2007

Fri, 13 Jul 2007

5:19 PM - oh my two BSODs in vista this week

I had my APC cause windows to hibernate and shut off.  NP there... it should do that.  however, when it came back up it BSOD'd on the APC_INDEX change!  That is not good Microsoft! 

()

Thu, 12 Jul 2007

5:35 PM - Health is Wealth all natural vegetable egg rolls

This product made me laugh today. The flavor I bought is "vegan" however on the back it says it was processed on equipment used for eggs and dairy! I think they need to look up the definition of vegan. Luckily I'm a lacto ovo vegetarian so it's not a big deal to me. I can see some vegan getting really pissed though.

()

4:05 PM - LLVM backend code

http://llvm.org/demo/index.cgi

LLVM is a backend for a compiler suite.  Apple has been working on this project for some time along with many others.  The goal is to get rid of gcc eventually.  This could be another issue for the MBSD project.

I decided to test this. 

#include <stdio.h>

int main(void)
{
    printf("hello world ");
    return 0;
}

result:
; ModuleID = '/tmp/webcompile/_16373_0.bc'
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
target triple = "i686-pc-linux-gnu"
@.str = internal constant [12 x i8] c"hello world0" ; <[12 x i8]*> [#uses=1]

define i32 @main() {
entry:
%tmp2 = tail call i32 @puts( i8* getelementptr ([12 x i8]* @.str, i32 0, i32 0) ) ; <i32> [#uses=0]
ret i32 0
}

Note that it turned it into a puts call!

declare i32 @puts(i8*)

()