I just learned about the following setting for the Google Chrome Browser. What it does is disable the auto-play of a lot of media content. You know, those pages that immediately start an ad or something loud. Love it!

Menu ‘Settings’ > click button ‘Content Settings’ > scroll down to ‘Plug-ins’ > select ‘Click to Play’

Enjoy the silence. Kenny

I have been using Paul Bett’s ReactiveUI which is a .NET UI API framework for WPF, Sillverlight, WinForms, Xamarin.Forms, perhaps more. It’s built on top of Microsoft’s system.reactive or Reactive Extensions. I really like how ReactiveUI works, but it can be a mind twist to get started with.

I didn’t find a similar example online, but I have a button in a app that sequences through a list of choices. I thought it would be nice to have it do something once the user has stopped changing the selection. In this example, the button is implemented by ReactiveUIs ReactiveCommand which is it’s wrapper around the stand ICommand for WPF, Silverlight, etc..

public ReactiveCommand<Object> ActionNext { get; set; }

So in this example ActionNext simply sequences through a bunch of choices. Imagine a set of colors as strings, but that list could be anything. The following { CODEHERE; }, will only execute after the user stops clicking on teh ActionNext command for 1 second.

this.WhenAnyObservable( model => model.ActionNext.IsExecuting )
.StartWith( true )
.Throttle( TimeSpan.FromMilliseconds( 1000 ) )
.Subscribe( executing =>
{
if ( ! executing )
{ CODEHERE; }
} );

I think that’s pretty cool. What is happening it ‘Subscribe’s to changes of the RaectiveCommand’s IsExecuting true and back to false. Only when that stops changing aak executing for a 1 second, will the Subscribe code fire.

We’re going mobile

25 March 2014

Our first promo app, called MagikAteBall.  AppMainScreenThe app is mostly to promote  our mobile application development service. Source to Nuts is going mobile.

It’s a really clean and simple app that shows a few features of mobile platforms shake gesture, location, search, phone dial, directions, paid click ads, and more.  Get in touch if you have an app to develop!

Download it here.

Code or Pornography

5 September 2012

Coding Horror (Steve McConnell)

“It’s probably because our profession is to work with computers is what leads us to want to program human systems the same way that we program computers – despite the fact that they are so different.”

via RigorousAgile. A good comment stating how hard it is to map rigid processes to writing software.

Code is a battle, it’s ugly, it’s shittyit’s dirty grimy work that has to get down.

The only thing you have to do today, is procrastinate.

Code is a band-aid, the final thing added to the system, it has to address all of the bad design decisions, all of the bad things that happen and often take best guesses at the thoughts in the heads of millions of users. We often joke about how bad it can be, but it’s almost an impossible task to ‘do right’.

Agile is an answer that is throwing up it’s hands or just saying no to rigid process development for human processes. Does agile mean anything really? It’s just saying this is closer to reality of what can be achieved by a the endeavor of software development. It may be bad, but it’s better. Either way, we only know it when we see it.

Kenny

WPF Splash Screen

15 June 2012

Before today, somehow I never had to develop a WPF splash screen. yeah, I’ve inherited some and most of them were quite complex and nasty with background threads and such. So what did I do when I had to start one from scratch?

Well yeah, I googled ‘WPF Splash Screen’ and found this MSDN link near/at the top of the results.

Wow, what a lot of work and code I could have saved in the past! I can’t believe how easy it is to develop a simple WPF splash screen. Just in case that link breaks, here are the simple steps:
– Create or find an image that you want to use for the splash screen. You can use any image format that is supported by the Windows Imaging Component (WIC). For example, you can use the BMP, GIF, JPEG, PNG, or TIFF format.
– Add the image file to the WPF Application project.
– In Solution Explorer, select the image and its properties.
– Select SplashScreen from the Build Action drop-down list.
– Done, F5 run. Wow, that was easy!

A friend wrote me an email basically asking if the MVVM-approach to WPF applications made sense, They thought it felt like a lot of duplication of code in the View and View Model. In response, I wrote the following email (with minor edits), maybe someone else will get something out of my 10,000 foot view of MVVM. Note: I always thought it should be 10,000 feet view, but it doesn’t’ sound right, does it?

Kenny

MVVM and WPF/Silverlight

MVVM = Model – View – View Model,  which probably should be
VVMM = View – View Model – Model, but it would be a confusing acronym
Model = Data or the person class in your example.
I think of the View Model as the controller ala MVC from the Smalltalk days, but …  It can do all of the ‘glue’ of Model to View. MVVM is a nice separation of concerns and when you get the hang of the separation, it will feel better…..I think.
The ‘goal’ of MVVM is that the View is “pure XAML”, you should break that rule seldom or not at all, but when it it makes more sense to you to put code behind the View break the rule…ie don’t go nuts. I find that the WPF Commanding architecture is best hosted in the View Model and then tying the View and View Model together is pure Bindings in the View.
One design that I’ve seen work for simple apps. Is a shell of an App that you dynamically load Views into the main container and tie up the VMs. BUT until you get the hang of that, it will feel weird and disconnected. XAML binding problems can be tough, but VS is getting better at it 2010 was a *big* improvement.
If you want, one of the properties of the VM can be the Model or more than one Model say Person.
public class MyViewModel
{
...
    public Person Person { get; private set; }
...
    void SomePrivateCodeProbablyInResponseToACommand( object sender, EventBlah e )
    {
        this.Person = Person.Get( dbcontext );
    }
...
    public ICommand SavePerson { get; private set }
...
    void Init()
    {   // tie up Commands to events/lambdas</div>
    }
}
You don’t need a framework, but when/if you do, MVVM Light, by Laurant, is very nice and offers a bunch of utilities that will be useful when you hit the hard problems (threading, etc..). It includes some nice VS add-ins if you like Wizards and templates.
Kenny

