Posts Tagged ‘Personal’

Will engineer software for food

Friday, June 9th, 2006

libmozebmed coming along
libmozembed is working! I’m in the middle of attacking a nasty memory leak (which isn’t easy since valgrind and mozilla mixed in Mono makes things just a wee-bit interesting). If it’s not in my ported code of the profile service for mozilla, then its safe to say that I will have something in the svn tonight :-)

I need a job!
Just about that time. It’s been about two months since I left Match.com. I worked there for a little bit less then a year and a half before I left. It was an awesome and very challenging job, however I never took any vacation time and I also worked many weekends. It took a bunch out of me and burned me out a bit, so I’ve been on a bit of a sabbatical since then catching up on some things. Mostly spending my time lately working on Mono, re-sharpening my skills and specialities that I didn’t get to use at Match, doing a few little contracts, and relaxing by the pool. Its been nice not having to worry about deadlines and getting to work on I want and at my own pace.

However, its time to get back to work again…

If anyone is looking for a Mono/.NET, C/C++, or Java software engineer with over 7 years experience in the north Dallas/Plano area, can get in with contact me here:

zac@zacbowling.com or
P:(972)437-6272

I love Google

Wednesday, June 7th, 2006

Google is in court sticking up for our rights where others wouldn’t. I’ve been keeping tabs on what is going on I think its awesome that they don’t give in on their principles.

But then after today’s court battle, Google’s CEO spoke with reporters recently, and publicly conceded and said that he believes that Google might of sacrificed its values by working with the Chinese government in its decision to filter there. It’s getting some press play this morning.

He came out and said specifically:

“We felt that perhaps we could compromise our principles but provide ultimately more information for the Chinese and be a more effective service and perhaps make more of a difference. … Perhaps now the principled approach makes more sense.”

Simply just saying that, openly talking about its values as a company, and having the guts concede something like that, wow! Google aims to loose a large chunk of money if they choose to pull out of china or perhaps pressure the Chinese government to lessen up some its filters or even just talking about it in the first place. However coming out saying that their values might be more important, wow. Google has my total respect for that one. Google just upped its value in my portfolio :)

In other news, my gecko webcontrol (the MWF version) should be ready for testing soon. Mozilla’s profile service gave me some unexpected hickups that I’m just finishing up on overcomming. Stay tuned… :-)

Flash for Linux, libmozembed progress

Wednesday, May 31st, 2006

It would be nice to have flash.
Don’t expect a release worthy edition of a new Flash for Linux until 2007 from Adobe/Macromedia. A developer with Adobe/Macormedia blogged that they are working on it. I’m not very impressed. They said a new alpha would be released very soon but they started saying that over 1 year ago. (Yes I understand that Flash 8 introduced a homemade GC so it made it hard to port and why its been hard to move to x86_64, but yeeesh).

libmozembed progress
libmozembed is getting closer and closer. I’m finishing up on a bunch of tedious parts right now. It’s working, and I should have some rough screenshots soon when I remove a bunch of inline stuff and make it re-sizable and able to move from location to location. Right now it freezes right after the first page load because of some workarounds I was using to be able to see what I was doing before while building up the underlying scaffolding that makes everything work. Now its just the tedious task of removing everything like that and remove all those annoying printfs (poor mans debug, since most of the dump stacks I get via pinvoke on the unamanged side sort of stink). Should be commit ready very soon to start alpha testing the Mozilla control for System.Windows.Forms/Managed.Windows.Forms control (not the IE API compatible version yet). I’m guestamating next week before its ready for that.

Picasa for Linux

Tuesday, May 30th, 2006

Google released Picasa for Linux. At first glance, I would say “thats awesome google”, however…

Instead of porting to Linux, they simply made the win32 version more friendly with WINE by contracting codeweavers to help. You can see the quite hefty list of patches here: http://code.google.com/wine.html. Wine adds an extra 13mb on to the download. Mozilla adds and extra ~20MB (since they have to package a Win32 version of Gecko that runs under wine). Before its over you wasted around 50MB in just emulating Windows to make the thing work. Yeesh.

Thanks Google for thinkng of the Linux crowd. Its just that Wine is best served for running Windows applications on Linux when you have too rather and not the best choice when then targeting targetting Linux. I think there are easier and cleaner ways of doing this then using Wine. Picasa is cute, but its not that special of an application. It doesn’t have that many moving parts really. How about instead of trying to use Wine and hack together a release that direction, try expanding Mozilla’s XUL to be the new UI for Picasa maybe. I’m sure that if you of spent an equal ammount of time working on a more conventional method using a better esstablished cross platform UI toolkit and released what you had and even if wasn’t as powerful, the Linux crowd would latch on to it more.

OpenNIC

Monday, May 29th, 2006

Now this is cool and dearly missing from the internet. A democratic alternative to the root DNS offered by ICANN.

http://www.opennic.unrated.net/

I’m getting sick and tried of these new root namespaces being dulled out by ICANN. I mean seriously? .jobs??? Thats the biggest joke I ever seen. ICANN doesn’t function correctly anymore. The power of the root DNS need to be switched over to a better working body. ARIN is getting on my nevers too with the IP allocations as well. RIPE seems to be more friendly then ARIN now days.

I love how OpenNIC’s website referes to anything ICANN as legacy, and OpenNIC is open to partnerships to run your own top level root. Might submit a proposal for a .mono root later and host it…. Maybe not… Cute thought though

reverse p/invoke and libmozembed

Monday, May 29th, 2006

I’ve been hacking on libmozembed all week. Complete with the tons of headaches and victories that go along with it.

I came up with a pretty cool model for doing reverse pinvoke in a massive fashion. Instead of creating a delegate around each method and then pass each one to the unmanaged layer one by one, I decided to go the route of creating a struct strictly full of delegates to hold all my callbacks. I marshal that struct on the unmanaged side to a struct full of function pointers. Because its a little tedious writing a new delegate around each function, I went one step further and wrote an interface that declares all the functions required for each off the callbacks and wrote a nice little static little function wrap any instance of that interface in each of the required delegates. It’s nice and clean if I don’t say so myself. :-)

I’m currently wrapping up a bunch of the interfaces in mozilla to give us full control in the managed layer over things instead of the wrapper automatically assuming the most generic implementation like I was doing before. I decided that this was the best route when I hit a few places in the code like the profile and window creator and some of the other services I have to create anyways. I’m even opening up some the basics so that when the xpcom stuff is ready, we should be able to integrate XPCOM layer with everything. (Mostly just opening up my XPCOM wrappers and providing a few functions to get my running instance of the core XPCOM services that I’ve already created for use by the XPCOM wrappers)

I’m really moving to the route of integrating XPCOM to supplement everything past the basics. I think it’s going to be the best solution in the end. I think I evolved through the entire thought process that the Mozilla and Java integrators went through over the past 6 years in just a little less then a month and came to a very similar conclusion in the very end. The greatest part is that we can do it better then Java could ever do because of limitations with JNI and in what Java can support itself. Mono has Reflection.Emit and compared to JNI, pinvoke rocks. Where Java has always had to generate a JNI stub for (up until the latest breaking code and very unstable code), we do not need to thanks to the magic of Reflection.Emit.

I’m completely avoiding any requirement on any bit of the XPCOM wrapping stuff to get the use the basics with the browser embedding. It’s just when you want to access things like the DOM, the printing interfaces, the spell checker, and the thousands and thousands of other goodies, will you need to use the XPCOM interfaces. When its done, everything should play well and while still manually handling the gecko embedding parts. It will also make things more stable and faster in the end when it comes to straight up gecko embedding. Maybe some day in the future (maybe next year or something) we can even just go right to XPCOM for doing everything.

Also in a high level respect, I noticed that I’m going through the exact same struggles that the Mozilla ActiveX control guys went through. They wrap Microsoft’s IE api as well. However where they have COM and only work on Win32, I’m wrapping it at the layer that tlb2asm eats it up. It’s a bit interesting to say the least.

Oh well. Back to work.

Mono can make your day.

Tuesday, May 23rd, 2006

This is a topic that many of us mono developers know really well. but many of you might be new to mono or maybe even just merely fans of mono. Maybe you syndicate mono’s monologue feed but never really have had a chance to use it, but because its .NET related, its interesting. These tips might interest you.

Even though you might not plan on using Mono in its entirety, parts of Mono can help you with your .NET development. From a evangelist respect, I would love everyone to use Mono, but being a developer I know that isn’t always possible. Fear not, you might still be able to use Mono to speed your time to market, solve some of the issues you might be having, and more conventionally help you understand where you might have portability issues in the future.

