Skip to content

Feed aggregator

Practical PHP Refactoring: Tease Apart Inheritance

We are entering into the final part of this series, on large scale refactorings: this kind of operations is less predictable and less immediate. However, it is important to be able to perform them with small steps whenever necessary, if we don't want to get stuck in a situation with dozens of broken classes and no clear further step to take. Preview Text:  ...
Categories: Communities

Refreshing AppFuse's UI with Twitter Bootstrap

The last time AppFuse had an update done to its look and feel was in way back in 2006. I've done a lot of consulting since then, which has included a fair bit of page speed optimization, HTML5 development and integrating smarter CSS. It was way back in '05 when we first started looking at adding a CSS Framework to AppFuse. Preview Text:  ...
Categories: Communities

wxPython: Showing 2 Filetypes in wx.FileDialog

The other day on the wxPython IRC channel on freenode, one of the members there asked if there was a way to make the wx.FileDialog display more than one file type at a time. In the back of mind, I thought I had seen a Microsoft product that could do it, but I’d never seen any wxPython examples. In this short tutorial, you will learn how to do this handy trick! Preview Text:  ...
Categories: Communities

Windows Phone lacks developer experience first thinking.

The MossyBlog Times - Scott Barnes - Mon, 02/06/2012 - 01:35

Today I read that Apple iPhone makes more money than Microsoft does all up, that is to say the phone that Steve Ballmer the CEO of Microsoft used to mock – generates more revenue than his entire company does (who is laughing now).

It got me thinking, let us assume you were inside Microsoft today and you heard this news for the first time, how would you react? How would you adjust your core strategies overall and how do you think this will play out?

Inside Microsoft they have a vision, it centres on the Windows 8 or bust mentality, and that for me is something of a concern given, they really have not done anything new to be openly honest.

Yes, there is Metro which is new, well not really, the initial design execution is new but the concept of taking a minimalist approach to the desktop has been around for quite some time (Adobe really did this well with their CS5 and CS4 product UI’s which you’d be an idiot if you assumed had no influence in design today).

The web has been also doing grid based design for as long as I can remember, so that’s nothing pioneerish going on here either. The idea of some NUI effects and control, sure that’s new I guess but not enough to flip the world into a new way of doing software interaction and development in fact it probably falls down when it comes to data density.

What is new then? The most obvious piece to what is new in this saga is the reality that Microsoft faces around its future. The industry has grabbed Microsoft by the shirt and dragged them into focusing on User Experience first, Technology second and what is so striking about the metro + Microsoft story is that its hinting at some new thinking.

What hasn’t changed though is the technology first approach, Microsoft continues to retreat to its initial bad behaviour, that is to say it thinks in technical terms and not in experience terms. What hasn’t change is that each team is left to interpret the experience strategy and what hasn’t changed is that Product teams make, marketing / evangelism sustain and the divide occurs resulting in both teams looking at one another as if “its your fault we don’t have adoption”.

Allow me to illustrate.

WP-Marketplace-Opportunity-infographic-r09b 011112

Games make up for about 64% of the current Windows Phone 7 sales, which is a little bad given if you’re an Application developer depending on your category of choice you stand to only tap into around 8% of the audience purchasing power.

That aside, Games are the golden ticket in the Windows Phone 7 way of life. Ok, so let’s build a game? Open up your browser and start typing search terms for Windows Phone 7 game tutorials and XNA or whatever you feel is appropriate.

You should be coming up short on examples that mostly live in a small spread across Microsoft random websites that constantly change context and when you’re done there, you should also be drowning in blog posts that are either extremely detailed or very shallow (not quite in between).

That for me is a problem, if I were in the team I’d be looking at this from a perspective of two things. How can I market the potential of this platform in a game centric device world and secondly assuming that thread is off and running how can I sustain this momentum once the devs have taken the bait.

I’m not saying that the key to Windows Phone 7 overtaking the iPhone is games, there’s probably a thousand or more things that need to occur before you even embark on that discussion, what I am saying is the grass roots fundamentals aren’t in place.