User interface guidelines from one of my fav blogs, Building Social Software for the Anti-Social.

What I especially echo is tje points which we should all breathe into our public software and systems.

  1. Radically lower the bar for participation.
  2. Trusting (some of) your users.
  3. Rules can be fun and social.
  4. All modern website design is game design.
  5. Thoughtful game design creates sustainable communities.
  6. Some moderation required

Getting serial on my Mac has been something I’ve wanted to get going for awhile, but like my blog and my time….

How to get a serial port up and running on my OSX laptop?

Most USB serial devices are exactly the same or at least they are built up from FTDI or compatible chips that you can find here at ftdichip.com. In fact, that’s a great site to buy exactly what you need, though I bought my locally. Therefore drivers for pretty much any of the sources are the same or similar. I have seen bad performing devices, so perhaps there are some low-level firmware tricks, but mostly one doesn’t need to know about those hardware/firmware implementation details and just find a good and fast device.

I have a device that is manufactured by Tripplite that looks and is typical to ones from other manufacturers.

“PL2303 USB to Serial Driver for Mac OS X. It supports different manufacturers of PL2303 based USB to serial dongles like ATEN, IOData, Elcom, Itegno, Ma620, Ratoc, Tripp, Radioshack, Dcu10, SiteCom, Alcatel, Samsung, Siemens, Syntech, Nokia, MS3303H”

So was it hard to get running on OSX? No. Knowing some tricks is helpful, or really only one trick. Connect pins 2 and 3 of the serial port device which connects the RX and TX pins (aka receive/data-in and transmit/data-out serial) to test it out. Here are the steps:

  1. Download the device installer of an OSX open source driver from sourceforge.org (http://sourceforge.net/projects/osx-pl2303/). Run it.
  2. You can ignore the network configuration depending on your intended use or at least to test your device/install.
  3. Find the device name by opening up a Terminal window and typing ‘ls /dev/tty.’ to see all of the serial ports available. Hopefully, there are many and it’s obvious which is likely.
  4. Once you have the name and pins 2 & 3 connected you can open up port with ‘screen your-device-name-here 9600’. The 9600 is for 9600 baud.
  5. Start typing in that window and you should see the characters type echo on the screen, disconnect the pins 2 & 3 and the characters will stop, since the TX pin is no longer sending them back into the RX pin.
  6. If that works, you’re up and running. If not, make sure you didn’t make any mistakes and try again. Try another USB port (your device name will likely change). One can also try the device on a Windows machine with Hyperterminal, just to make sure it works.

Kenny

Startups…

27 October 2009

I’m going to read this in more detail, but on first brush, I find it interesting.

http://www.paulgraham.com/really.html

Oh The Tools I Use…

29 March 2009

This is my first posting from an on-going series where I’ll describe the software tools I use.

The first tool I want to describe is my RSS reader. Like a lot of my tools, I read about them for awhile before I understood the benefit fully. This tool, of all my tools is the one takes a lot of time of my time, sometimes to much time. It also changed the way I use the Internet more than any other tool including search!

I tried several downloaded podcast/RSS reader applications, but those never worked well for me and my mind. I don’t remember the names, so please don’t ask. I also work at multiple locations, and often with different computers, so off-line tools don’t work well for me in general.

I do love working in the cloud, where Google pretty much owns me (more on that soon). I’ve been an online email only guy for 8 years starting with Yahoo Mail, which has an amazing GUI for online, but GMail’s thread discussion own me now.  More on those later…

Initially for RSS, I used Yahoo or specifically My Yahoo. For a while, hooking up those to RSS feeds worked OK for me. I’m not sure when Google Reader (GR) came out and not to long after I tried it, I was hooked.

Like many, GR changed the way I use the web completly. I don’t web surf anymore and I pretty much only read my feeds, search/lookup something, email, some minor social networking and not much more. I don’t just click around and surf ever anymore, because so much interesting stuff comes through my feeds than I have time to read about, listen to or watch (isn’t video on the web incredible?). Most of the sites I subscribe too, I found from another site I’m already subscribed to. Over time I manage these sites and weed out the ones that are mostly echo chambers.

One thing GR gives me is a way to communicate with friends and colleagues when I find something that I know would interest them, I forward it to them. Another one of my favorite parts, but hasn’t seem to caught on with any my friends is the social part of GR where you share or publish interesting things you find. Here is my list (call me 16867871631588463335….um how about my gmail address?), which nobody likely cares much about except me. That’s what makes it interesting because it describes the perhaps hidden me into the ‘social me.’

On the social thing-a-ma-goo. Twitters sounds interesting, but also sounds like a BIG time sink given my experience with GR. Facebook and MySpace, while my kids and some friends are into them, they don’t interest me. I don’t totally get ot social network fad yet, but I have a few business ideas about that are brewing in my head, mostly about Jabber uses.

One of the concepts, though not my idea, integrating social networking concepts is the startup I’m at carefulproducts.com. CarefulProducts aims to bring social connectivity and medical compliance to senior care via in-home monitoring. I have severeal other ideas, but those are baking or waiting for someone else to do them ;>(.

The only social tools I really use are linkedin.com (nice RESTful link BTW:, but I think I had to reserve it) and my sourcetonuts.com blog. Others might not consider it a social tool, but my feelings about what stackoverflow.com should be but it is, though not trying to be (just call me 3226 please….um what’s wrong with the just the kenny/username already in there?).

More about this stuff later, since this is about GR. I love Google Reader and you should too!

Kenny

%d bloggers like this: