MahTweets v2.5 Beta

9 September 2009 Tags  

MahTweets v2.5 Beta 4 was released a few days ago, the entire 2.5 series has only been publically floating around for a couple of weeks, and we’re just about to hit 300 users (according to the Twitter OAuth control panel)

Capture

This version isn’t just me – a big thanks to the team of WillHughes, NickHodge, UXLuver and Shiftkey – those guys have really made MahTweets awesome.

So what are the big changes from the earlier 2.0 release? Well, it’s been nearly a complete rewrite.

  • Multiple account support
  • Facebook support
  • Extensible, plugin based architecture using Managed Extensibility Framework
  • Url shortening
  • Multiple uploading services (Flickr, Twitgoo, Twitpic, Yfrog, Thumbwhere)
  • Theme support
  • Multiple column support
  • OAuth authentication for Twitter, and over HTTPS/SSL meaning MahTweets is more secure than most of the other clients out there
  • IronRuby support

Don’t forget the other fairly awesome features like

  • Webcam support
  • Quick adjusting/filtering of columns
  • Open source under MS-PL license

This version has been getting some good press too!

"the rest integrates a very few functions and only allows a maximum check for updates, and post new tweet.

But now we have a valid alternative, that even though developing, already shows its remarkable quality."

via TuttoVolume.net

Want a good Twitter client for your Windows system that doesn’t necessitate installing Adobe Air? Check out MahTweets.
If you’re willing to overlook the…er…interesting interface, MahTweets is loaded with features.

via DownloadSquad

Then @aeoth create MahTweets. It’s MS-PL. It’s extensible (via MEF). It has IronRuby for scriptable extensibility.

It is awesome.

Use it. Contribute. Let’s make the world’s best WPF Twitter Client.

via Nick’s MSDN blog

If you’ve got any problems or suggestions, head on over to our UserVoice page and leave some comments.

The source code can be found at codeplex, or the installer on the MahTweets feature page.


Comments Off
 

Review: [PROTOTYPE]

7 September 2009 Tags  ,

prototype-1-1280x960

[PROTOTYPE] launched earlier this year on PC, Xbox 360 and PS3, developed by Radical Entertainment. Released during June 2009, it was part of several largely hyped, third person, sandbox games launching this year, including inFAMOUS and Red Faction: Guerrilla. I’m late on my review, I know.

This genre has really been defined and refined by the Grand Theft Auto series – the only true standout in the genre thus far, so there are some unavoidable comparisons.

Story

The story goes something like: You’re Alex Mercer, you wake up in a morgue remembering little other than your name, and discover you’ve got two problems: one, you’ve got super powers, two you’re being hunted because you’re infected/have super powers. These super powers give you the ability to shape shift your body into various weapons and armour, as well as take the form and memories of other people by consuming them.

Given the game is of the sandbox genre, it would be fair to expect [PROTOTYPE] to suffers the same as all sandbox games when it comes to pacing. It’s hard/impossible for the developers to set the pace of the game and story when the player is the one who is ultimately calling the shots. It also makes it harder to tell the story as its being interrupted by the pesky player going off and doing side missions. Unfortunately, Radical took it upon themselves to make it even more difficult on themselves by not revealing all of the story unless you “consume” certain VIPs – who are weak and fleshy and will die if you run into them a little too fast.

Gameplay

Like the majority of the Grand Theft Auto series, [PROTOTYPE] is 3D, but unlike GTA, that really does mean every possible direction and dimension – half the game is played on the rooftops or climbing skyscrapers. While it looks and feels awesome to be gliding or scaling huge buildings at first, it becomes tedious as its a rather slow way to move around a rather large city. Red Faction: Guerrilla suffered from the same problem where transport (cars) was the weakest element in the game.

For the most part the difficulty curve is… absolutely broken. The first level is “somewhat towards the end” of the game, a psuedo-tutorial if you like, where you have all your powers/abilities at your disposal. When the level ends, you go back to retell your story to a shadowy figure, losing all your abilities. Assassins Creed did the same thing, and frankly I find it more frustrating than anything. However, this isn’t what breaks the difficulty curve. The game flipflops between being stupidly easy, and setting you up against boss fights or the like which require 10-30minutes because the opponent has so much health/armour that your weaponry – which carves through tanks – is ineffective. Then throw in a section where you lose your abilities? Yeah. Great.

The control system wasn’t exactly intuitive either, which didn’t help the combat system. The combat system lets you activate a variety of powers, the more powerful “moves” resembling more of a Street Fighter/Tekken combo system which (at least on PC) lead me to do one thing – spam light attacks. It was far too easier just to use the “Blade” and just a general “attack” rather than the “twenty five button combo that cuts everything down, but takes three minutes”.

Overall

There are some genuine highlights in this game that you are very unlikely to see in other games, such as the ability to kick a chopper and make it explode. The novelty of these sort of features runs out quickly as the game shows its a little too repetitive.

Overall the game isn’t bad, I’m happy saying that it is good – but it is not great. The poor story, repetitive gameplay and dull graphics (again, they weren’t poor, but they were certainly not great, and the repetitive scenery did not help) are the main detractors, while sense of freedom, encouragement to destroy everything, and some unique gameplay movements are the attractors.

2.5/5

rating_starrating_starrating_halfstar


Comments Off
 

WPF WTF #3: ListBox/View, Virtualising

5 September 2009 Tags  

In .NET 3.5 SP1, WPF saw some fantastic performance increases including one of my favourites – the virtualising stackpanel (VSP). VSP’s meant that the items in a listbox/etc that aren’t on screen aren’t rendered – they’re virtualised. This provides memory and CPU performance increases.

VSP has two modes, Standard and Recycling, where the latter reuses the UI containers when it can, just changing the content, doing this saves even more memory.

And here is what happens when I enable VirtualisingStackPanel on a ListView in MahTweets.

image

That looks a little more than 140 characters per tweet – it starts combining the text in items. Fantastic.

If I use an ItemsControl (which Listbox/View are derived from), everything works fine – but ItemsControl has its own problems.

Note, this happens with any textbox/RTB I’ve tried in a ListBox/View with Recycling enabled, not just with my fancy ItemTemplates.


Comments Off
 

WPF WTF #2: Opacity

29 August 2009 Tags  , ,

3866195696_feccd17706

On the left is WPF, on the right is WinForms, both have this.Opacity = 0.5; as the only code behind the button.

The WinForms example, as you can see, is semi-transparent and would shown whatever is behind it (if there was something behind it)

The WPF example, however, just "dulls" the contents of the Window rather than making the whole thing semi-transparent. The way to do it is to set AllowTransparency="true". However, that means WindowStyle must be set to None, which means you lose the chrome (the ‘glass’ around it), the minimise, maximise and close button, so you have to create and control those, as well as manually resizing the Window and manually controlling moving the Window.

I tried P/Invoking the Win32 libraries to set opacity and they work perfectly… on WinForms. They fail miserably in WPF.

I’m happy to be corrected if anybody knows a solution.

Opacity earns this weeks WPFWTF award and leaves us scratching our heads with the slogan, WinForms: Back To The Future.


Comments Off
 

Expression Studio 3, XNA Game Studio 3.1 and Robotics Studio 2008 R2 on Dreamspark!

19 August 2009 Tags  , , ,

This was originally posted on the Deakin Student Partners Blog

In the words of Hubert J. Farnsworth, "Good news, everyone!" – Expression Studio 3, XNA Game Studio 3.1 and Robotics Studio 2008 R2 are all now on Dreamspark, free to students! Expression Studio 3 brings some awesome improvements to.. well.. every product in it – Blend 3 + SketchFlow, Web + Super Preview, Encoder now has screencasting.

expression_studio_3_photoscope

Expression Studio 3 Highlights

  • Expression Encoder 3
    • Improved H.264
    • VBR Smooth Streaming
    • Source CODECs
    • Audio Enhancements.
    • Performance
    • Live Encoding
    • Screen Capture
    • Improved profile pallete
    • Silverlight 3 Media Players
    • New player skins
    • API Enhancements
    • Win7 Integration
    • SDK "in the box"
  • Expression Blend 3
    • SketchFlow – Sketch WPF/Silverlight interactive prototypes.
    • Photoshop and Illustrator support
    • Styling Controls: Creating templates from artwork
    • Styling Controls: Creating TextBox Templates from Artwork
    • States: Improved Support for VSM
    • Interactivity: Behaviors
    • Working with and Generating Data
  • Expression Web 3
    • Super Preview – view side by side comparisons of your website in Firefox, Internet Explorer 6/7/8 and more
    • Publish with SFTP/FTPS
    • Improved Photoshop PSD support – import just the layers you want!
    • Silverlight support – uses Expression Encoder 3 to encode (nearly) any video you want to Silverlight and embed on your site!
    • TFS SC support
    • Deep Zoom Composer support


XNA Game Studio 3.1 Highlights xna_20

  • Avatar Support: Render and animate Avatars to use in your game to represent gamers and other characters within your game.
  • Xbox LIVE Party Support: Enabling gamers to communicate, even when each gamer is not playing the same game in the same multiplayer session. LIVE Party supports up to an eight-way group voice chat for gamers and keeps gamers connected before, during, and after a gameplay session, persisting across title switches.
  • Video Playback: XNA Game Studio now supports the ability to play back video that can be used for such purposes as opening splash and logo scenes, cut scenes, or in-game video displays. This set of XNA Framework APIs supports the following features:
    • Full screen video playback
    • Video playback to simple textures in game
    • Control of playback such as pause/resume and stop
    • Retrieve properties of the video, such as playback time, size, and frame rate
    • Determine the type and usage of the audio track, such as if it has music, dialog, or music and dialog
    • Play back multiple video streams at the same time
  • Audio API: 3.1 has a new usage pattern of SoundEffect.Play. Sound instances created by Play calls are disposed automatically when playback ends, and SoundEffect.Play returns a Boolean to indicate success or failure.
  • Content Pipeline Enhancements: improvements making it much easier to add custom types (custom attributes for run-time of an object and run-time type version of an object, and the ability to determine if deserialization into an existing object is possible).
  • XACT3 Support: includes support for XACT3 with new features including the ability to enable a filter on every track, and support for the xWMA compression format.
  • Visual Studio Changes: XNA Game Studio 3.1 supports both 3.0 and 3.1 projects, and it includes support for upgrading projects from 3.0 to 3.1.

Comments Off
 

WinMo 6.5 SDK DVD giveaway

6 August 2009 Tags  ,

IMG_2248

I’ve got 15 copies of the Windows Mobile Developer Tools, which contains everything (minus Visual Studio) you need to get started on enter the Student APPrentice competition.

These DVDs include

  • Windows Mobile 6 Standard and Professional SDK Refresh
  • Windows Mobile 6.1 Standard and Professional Images
  • Windows Mobile 6.5 Standard and Professional Developer Toolkit (which includes the 6.5 Images)
  • Codemason’s Guild Live Meeting videos

It totals up to 1.76gb of SDK goodness, which can be a pain to download.

If you want one of these 15 DVDs, use the contact form on our about page to give me your name and postal address, and I’ll get these out as soon as possible! First come first served basis.

Oh nuts, you don’t have Visual Studio? As a student you can get it for free via MSDNAA from your University or from Dreamspark.


Comments Off
 

WinMobile "Debug" Events

3 August 2009 Tags  ,

 

If you’re interested in the APPrentice competition but have questions on the inner workings of the Windows Mobile Marketplace? Well, the Codemasons guild are holding a series of (free, I think) events on down the east coast of the country.Codemasons_2

Next week we will be holding a series of events to help developers get their application development moving for Windows Mobile 6.5 and into Marketplace.

These Debug Days will be held from 4.30pm till 9pm on;

  • Monday August 10th – Microsoft Brisbane, Level 9 Waterfront Place, 1 Eagle St, Brisbane
  • Tuesday August 11th – Microsoft Sydney, 1 Epping Road, North Ryde
  • Wednesday August 12th – Microsoft Melbourne, Level 5, 4 Freshwater Place, Southbank

We will provide an update on Marketplace, the signup/registration process, and the guidelines.

The evening is then over to the developers – so what are the topics you want out MVPs to cover – let us know;

  • post your comments to this post
  • Tweet James McCutcheon or Nick Randolph on Twitter

We’ll update the topic lists here @ WMOZ, @ the Codemasons’ Guild, and James/Nick will Tweet as well.

Rego links coming soon – but slot some time in your diary.

PS – we’ll have some drinks & food on hand as well :-)

via WinMoOZ


Comments Off
 

Windows Mobile Competition: Student APPrentice

3 August 2009 Tags  ,
Windowsmobile_new_logo
I’ve been very slack in posting this, sorry Karo!

Microsoft AU are running a competition for students to celebrate the upcoming launch of the Windows Mobile Marketplace.

howdoiDon’t worry, if you don’t have a Windows Mobile phone you can still create apps for it, thanks to the device emulators in Visual Studio. Remember students can get Visual Studio 2008 Professional for free directly from Microsoft at www.dreamspark.com

If you’ve never thought about developing for Windows Mobile, it just uses the .NET Compact Framework – so the chances are if you’ve used Visual Studio before, you can write a mobile app.

However, if you want to learn a bit more, there are some excellent videos up on MSDN entitled “How Do I? Videos For Devices”.

 

The competition closes AUGUST 17th! Details about the competition are below, or the full details can be found at the Codemasons Guild.

What’s up for grabs?

The two successful applicants will win:

  • A full pass to attend Microsoft Tech.Ed on the Gold Coast, from September 8–11, 2009 (which includes a complimentary HP Mini 2140 Notebook PC, worth $990 (recommended retail price))
  • A return adult economy airfare to the Gold Coast from your nearest capital city
  • 3 nights accommodation at The Crown Plaza Gold Towers on the Gold Coast in a standard room
  • A session with a Microsoft Most Valuable Professional (MVP) mentor during Tech.Ed
  • Tickets to Smackdown on September 11, 2009, where the best Windows Mobile app will be awarded to the overall winner!
Who can enter?

To be eligible to enter the APPrentice competition, you must be an Australian resident aged over 18 years or over, who is currently enrolled in a part time or full time undergraduate or postgraduate course at an Australian University or TAFE institution.

How do I enter?

Entry is via email only. To enter, provide the required information and attachments below and send to codemgld@microsoft.com before 11:59pm (AEDST) on August 17, 2009.

Your entry needs to include the following information:

  • Full name, contact email address and a contact phone number
  • Your Mobile application name
  • The genre that your Mobile application fits into: Game/Entertainment/Utilities/Communications/Music & Video/Lifestyle/Finance/Business/Health, Sport or Fitness/Productivity/Travel/Education
  • A 300 word or less description of the application you are developing. Your response should include the operation of the application, the type of device it would target, if it would be a free app or paid app, and why you think someone would want to buy and download your application.

Your entry must include the following attachments:

via Codemasons Guild (MSFT AU)


1 Comment
 

WPF Controls incompatibilities? WTF

27 July 2009 Tags  ,

While reviving MahTweets I ran into severe performance problems, which were incredibly difficult to track down as none of the profiling tools I tried could really pinpoint the issues. The two issues were, while there were tweets being displayed

  1. Typing into a textbox with TextWrapping enabled could cause up to 25% CPU usage on my quad core desktop machine (or ~60% CPU usage on my laptop) and,
  2. When the webcam was enabled (so I’d presume the InteropBitmap that was being used to display it), everything would still function except the UI would ‘lock up’ and not respond to mouse/keyboard controls, and consume similar levels of CPU cycles.

It turns out both performance issues were related and the key was the datatemplate I was using in the ItemsControl (or ListBox or ListView) to display the tweets. Inside the datatemplate, I used two custom controls which both made us of the Hyperlink inline element to act as.. well.. links to either other functions to launching browsers at particular urls (eg, going to the home page of whatever twitter client people were using).

If I turned off those two custom controls, performance was awesome (amazingly awesome with virtualisingstackpanel enabled). If I turned on those controls but commented out hyperlinks, it was just as awesome.

I found (actually, @shiftkey found it for me) an example of making the WinForms style LinkLabel by extending Label. While Labels can be inserted into inline containers (such as a RichTextBox, which is what one of my custom controls was based on) they’re not selectable. While you can select over them, it doesn’t select the content inside… what I mean is if you have "fee fi fo fum", with fi fo being the contents of a LinkLabel,

public class InlineLink : Underline 

{ 

    public Uri Url 

    { 

        get { return (Uri)GetValue(UrlProperty); } 

        set { SetValue(UrlProperty, value); } 

    } 

 

    public String Text 

    { 

        get { return (String)GetValue(TextProperty); } 

        set { SetValue(TextProperty, value); } 

    } 

 

    public static readonly DependencyProperty UrlProperty = 

        DependencyProperty.Register("Url", typeof(Uri), typeof(InlineLink), 

        new FrameworkPropertyMetadata(null, new PropertyChangedCallback(OnUrlChanged))); 

 

    public static readonly DependencyProperty TextProperty = 

        DependencyProperty.Register("Text", typeof(String), typeof(InlineLink), 

        new FrameworkPropertyMetadata(string.Empty, new PropertyChangedCallback(OnUrlChanged))); 

 

    private static void OnUrlChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args) 

    { 

        InlineLink il = (InlineLink)obj; 

        il.Inlines.Clear(); 

 

        Run r = new Run(il.Text); 

        il.Inlines.Add(r); 

        il.Cursor = Cursors.Hand; 

    } 

} 

link.Click can be simulated by just using MouseLeftButtonDown (events didn’t seem to fire for ButtonUp’s)

inlinelink.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(conversationLink_Click);

Yes, I know that code is far from graceful, but it works well enough for a first stab at it. The funny thing is this extends Underline, which Underline extends Span – Hyperlink on the other hand.. well, this is the class signature public class Hyperlink : Span, ICommandSource, IUriContext

I wonder if it was something in ICommandSource, IUriContext, or within Hyperlink that was causing the problem?

My advice? Don’t use the Hyperlink control. Either roll your own "LinkLabel", or if you need an inline element that does linking use something like what I’ve got above.


Comments Off
 

MahTweets: It’s back

26 July 2009 Tags  , , ,

MahTweets is my twitter client of choice. Why? Well, I wrote it. Okay, that isn’t the only reason, it has some pretty awesome features distinguishing it from many Twitter clients.

Features

  • Inline media viewing
    View twitpic, flickr, direct images, and youtube (working on it, an IE8 update broke it) all inside MahTweets. Support will be expanded to support yfrog and any other services people request.
  • Webcam support
    Use your webcam to directly upload to twitpic (flickr, yfrog, and others coming later) or as your avatar on Twitter
  • Conversation viewing
  • Tracking
    This was common in the "old days" of Twitter, but now it seems to be called saved/inline searches?  Either way, if you’re particular interested in tweets on a particular subject, track keywords using twitter search.
  • Filtering
    No more "#followfriday" clogging up my Twitter stream
  • Scalable UI
    Because MahTweets is coded in WPF, I can scale everything (not just change font sizes) neatly at a click of a button.
  • Short URL expansion
    Tired of being Rick Rolled through tinyurl, is.gd, bit.ly (and many others)?
    By auto-expanding the shortened url’s (using Long URL Please), you won’t be launched into sites you know are bad
  • Multi-account support & grouping Coming soon!

Tech Goodness (Requirements and other details)

Through Windows 7’s "XP Mode" I’ve tested Windows XP support, and even in the virtualised environment it was smooth – so smooth that it took me a good 10 minutes or so to notice I’d launched it in XP Mode instead of "natively"!1

Below is a screenshot of an earlier build, running XP Mode and Windows 7 "natively"1 the two running side by side.

mahtweets_crossplatform It’s so weird to see the Luna theme in Windows 7

Big thanks to WillHughes, Shiftkey, CADBloke, Chickz0r, and digihal for help, support, code and/or encouragement on the MahTweets project

1 – by "natively" I mean running in a non-virtualised environment.


1 Comment