Lets say I click my fingers and the $500million spent on marketing to date actually worked, you have an audience of Windows Phone 7 folks over the next 2 years running hot in potential sales of the device. Congrats, 1 in 5 mobile phones sold today are Windows Phone 7.

Now what.

How do you sustain that momentum, how do you encourage more and more solutions to be built for the phone and lastly how do you retain control over the entire experience.

This is a huge problem today within Windows itself, there is so much energy spent on promoting the entire vision of WinRT and its future(s) but there is no on ramping to help the solutions delivery for this vision. Instead, it is a lot of wait and see?

Android has had next to no marketing but yet its retaining a steady share and I’d argue that its developer base of java and mono geeks have really taken this bad boy out for a test drive. It’s not a huge learning curve either, in under a week I was mucking around with the Android development and I’d say the community backing for this phone is quite loud despite the randomness of Google.

It’s still just as bad as Windows Phone 7 but that’s fine, reason being this is typical with any Google solution – Microsoft however can be better than that? They can on board people faster and with more energy than their competitors do as they are staffed worldwide better.

If you ask me, the phone itself is one thing but if the experience at the developer to consumer is filled with random noise and less signal around getting solutions to a mature level of quality, then that’s just the first strike and more to come shall follow.

There is a reason why the Windows Phone 7 marketplace is filled with crappy games or apps, some are good but they aren’t as rich as the iPhone (even then iPhone has crap to).

I’d argue that the competitive advantage Microsoft has right now that isn’t being capitalised on is the stark reality that they have a development experience that is quite rich and inviting the downside is once you get past the Powerpoint style development and want to actually build a Minecraft / Voxel Engine on a phone well you come up short.

If Microsoft’s vision is to ramp developers onto C++ then where is the investment on learning C++? DirectX? XNA? OpenGL? Etc. etc.

This phone needs much more than guys dropping the phone in a urinal as way to entice the masses to the cause. It needs to start at the experience level and work its way back to the technical detail(s). Its not just about building yet another Microsoft website that doubles down on Tutorials its more about thinking and engaging developers in ways that they understand or need massive leaps in thinking around. If Windows 8 and its device strategy can’t sustain the developer base and relies heavily on the market to teach the masses, then its yet another failure on the horizon. Same tactics as last time only more glitter.

Related Posts:


Categories: Blogs

jQuery "Pinify" Plugin Tutorial for Building App-Like Sites

Preview Text:  IE9 lets you integrate sites with the Windows 7 desktop easily, using the jQuery 'Pinify' plugin. This article explains how to use Pinify to break the boundaries of the browser and push your sites to Windows users more directly.
Categories: Communities

1.7 Tutorials, CometD 2.4.0, Wink Toolkit 1.4.1, and Documentation Feedback

The Dojo Toolkit blogs - Sun, 02/05/2012 - 17:17

This past week included four significant announcements:

  • The Dojo Tutorial series has been updated to include version 1.7 of Dojo. Read the announcement from SitePen for more details.
  • Wink Toolkit has been updated to version 1.4.1. Wink Toolkit is a Dojo Foundation project that is mobile-specific, now builds on AMD, and is now easy to use with Dojo. See the Community Connections demo app which shows off using Dojo and Wink together, and introduces some of the committers to Dojo and Wink.
  • CometD has released version 2.4.0. In addition to improving their WebSockets support, they have also updated their Dojo client to work with Dojo 1.7.1 (though it does not yet support AMD).
  • We’ve long heard that we have issues with our documentation, and in spite of our best efforts to improve them, especially with the tutorials, we need help identifying and resolving issues with our docs. If you’re interested in contributing, less us know on the mailing list or on IRC. But even if you’re not interested in that level of help, we’ve simplified the feedback process. At the bottom of each API viewer and tutorial page (and soon reference guide as well), you’ll find a link to a quick feedback form. If you see an issue on the page you’re reviewing, simply click the link, type in a note with the details of the problem, and we’ll make it a priority to fix.
Categories: Open Source

Limit your abstractions: Analyzing a DDD application

Abstractions have a cost. You should limit them. That seems like an obvious statement, but in a recent discussion I had, I realized that I didn’t articulate things in quite the proper way before. Let me see if I can explain better now. One of the problems in typical applications is that we don’t really think before we introduce abstractions. For the purpose of this discussion, an...
Categories: Communities

Model Templates in Django without Denormalization

I came across an interesting problem recently, while trying to model the structure of a university course in Django. The model needed to represent the notion of a university module, which can be taught over a number of semesters and/or years, by different people, and with different students each time round. Some information remained common to each of these modules however, such as the code,...
Categories: Communities

Number- New HTML5 Input type

I have been writing few series of new HTML5 input types and this is another post on same series. In this post I am going to explain Number input types. The number type is for numeric values. When you use number input type it will have spinner with up and down arrow and with the help of this you can increase or decrease of value. Attributes of Number Input type: There are four attributes of...
Categories: Communities

New Mocking Capabilities in JustMock Q3 2011 SP

Telerik Blogs - Sat, 02/04/2012 - 15:02

Telerik JustMock received many new features in the service pack for the Q3 2011 release, enhancing the mocking framework’s impressive ability to mock almost everything. Let’s take a look at a few highlights of JustMock Q3 2011 SP.

Mock Inside a Threadpool

Mock objects can be accessed inside of another thread and work as expected.

var mockable = Mock.Create<Mockable>();
Mock.Arrange(() => mockable.IsMocked).Returns(true);

bool mocked = false;

var latch = new WaitLatch();

ThreadPool.QueueUserWorkItem(cookie =>
{
    try
    {
        mocked = mockable.IsMocked;
    }
    finally
    {
        latch.Signal();
    }
});

latch.Wait();

Assert.IsTrue(mocked);

The callback for ThreadPool.QueueUserWorkItem accesses the mock object, and the expected value is returned.

 

Asserting Occurrence in Extension Method

You can now ensure occurrences for extension methods to your mocked objects.

var sequence = Mock.Create<IEnumerable<int>>();

Mock.Arrange(() => sequence.First()).Returns(1).OccursOnce();

int result = sequence.First();

Assert.AreEqual(1, result);
Mock.Assert(sequence);

In this example, sequence.First() is only called once, passing the test.

IgnoreInstance in Fluent Extensions

Mehfuz Hossain’s article on Future Mocking with IgnoreInstance describes this feature added in JustMock Q3 2011, but you may have noticed he didn’t use the Fluent API. It is now present in these extensions, so the example in the original blog post can be written as follows:

var fakeUsed = Mock.Create<UsedClass>();

fakeUsed.Arrange(mock => mock.ReturnFive()).Returns(7).IgnoreInstance();
             
Assert.AreEqual(7, fakeUsed.ReturnFive());

Assert.AreEqual(7, new UsedClass().ReturnFive());

Whichever style you prefer, mocking tightly coupled class is simple with JustMock.

Invoke Call with Expression Argument with Dynamic Value

This feature gives you granular control over an arrangement utilizing a lambda expression.

var repository = Mock.Create<IBookRepository>();
var service = new BookService(repository);

var expected = new Book { Title = "Adventures" };

Mock.Arrange(() => repository.GetWhere(book => book.Id == 1))
    .Returns(expected)
    .MustBeCalled();

var actual = service.GetSingleBook(1);

Assert.AreEqual(actual.Title, expected.Title);

In this example, service.GetSingleBook(1) is calling its dependent repository with the expression: book => book.Id == id. The parameter ‘id’ is a dynamic value.

public class BookService
{
    private IBookRepository repository;

    public BookService(IBookRepository repository)
    {
        this.repository = repository;
    }

    public Book GetSingleBook(int id)
    {
        return repository.GetWhere(book => book.Id == id);
    }
}