Use Mono’s source as reference guide
First off, its good to know where you can see the mono class library source. The best way to view the source online without downloading is using the SVN viewer. Bookmark this url: http://svn.myrealbox.com/viewcvs/trunk/mcs/class/.

Even though our class libraries don’t work 100% exactly the same as in .NET, we modeled them to match .NET as close as we possibly could. If you know C#, they are easy to understand in most cases, and sometimes its more useful looking at the source code to see what a function returns, then to poking around in the MSDN docs when something isn’t specific enough and just testing things over and over takes to much time.

One example where I found this useful today is when I had an error in some 3rd party code that ran peek on a stream reader to see if there was any data to be read. Simply reading the source I noticed that really it just checks the Stream.CanRead property and since peak would return a char and the stream defaulted to UTF8 and since the byte value it was reading didn’t exist in the UTF8 encoding, it would crash.

Mono’s Secuirty and LDAP libraries
If you need more then what System.Secuirty and System.DirectoryServices offer you, you can use our Mono.Secuirty and Novell’s LDAP assemblies in your app. They are written in C# and copy nicely being CLI compliant and all, so they run on .NET without issue.

Use Mono class libraries to supplement missing APIs in Windows CE .NET
While I haven’t done this, if you really need something that isn’t offered in the CE edition of .NET, then mono’s implementation might be exactly what you need. Our class libraries are writen in C#, we try to minamize as many calls to native functions as possible (doesn’t help when we want to keep things portable). All you need to do is strip out what you need and refactor it in to your source.

Oh did I mention that Mono’s class libraries are released under the MIT/X11 licence? MIT/X11 is one of the most liberal licences out there. That means you can almost do anything you want with the source without risk of any licence clause stopping you.

Monodis
This is a small one. It’s our version of ildasm. I found that it can break down assemblies to IL a bit clearer then ildasm. One of the great uses is when you run into some library in-lined with some hack to prevent ildasm from working, monodis sometimes still works.

Broken/Missing feature in your favorite ASP.NET control?
This happened to me a few times. You want that DataGrid or DataList or Calendar object to do something it just doesn’t have the power to do. What do you do? You take the version in Mono’s System.Web namespace, change it, and compile and enjoy.

For example, lets say you want a 14 day calendar or a calendar that shows 14 days in a row? Simply snatch the code (http://svn.myrealbox.com/viewcvs/trunk/mcs/class/System.Web/System.Web.UI.WebControls/Calendar.cs?view=markup), make the few changes you need, and enjoy! You just saved yourself a ton of time hacking something yourself.

Managed.Windows.Forms
Our System.Windows.Forms stack is completely written using System.Drawing/GDI+ (makes it very portable). One of the advantages is that the controls we wrote can be modified and refactored with little effort into MS.NET. Let’s stay you want a text box that does all sorts of colors, or you want a rich text box that supports some crazy feature (like shadowed text or something). Just like the asp.net control example above, you can strip out what you want and make it happen, in a fraction of the time.

Mono Tools for Visual Studio
My good friend Paco Martinez is the Win32 king. He has put together a number of projects that integrate with Visual Studio to help you check your code against mono as you develop. You can see most of his packages on Novell Forge here and here. His tools are a must have.

XSP
Simply, because its better then Cassini for a standalone ASP.NET server. Also the licence allows for distribution, so you can package your ASP.NET up for people to run on machines without IIS and not have to worry about restrictions or limitations compiled in. XSP is also the back end to our mod_mono module for apache, so you are not using a diluted version.

Mono’s Debugger
Ok.. It’s not visual studio. But many people who are used to gdb or any other command line debugger, may find its familiar and useful.

Complete Control
This really isn’t a tip but an example. I’m personally aware of one company that has taken and extended Mono’s web-service stack into their own code to improve compatibility with Java and write in support to expose and consume methods with XML-RPC in the same layer.

Mono can be an invaluable tool. I know it has been for me over the last couple of years in my own development.

ASP.NET Appliance

Monday, May 22nd, 2006

Soekris + XSP + Mono (compiled on uclibc) = $200 ASP.NET appliance

I’m still trying to find a good practical use for this but I got my Soekris net4801 running Mono (which I compiled against uclibc) with XSP.



I think I might regret this later, but you can see it hosting a little aspx page here that runs a few apps and pipes them to the response stream. (Might go down later.. not really built for high traffic :-P)

(Ignore the 40GB mini hd in the stats and the pic. That is for squid for my caching. Everything is running off the 1gb CF card. Also the RAM is wrong that comes from hwinfo. I only have 64mb but it thinks the CF card is ram.)

Neat stuff :-)

JaCIL, 24, Online Food Ordering

Sunday, May 21st, 2006

JaCIL

This looks interesting. JaCIL (pronounced “jackal”) is a project that aims to be able to provide the capability of running CLI code on the JVM and visa-versa. Underneath, it leverages Mono’s Cecil to help tackel some of the hurdles.

You can read the anoucment from the author here: http://lists.ximian.com/pipermail/mono-devel-list/2006-May/018573.html

24

I don’t watch 24 but there is a lot of press because it’s the finial episode or something. The most interesting story is the dude that noticed that the clock on the show isn’t a real clock.

Online Food Ordering

Ordering online right now and I just had to talk about this.

This drives me nuts. Pizza Hut uses this company that provides this software called QuickOrder on their site for online ordering. It breaks so many rules of good design. The most anoying “feature”, is that the back button will corupt the entire order (their little javascripts to detect the back button don’t really work). Oh and anyone like DHTML layered popups? The new version is now “AJAX” powered, just for the sake of being AJAX powered and not because it solves any problems. This site is completely useless if you don’t support Javascript. Konqueror just about melted when I used it tested it out just for kicks.

QuickOrder is used on some other sites such as Dominos and a bunch of smaller resturants. I don’t know how. Do people even demo their stuff before buying in?

In contrast Papa John’s online ordering system is awesome. They used to use Food.com (years ago in the pre .COM boom era when Food.com had an online ordering system), but decided to write one on their own. Nothing special. It’s a traditional web app. Its clean, it provides everything it should (user registration, profiles, password recovery etc), and it works even under the worst conditions. Praise the Papa for good design.

Another really good one I found is Jason’s Deli ordering system. This one is written in ASP.net and it’s very new on the block. I’m sure it doesn’t see the traffic as the other two, but yet it works quite well and has a cute little charm to it.

Oh well. Slow day of code.

done!

Friday, May 19th, 2006

I’ve done a bunch today… Just after posting my last blog post on libmozembed, I spent a few hours and knocked out milestone 2.5 and 3.0 in nearly 1/5 the time I though it would take. No more Mozilla SDK required now that I’m dynamically invoking xpcom’s glue.

:-) YEPPIE! :-)

Now time to clean up the binding, add a few helper functions, and get to work on the rest of everything on the managed side.

libmozembed

Friday, May 19th, 2006

I’ve been going non stop of this Mozilla embedding code. I’m getting so far.

I’ve laid out some milestones for myself when I started. Here is where I’m at:

  • Milestone 1

    • Fork gtkembedmoz into a new component. Remove references and dependencies to GTK+ bring in parts from other embedding implementations. Get it to compile. (Exact way the Java Web client was created so I though it was the best route to go). Design and write basic invoking wrapper to be used by p/invoke later.
    • Difficulty: Easy, just lots of work
    • Status: Completed on 05/07
  • Milestone 1.5

    • Separate code base to the project build outside of Mozilla’s code tree and without having to build it in-line during a normal build of Mozilla
    • Notes: Built project skeleton up, wrote macros for autoconf to find Mozilla sources and libs (pkg-config doesn’t exactly work for what I’m doing).
    • Difficulty: Hard
    • Status: Completed on 05/12
  • Milestone 2

    • Drop all references to all internal and private classes in Mozilla. Switch to embedded string classes. Bind ONLY to Mozilla’s xpcomglue and embed_base_s libs.
    • Notes: Now compiles against latest Mozilla SDK or SDK directory in your dist folder of your Mozilla and using the standard development headers. No need to build Mozilla to get it to work. Begin work on C# wrapper and wrote a very minimal implementation to start testing.
    • Difficulty: Hard
    • Status: Completed on 05/18
  • Milestone 2.5

    • Drop emed_base_s lib dependency by handling Mozilla XPCOM startup and shutdown ourselves
    • Difficulty: Fairly easy
    • Status: 100%
  • Milestone 3

    • Drop dependency on xpcomglue lib and bind directly to xpcom. This will make it possible to build the binding without having to download a binary SDK or build Mozilla to extract the SDK from the build to link against.
      This step still remains to be seen if its completely feasible. The best why to find out is to try and do it.
    • Notes: this may require dropping nsSupportWeakReference which I’m not sure what the effect will be yet.
    • Difficulty: Hard
    • Status: 100%