JustMock will now match book.Id == 1 to book.Id == id when id is equal to one. The expression must match value types. For example, book.Id > 0 will never be called by service.GetSingleBook(1).

 

Better Access to Documentation

The Getting Started Guide and example projects are now found in the start menu under Telerik | JustMock.

image

These resources can help you find the solution to nearly any mocking scenario. The Getting Started Guide is the bulk of the English documentation. However, we view tests as documentation as well. That’s why the example projects provide a hands-on approach, unit testing JustMock itself.

The documentation is also available in Help3 for download in a separate ZIP file.

What’s Coming?

Our Q1 2012 Webinars are just around the corner. If you attend the What’s New in Tools for Better Code webinar, you can see live demos of the features mentioned in this blog post and much, much, more. One lucky winner from the Just* webinar will receive a Telerik Ultimate Collection worth $1999. More importantly, you will sharpen your ninja skills to write better code!

Categories: Companies

Browsing Blobs within a container using the Windows Azure Node SDK

The last couple of weeks we were working on a new, exciting project: a collaborative, real-time markdown editor that runs on a NodeJS server, hosted on Windows Azure (you'll hear more about this soon). One of the features that this app will have is the ability to store the .markdown files in either your local disk or Azure Blob Storage. To achieve this, we investigated the best way to list...
Categories: Communities

Video Tutorials for Azure on Cloud9

Today Cloud9 announced the availability of Windows Azure in order to better serve the Node.js community.  Cloud9 claims to be the "best environment for importing, developing, and testing your node.js applications."  The Cloud9 team has also posted the videos below to help you get started. Preview Text:  The Cloud9 team has also posted...
Categories: Communities

Venn Diagram entirely in CSS

A friend of mine alerted me this weekend to just how much I have a weird fascination with Venn diagrams. I decided to roll with it. So yeah, I have an irrational love of Venn diagrams. But that begs the question, can I make a Venn diagram with just CSS? I found a couple of examples out there: Preview Text:  A friend of mine alerted me this...
Categories: Communities

Backbone.js vs Ember.js

In the #documentcloud IRC channel on January 31, 2012, Jeremy Ashkenas (jashkenas) and Yehuda Katz (wycats) were asked by Travis Swicegood to contrast Backbone.js and Ember.js. (I have removed some IRC noise and unrelated conversations for clarity.) Preview Text:  A little discussion came up on IRC about Ember.js vs. Backbone.js. Jeremy Ashkena...
Categories: Communities

DZone's Different!

Hello DZoners!My name is Austin Kowitz and I’m a graphic designer at DZone. And you can mostly blame (praise?) me and DZone developer, Ross Jernigan, for what you see currently at DZone. We still have tons of ideas we haven't implemented yet -- but we're doing the agile thing, releasing early, releasing often. So we'd love hear your feedback, whatever it may be. I’m bracing myself for the...
Categories: Communities

The week in qooxdoo (2012-02-03)

qooxdoo News - Fri, 02/03/2012 - 20:00

Just referencing the list of bugfixes, as most team members were absent this week or busy with unresolved tasks:

Bugfixes

For a complete list of tasks accomplished during the last working week, use this bugzilla query.

Have a nice weekend.

Categories: Open Source

End-of-week SilverlightShow Content Recap (2/3/2012)

SilverlightShow: Silverlight Community - Fri, 02/03/2012 - 19:58

Below you may find a summary of all new content we've published on SilverlightShow throughout the week January 30 - February 5, 2012:

New Articles Webinar News Ebook News Forum News 50+ fresh new stories by our valued bloggers and community sites Top 5: All other news we published:

Monday (January 30th, 2012)

Tuesday (January 31st, 2012)

Wednesday (February 1st, 2012)

Thursday (February 2nd, 2012)

Friday (February 3rd, 2012)

Categories: Communities

Recording of Gill Cleeren's 'Metro and WinRT for the Silverlight/WPF Developer' webinar is now available

SilverlightShow: Silverlight Community - Fri, 02/03/2012 - 19:10

The recording of Gill Cleeren's yesterday SilverlightShow webinar - Metro and WinRT for the Silverlight/WPF Developer - is now online.

Watch the webinar recording | View the webinar slides | Download the demos
 

In this webinar, which is part 1 from a 2-part session (join part 2 next week) Gill Cleeeen demonstrated how you can transfer your Silverlight/WPF knowledge to the new Metro-way of building applications. He did this by looking at a working application containing most of the features you’ve come to love in Silverlight. 

Agenda for part 1 was:

1. General XAML stuff for Windows 8
2. Old and new controls
3. Finding your way with navigation

Agenda for part 2 (Feb 9th) is:
 
1. Styling and templating
2. Data in your Windows 8 apps: Getting data, data binding
3. The Application Lifecycle (Copyright 2010 Windows Phone 7)
4. Tiles and more (Copyright 2010 Windows Phone 7)
5. IO’ing in Metro apps

As usual, we had some small gifts for the attendees who joined and supported the event - 3 free copies of Gill's SilverlightShow ebook ''Getting Ready for Microsoft Silverlight Exam 70-506' and 2 free ebooks ''Microsoft Silverlight 4 Data and Services Cookbook'' from Packt Publishing. See who got the ebooks!

Missed a previous webinar? Visit SilverlightShow Webinars Page for a list of all sessions delivered by now!
Stay in touch with SilverlightShow (via RSS, Twitter, Facebook or LinkedIn) to be the first to know about upcoming webinars!

 


Categories: Communities

Running Sentry on DotCloud

Sentry is a realtime event logging and aggregation platform. At it’s core it specializes in monitoring errors and extracting all the information needed to do a proper post-mortum without any of the hassle of the standard user feedback loop. Preview Text:  Ken Cochrane has a great step by step post on how to run Sentry on DotCloud. ...
Categories: Communities

Recording of Webinar 'Metro and WinRT for the Silverlight/WPF Developer: Part 1' by Gill Cleeren

SilverlightShow: Silverlight Community - Fri, 02/03/2012 - 18:19
Watch a recording of the webinar 'Metro & WinRT for the Silverlight/WPF Developer: Part 1' delivered by Silverlight MVP Gill Cleeren on February 2nd, 2012.

Download the webinar slides (ppt / pptx) | Download the demos

Webinar summary: Are you currently building XAML-based applications using Silverlight or WPF? And are you afraid that all you’ve learned in the past is now suddenly obsolete? Then you should really attend this webinar and be amazed!

We’ll see how you can transfer your knowledge to the new Metro-way of building applications. We’ll do this by looking at a working application that contains most of the features you’ve come to love in Silverlight. 

You’ll learn that things like data binding, styling, controls and much more can be leveraged to build applications in Windows 8. After this webinar, you will see that all of a sudden, you are already an experienced Metro app developer! A big smile is guaranteed after this talk!

Level 250-300

Agenda for part 1:

1. General XAML stuff for Windows 8
2. Old and new controls
3. Finding your way with navigation

Part 2 of the "Metro and WinRT for the Silverlight/WPF Developer" is scheduled for February 9th, 2012, 10 am PDT (see your local time). Sign up now | View agenda

Some small prizes were given in this webinar:

See who grabbed the ebooks! 

  

Enjoyed this webinar? Gill Cleeren has a 4-day training session on XAML!

XAML on Silverlight 5, WP7, Win 8 Metro & WPF: a 4-day Training in London, UK
February 20-23, 2012, from 9.00 am till 5.00 pm | Trainer: Gill Cleeren | Training page

This training will focus on mastering XAML on the following platforms: Silverlight 5, Windows Phone 7, Windows 8 Metro and WPF.

The goal of this training is to teach the students to work with XAML by using it on one platform, and then apply the knowledge they already have to other platforms. A focus will be put on the differences between all platforms, as well as the aspects in which they overlap.

Fee for the full 4-day training course: £ 1.700 + VAT.

Learn more »


Categories: Communities