You can see some of the specifics on the Mono wiki.

Google Analytics

Wednesday, May 17th, 2006

I signed up to get an invite about 3 months ago, and I’m still waiting.

Might get one from ebay for $100-200. http://search.ebay.com/google-analytics_W0QQfkrZ1QQfromZR8

Maybe not…

Subversion, MSDN, Mozilla+MWF

Tuesday, May 9th, 2006

Subversion

Subversion is finally putting the last nail in the CVS coffin it seems. All but GNOME and Mozilla’s CVS are the only two of the most mainstream active projects I know that still stuck using CVS. I can’t figure out why GNOME hasn’t switched yet, but I know its going to be a bit of trouble for Mozilla with the make scripts, lxr, and anonymous mirrors.

Also the ViewCVS project has now been renamed now to ViewVC as of 1.0, and has taken up residence on tigris.org with SVN itself.

Bye Bye MSDN

After having an MSDN subscription on hand for over 10 years, my MSDN sub. is now gone, expired, and dead. I just couldn’t figure out why I needed it anymore. I’m sure I will come to a point where I will need it again, and I might buy a new one in the future. So far I’ve done just fine without it for over 4 1/2 months without it.

Maybe, I might buy another next year… blah… maybe

Mozilla control for MWF

No more compile errors from Mozilla’s headers! Whoohooo. Still lots more work to do. I have to thank the Epiphany guys and the Galeon guys a ton for their help.

Seems I have to directly break some of the documented rules with Mozilla’s embedding API because some of the headers in Mozilla don’t follow them either in some of their unfrozen APIs. From what I gather from everyone though, it’s not that bad calling the unfrozen interfaces in there. Usually requires a few nights of hacking after every major release of Firefox/Mozilla to keep everything working and I don’t mind doing that. Not like we are going to be doing anything that special (hope those aren’t famous last words). I’ve got Firefox 1.5/Seamonkey/XULRunner support right now and I’m nearly there for supporting backword compatablity with Firefox 1.0/Mozilla 1.7.

I was going to go crazy on features since its so easy to tie in anything in there, but I don’t know which part will get rewriten in the next Mozilla based incarnation to be released. I used gtkembedmoz as the main basis for about 50% of my code, so I already support just everything it offers already. I’ve also added support for getting more information from the click and key press events, and I’ve added the ability to disable a few features that you might not want (frames, plugins, images, meta-redirects, etc). I even added support for forcing a repaints, and accessing and consuming a lot of events like before a URL change or on any click or keypress that happens.

However, currently, I’m debating on adding:
* Print/Print Preview support
* Access to the clipboard and the selected text in the window from code
* Access to cookies, history, cache, etc.
* Access to Mozilla’s configuration settings (for reseting the default font’s, text size, etc)
* Access to evaluate Javascript (even get a boolean return code) in the page and get even catch Javascript error callbacks (Galeon does this).
* More networking control (proxy, file handlers, etc).
* DOM integration - will have to be with the XPCOM bridge (unless someone wants to wrap the huge root nsIDOMElement class, the root of all elements, in C for me :-P)

All these features, with the exception of the DOM access, is very easy to add, however the more I add, the more any change in Mozilla’s codebase in the future could make it easier to break.

I think I’m going to play it by ear when wrapping the WebBrowser API in MWF to see where I get too.

Web Control for MWF

Sunday, May 7th, 2006

I’ve still got a lot of work to do before its ready, but I’ve started work on a new Gecko based web control for both Managed.Windows.Forms (for Mono) and System.Windows.Forms (for MS .NET). I just stuck some of the code in a new directory in the SVN called “mozembed” (see it here).

It’s not compiling out of the box yet and I’m working on backwords compatibility with Mozilla 1.2-1.7 and Firefox 1.0.x. Currently only Firefox 1.5, Seamonkey 1.x, and maybe XULRunner will work (and you have to bootstrap with ‘-DFIREFOX_1_5′)

One really nice part, is just like our version of libgdiplus, I’m planning on leaving the native library completely open for anyone who wants to consume it for whatever they feel like for a simple way of embedding gecko without having to do deal with Mozilla’s massive embedding API.

None of the managed code is in there yet (still changing to much to post it in since its based on older versions that I got to compile in the past week). The configure.in file needs some magic (autoconf, “That’s Hot” (R) )

Lots of work still to do. :-)

My name is Zac Bowling, and I approve this message.

Mono in the press.

Saturday, April 29th, 2006

Mono is pretty big and gets tons of press attention all the time. Nothing to special at this month, but I though I might link a few articles that caught my eye.

Article on Linux.com talks the ease of Mono and the ability to recycle your .Net programming force.

Article on Goverment Computer News talks about Mono on Novell Linux Desktop.

Article on Mono in The .NET Developers Journal about the history of Mono in light of Mono’s up comming 5 year anniversary.

Hire a Mono hacker!

Wednesday, April 5th, 2006

After putting in a little over a year with Telligent Systems working for Match.com, I’m moving on. I learned so much, and I have to to say I had a ton of fun.

That means I’m on the hunt looking for something new. Specifically, I’m really looking for somewhere that I will have me hacking Mono everyday again. I’m also very open to moving out of Dallas, but that all depends on the job. I should have my resume back on my site later tomorrow if anyone is looking for new talent. :-)

Google Finance

Tuesday, March 21st, 2006

Another Google service is out called Google Finance, and it really is pretty neat. Surprisingly Google went with Macromedia Flash to animate its really nice charts instead of XMLHttpRequest+DHTML (AJAX) approach usied in Google Local, GMAIL, and in other various other services.

These charts provide something that I always found missing. When there is a peak or high volume day, I always want to know why without having to do a ton of research to find what happened. Some sites provide a new ticker about the company, but can’t correlate the news to the stats. Like when researching a company history, its always hard to match the day when a stock peaks or falls to the news stories printed on that day about the company, it’s competitors, or the market at whole.

You can see here with Novell’s stock. You can match the day that the Q1 statements where out to when Novell’s stock dropped a point or two (which now it looks like its slowly gaining again).

Another interesting feature that Google added was a blog post ticker which shows recently updated blog posts about the company. (I wonder if this post will show up on there? :-))

Disclaimer: IANAL, but I should maybe mention that I don’t work for Novell but I do have an intrest in them.

Tags: Novell AJAX Google Flash

Second Life

Friday, March 10th, 2006

After hearing from Miguel back in September, talking about Second Life was currently planning on using Mono’s VM to embed into Second Life and switch their system over to compile Second Life’s scripting language (LSL) into CLI, I was floored. The thing was that I had just had my first run at Second Life a few weeks before that and just had recently became addicted.

To be completely honest, I was sort of annoyed with it at first. It has a bit of learning curve. However after working at it for 30 minutes, and giving up, I kept coming back to it. It’s like a drug. I couldn’t really get over what I was looking at (and if it was real), it is HUGE. Well since then I spend at least 6 hours a week tinkering around in my Second Life world. It’s amazingly addictive. You can pretty much do anything you can program. People have made casinos for gambling, fully working air fields, clothing stores, houses and reality for sale, elf farms, dance clubs, and some women running around in some very skimpy clothes. Though, I don’t think that I was really hooked until this one guy. This one who thinks he is Santa, who flys around in Sleigh he created, around his ice palace, creating toys for all the kiddies. He created everything himself. Anyways, everyone has a Second Life story.

Anyways. Here is an amazing video presentation the guys at Second Life gave to the guys at Google. Its a good hour to watch so here is a good tip: jump to 14:50 to hear about the scripting technologies and at 15:34 you will hear about how they are using Mono.

(No, I won’t tell you how to find me in Second Life. I keep my personal, work, and Second Life completely seperate :-) ).

P/Invoke Callbacks

Friday, March 10th, 2006

Everyone likes freebies, so here is a somewhat simple example on of how to do p/invoke callbacks in C# and C with Mono. Enjoy. (Of couse, it requires a mono+mcs, a C compiler, and make)
http://www.polystimulus.com/PinvokeCallbackTest.tar.gz

Keywords: pinvoke, delegates, function pointers, callbacks

Blog Ping List

Wednesday, March 8th, 2006

Looking for services to ping to get your blog known? Well I compiled a list of 69 of them. Enjoy. Oh yeah, Wordpress users should maybe install the “No Ping Wait” plugin before trying to ping more then 10 or more of these at a time.

http://polystimulus.com/pinglist.txt

Update: switched to link instead. For future reference, having a 85 line long post with list of urls, sort of anoys some people who are syndicating you.