Zerg Cake

by Robert Mills 10. May 2012 10:40

Found this on the internet, this is definitely what I want for my birthday.

Tags:

Acer W500

by Robert Mills 8. May 2012 18:54

So, I picked up an Acer W500 to have an x86 tablet to play with while waiting for Windows 8 to get all official on us and, within its limitations, it has been great.

I started looking up options to increase the size of the 32 gig mSATA SSD (I already added a 32 gig SD card) and the only real option looks like this one:

http://www.amazon.com/OCZ-Technology-Nocti-Series-NOC-MSATA-120G/dp/B005FYFVRI/ref=sr_1_23?s=electronics&ie=UTF8&qid=1336517202&sr=1-23

$159 for 120 gigs, which isn't really bad though I don’t know if it is worth it since the RAM is soldered on the board, so you are stuck with 2 gigs, with part of that going to the video card.


I think I am just going to wait it out, I am betting on medfield tablets running windows 8 (arm power envelope, full x86 support). I like the idea of ARM, but I don't know if I am ready to give up x86 quite yet.

Here is one running ICS: http://www.engadget.com/2012/01/10/intel-demos-lenovo-made-medfield-tablet-running-ice-cream-sandwi/

Tags:

Custom 401 in ASP.NET

by Robert Mills 8. May 2012 18:35

Because IIS intercepts your request before you can handle it, you can't just set a 401 page in your custom errors block. While you can still change the default 401 page in IIS, the user will typically get challenged first when you set security with location in the web.config.

You wouldn't do this at all anymore, but I ran into it making a change to a legacy webform app and figured I would save what I found in case I see it again (I am moving 50+ apps).

To handle this you would do something hacky like this:

protected void Application_EndRequest(Object sender, EventArgs e)
    {
        HttpContext context = HttpContext.Current;
        if (context.Response.Status.Substring(0, 3).Equals("401"))
        {
            context.Response.ClearContent();
            context.Response.Redirect("~/AccessDenied.aspx");
        }
    }

One point to note, you can't do this in integrated mode, you would have to drop your app pool to classic mode.

Or you could be one of the cool kids and just rewrite the whole thing from scratch without telling anyone.

Tags:

ASPNET

Random CSS Link Post

by Robert Mills 5. May 2012 21:14

Tags:

Xamarin

by Robert Mills 5. May 2012 00:20

Tags:

Random Link Post

by Robert Mills 25. April 2012 10:35

Tags:

Random Links

Good News and Bad News

by Robert Mills 25. April 2012 10:22

The good - the new version of Chrome Beta for Android finally supports the desktop user agent string.

The bad - Bluestacks still doesn't let me use touch in the Android app when running on my tablet. They hint that it may work if I install Windows 7 on the tablet, but they are too wishy washy about it to get me to actually try it.

Tags:

Irks

401.2 Access Denied from VS 11

by Robert Mills 12. April 2012 14:19

Note to self, when you install Visual Studio 11, it disables NT auth for IIS Express by default. To turn it on, go to My Documents, IISExpress, config and modify the applicationhost.config file, changing <windowsAuthentication enabled="false"> to <windowsAuthentication enabled="true">.

Tags:

Irks

JSIL

by Robert Mills 3. April 2012 12:07

If you haven't seen it, some awesome guy named Kevin Gadd has made created a compiler to convert XNA to HTML5 named JSIL.

This should really come in handy soon considering Microsoft is saying they are not supporting XNA in Metro.

One thing to note, be careful when you are pulling down all of the magic from github, make sure you get his fork of ILSpy instead of the official one.

 

I originally pulled this down to convert Invaders to HTML5, it isn't compiling yet, but I had a good bit of stuff in there that wasn't XNA specific (using configurationmanager to dynamic load resources), so I most likely just need to slim it down a bit and give it another go.

Tags:

XNA

Bluestacks

by Robert Mills 30. March 2012 13:20

If you haven't tried it, it let's you run Android apps on Windows. Really impressed so far, though touch isn't working for me in  Windows 8. When I contacted them, they said touch is working in Windows 7, they just aren't supporting Windows 8 yet.

It is in open beta, so go check it out.

Tags:

Enterprise Developers Guild

by Robert Mills 29. March 2012 12:42

I used to go to the Enterprise Developers Guild here in Charlotte pretty often until they moved it downtown. Just found out they are having them in the Microsoft Campus again and went to the one this Tuesday called 'Build for All Devices with jQuery Mobile & HTML5' by Dan Thyer.

Had a great time and free pizza, will definitely be going to them more often than not now. Great turn out, must have been at least 80 developers there.

Tags:

IIS 7(.5) and Anonymous Access

by Robert Mills 25. March 2012 14:23

An interesting change I found today is when you choose to allow an application to accessed anonymously, it creds to resources as IUSR by default and not the application pool's identity. To fix it you go to where you configured anonymous access and right click on anonymous access and choose edit.

This is more of a reminder to me, I assume most people already know this, I just rarely ever use anonymous access so it caught me a bit by surprise.

Tags:

Code Camp in Charlotte May 5th

by Robert Mills 20. March 2012 10:10

The Enterprise Developer's Guild is hosting a Code Camp on May 5th at the CPCC campus in Matthews.

 

You an get more information here : http://codecamp.developersguild.org/

 

From what I have heard, they will have some advanced sessions, and if you are a presenter, they are still looking for people to be awesome.

If you aren’t familiar with the Enterprise Developers Guild in Charlotte, they have decently advanced sessions, and currently meet on the 4th Tuesday of each month at the Microsoft campus right down the road from our office at 6PM and the sessions are always free.

 

The one this month (on the 27th) is about jQuery mobile and HTML5.

 

As a plus, there is also free Pizza and soda!

You can get more info at their main site: http://www.developersguild.org/

Tags:

Code Palousa Final Day

by Robert Mills 18. March 2012 18:35

So, day 3 opens with a keynote from Jim Benson, and I am definitely going to have to preface my comments with the fact he is definitely more successful than I ever will be,  and most likely smarter. Having said that, he has this aversion to PowerPoint, and while I definitely can't disagree with him for that, I found his 'solution' even less palatable. This is actually unfortunate, as I get what he was trying to say, I just wasn't able to sit through it.

On to the first session of the day. I went and checked out 'Mobile Cross Platform Decisions' by Christopher Judd (Judd Solutions) and it was actually really good. He covered a lot of great ways to do mobile development, especially in an environment where you need to target more than one platform.

For the second session, I went and checked out 'The Evolution of Patterns' by Chris Eargle (Telerik) since he had done such a great job on day 1. I definitely wasn't disappointed. The only thing I would have done different in that session was tack a couple more hours to it. The hour was up and he was really just getting rolling.

For the third session, I went to 'Responsive Design in ASP.NET MVC - A Crash Course in Responsive Design' by Ed Charbeneau (Sypris Solutions) and it was phenomenal. I walked in thinking it was going to be about responsive in the context of performance, but liked the actual topic better, how to respond to a large range of screen sizes and features to support a wider audience.

Unfortunately, I didn't get to go to any more of the conferences, as the latest flight out to get back to Charlotte was slated for 5:50ish PM. If I were able to stay, I would have checked out Enterprise Users Bill of Rights: 10 Things Every Developer Must Know about User Experience, and probably Validating Data in OData for Mobile Solutions, though the track record for OData sessions was sketchy up to that point.

I guess long story short, Saturday was definitely a better return on investment than the first two days were, and if we were local developers, it would have been great either way. Having paid (our employer, not personally) for tickets, plane, hotel, lost work etc the value just wasn't there. If I want basic 101 classes, I can get them free right here in Charlotte. If I am going through the drama and expense of flying somewhere, I am expecting my brain to hurt when I get back.

Recommendation for next year? I think we are going to pass, if it was local, we would go for sure, but we aren't interested in travelling to it.

Tags:

Code Palousa Day Two

by Robert Mills 16. March 2012 10:25

The day started with a keynote called 'The next generation of Dinosaurs' by Billy Hollis (Next Version Systems). Billy is a great speaker and really gave an excellent presentation. He talked about the time when COBOL stopped being the dominant ecosystem, and the current paradigm of the OO/Java/.NET generation took over. He talked about how very intelligent people who were very good in the ecosystem were just unable to come across to the new ecosystem and how we are in the process of changing ecosystems again with the shift to always on/mobile/craziest things ever coming down the pipe.

He gave a couple of really good things to watch for as the world changes. He talked about how so many of the .net people are so into TDD and how they insist we can't live without it etc, and his answer was excellent. He said 'forget the technology and process and focus on being awesome.' (paraphrased etc).

His point was, if you are awesome and take pride in doing things the best way you can, the tools and processes will fill themselves in. We see the side effects of forgetting this everyday. When all you have is a hammer...

He also mentioned Lightswitch, and how it was so ridiculously ridiculed by .net developers without being seen in the proper context, and I have to admit, I did the same. I am definitely going to be checking it out later this week with a bit more open of a mindset.

He also reminded me of something that I try to keep at the forefront of my mind every time I work on a project. Development is easy, and there really isn't anything we can't do. This means that making something possible that wasn't possible before for you client/business/etc is no longer enough. You have to make it easy for them to use and awesome.

For the first session of the day I went to 'Metro, Metro, Metro', which was sold as a 'deep dive into the crux of Metro' by 'Samidip Basu'. It was so ridiculously basic and end userish that I have purged it from my mind to free space, so I have nothing to say about it except it was a waste of my time.

For the second session, I decided to try another Metro session, called 'Intro to Windows 8: The Windows 8 Platform for Metro Style Apps' by Jennifer Marsman (Microsoft). This one was again to basic, but it didn't really try to sell itself as anything else, so not enjoying this one was my own fault.

For session 3, I went to 'Advanced Configuration of WCF Data Services for Producing oData' by Chris Woodruff (Perficient) again, that claimed 'This track will give deep knowledge into the configuration and extensibility of the WCF Data Service/OData feed. It will also teach developers to secure their feeds through multiple user authentications such as OAuth, Windows and Forms Authentication.' He did cover paging in a way that gave me some ideas about overlapping server and client side paging to keep the user from having to wait for the server side paging.

This session was so ridiculously basic that I finally had to pick up the tablet and provide feedback through Event Board, and iirc the only authentication it covered was telling you it would use whatever IIS was using. Silliness.

For Session 4, John, Chuck and I went to 'How to Make Your Application Awesome with JSON, REST and WCF' by James Bender (Improving Enterprises). This session was ok, but pretty dry, the only 'awesome' thing that happened there was John banging out a metro app tied to the Netflix wcf dataservice while the presenter went on about things.

The last session of the day was ridiculous. It was called 'Application Security: What you don't know can hurt you' by Joe Kuemerle and he was without a doubt a solution looking for a problem. He basically went and turned off all of the built in things that .net does to keep you secure and then railed about how insecure Microsoft's stuff was and showed a bunch of crazy examples that can't work unless you purposely misconfigure things. And I mean purposely to the point of you couldn't do it accidently. I need to make sure to give feedback to this event. We left this one early and wrapped up for the day.

Tags:

Code Palousa Day One (March 15th Workshops)

by Robert Mills 15. March 2012 10:35

I chose to go to the session 'HTML5 techniques you can use today' by Burke Holland (Telerik).

The first 2 hours, we hadn't covered anything. I literally mean anything. The closest we came to talking about HTML was defining who the W3C was. The rest of the time was spent bashing Microsoft and IE. Now don't get me wrong, I agree with everything they had to say, but I didn't fly to a 3 day conference to giggle at 12 year old jokes about IE 6.

Around the two and a half hour mark, they covered polyfill, which is cool but my patience had worn out. John and Chuck (coworkers) said they conference they were in was awesome, so I headed down that way.

John and Chuck were in a Windows 8 conference by Chris Eargle (Telerik), but it was going to be an install and check out Windows 8 and no one else really showed up. I think there were 2 other people there besides John and Chuck and everyone had already installed Windows 8 before coming to the conference. Chris was doing a great job giving an awesome presentation anyhow, covering the use of func/lambdas/delegates and some cool linq and fluent things. I am sad I missed most of it, but it was still much better than staying in the HTML 5 conference could have been.

After lunch I headed to the 'oData workshop' giving by Chris Woodruff. He seems like a really bright guy, but the topics covered were way to 101, nothing was covered that wasn't wouldn't be answered in 5 minutes on Google. I had really high hopes for the oData workshops since we are going to be leveraging it so much at work very soon.

Tags:

Irks

Windows 8 in one Word...

by Robert Mills 8. March 2012 19:39

Fail.

This isn't said lightly, I have always been a Microsoft kind of guy, but if Microsoft is planning on shipping this (I am posting from it now) operating system in the next 12 months, it can't do anything besides fail.

Are things stable, sure. Do I see crashes etc? No, not really.

However, I am a Windows guy, been using Windows since...well, since Windows came out.

I bought an iPad, and having never used any of the Apple OSes that had GUIs, it was very easy to use, very intuitive.

I bought an Android tablet (Asus Transformer, absolutely love it), never really doing anything in Linux, very intuitive, very easy to use, but slightly below ease of use of the iPad.

Then Windows 8 comes out. I have installed it on my work laptop, my home workstation, and went out and bought a tablet (Acer Iconia W500, love it, not digging the dock after using the Transformer's *awesome* dock).

The Windows 8 user experience is a wreck. Using it from a keyboard and mouse, and using it from a tablet are literally like having to learn two OSes. Everything behaves totally different. I've been using Windows all of my life practically and it is the first OS I have used in the last decade where I literally started thinking I need a manual. I find myself looking on the internet looking for hotkeys for things because it is so much less efficient to navigate to anything that isn't on the start screen than it ever was in prior versions of Windows.

And god forbid you have 2 monitors. It's all like 'hey look, I get a task bar on both screens now! Welcome to 10 years ago!" Then you realize it is only an illusion. So far it looks like they only mirror each other, so it isn't really providing any value. And, awesomely enough (not), if you move the one with the clock to your other monitor so you can, I don't know, SEE THE TIME, that is now where metro loads, so it again covers the clock.

Also, metro seems to be so half baked as to be ridiculous. The back button on the mouse doesn't go back, the escape key doesn't close the charm/menu/whatever you pulled up, except, oh wait, sometimes it does. If you are working on the desktop and open metro, and then click on your app on the other screen, metro goes away. However, if you do the same thing, but this time open an app before clicking back to an app outside of metro, metro just returns you to the start screen. It's like rolling dice to see what behavior I am going to see at any given time.

If you open a movie or music in the metro app, you can't lower the volume of the music without lowering it for all of Windows. And if we take this a bit further, technically, it should be a Metro feature, you should be able to individually control any apps volume in Metro, since it is the fancy new interface. Come on, give us 2012, not a worse version of 2000.

Removing plugins from the browser in Metro. Now this one is interesting, I understand, and I think it is the right answer, but give us some codec support. Nothing says lovin like not being able to visit any media sites without hitting the desktop IE or installing a 3rd party browser.

They are calling this a consumer preview, but all I can see it doing is helping Apple sell more iPads. The company I am working at is looking at possibly arming a large percentage of its workers with iPads, and if I went to the powers that be and pitched them on Windows 8 instead, my next blog post would be about me, looking for a job.

Microsoft is struggling lately, and Windows 8 sure isn't the cure.

Tags:

Irks | Microsoft

Entity Framework, oh how you cut me

by Robert Mills 20. January 2012 17:00

So, Linq to SQL is awesome, but I have never really much cared for Entity Framework.

At work, we are moving to using WCF Data Services for our database access, and using Entity Framework since configuring WCF Data Services to use linq to sql is about as pleasant as punching yourself in the face...3 or 4 thousand times.

So, today I needed to add a view, a simple thing really that did bascially 'select distinct somecolumn from table where somecolumn is not null'. I drag and dropped it on the design..8 times. It never actually took.

After some discovery, I notice that down in the bowels somewhere it was gently telling me there was a problem, but not really telling me what. Interestingly if you open the edmx in notepad, you will notice it added my view, except it commented it out  stating the view 'does not have a primary key defined and no valid primary key could be inferred'.

Awesomely there isn't any way to tell it that column is the inferred private key, can we move on. Instead, I end up following an article on MSDN telling me how to manually edit the edmx file to add about 4 thousand new things to get it to recognize it and let me use it.

Of course I then had to add another table later, so I had to redo it all again.

Humorously, the MSDN article says 'modify your database schema so that each table has a primary key or so that one or more columns of each table or view is non-nullable or non-binary', which I tried, the view had distinct, non null, where is not null etc all in there, but it refused to work by conventional means.

It is no wonder to me why Microsoft has so much trouble trying to kill off linq to sql when EF is such a drama queen, and so often.

Tags:

Linq | Irks

Source Code For Invaders My First XNA Project

by Robert Mills 16. December 2011 17:52

As mentioned in my last post (http://blogbybob.com/post/2011/12/08/XNA-4-Project.aspx) I made an 'clone' of the Atari 2600 version of Space Invaders to try out XNA. It isn't perfect, there are a couple small bugs, some by design, some not, but you can get the code here: Source Code

I was going to network aware it, but I think I am saving that for the next game. I am going to move on to something in 3d. Suggestions welcome!

Tags:

XNA

XNA 4 Project

by Robert Mills 8. December 2011 11:19

A friend of mine at work started looking at the XNA stuff and decided he wanted to make a game. I decided to see how easy the XNA framework is, but didn't want to have to do any artwork (I am lazy).

What did I come up with? A space invaders "clone", but not just any clone, a clone of the Atari 2600 version!

I'll upload source code and a link to the installer in a bit, I would say today, but the Diablo beta is getting in the way of real work.

Tags:

Games | XNA

Diablo 3 Beta Invite

by Robert Mills 8. December 2011 11:14

Just as I start to make some good progress in Skyrim, Blizzard sends me a beta invite for Diablo 3. I think it is a ruse to keep me from coding!

Is this World of Warcraft?

Tags:

Games

Adding a custom config section

by Robert Mills 26. November 2011 19:10

This is a note to my future self as I had to sort this out this time around. If it helps you, great, else, please ignore it.
The app.config:
<configSections>
    <section name="TexturePacks" type="BlogbyBob.SpaceInvaders.ConfigurationSections.TexturePackConfigurationSection, ConfigurationSections" requirePermission="false"/>
  </configSections>
  <TexturePacks>
    <texturePacks>
      <add name="Classic" playingFieldTexture="Background" scoreBoardTexture="Scoreboard" bunkerTexture="Bunker" blimpTexture="Blimp" playerTexture="Player" playerBoundryTexture="Boundry" missileTexture="Missile" invaderTextureRow1="InvaderRow1" invaderTextureRow2="InvaderRow2" invaderTextureRow3="InvaderRow3" invaderTextureRow4="InvaderRow4" invaderTextureRow5="InvaderRow5" invaderTextureRow6="InvaderRow6" />
    </texturePacks>
  </TexturePacks>
The supporting code:
public class TexturePackElement : ConfigurationElement
    {
        [ConfigurationProperty("name", IsKey=true, IsRequired=true)]
        public string Name { get { return (string)this["name"]; } }

        [ConfigurationProperty("playingFieldTexture", IsKey=false, IsRequired=true)]
        public string PlayingFieldTexture { get { return (string)this["playingFieldTexture"]; } }

        [ConfigurationProperty("scoreBoardTexture", IsKey=false, IsRequired=true)]
        public string ScoreBoardTexture { get { return (string)this["scoreBoardTexture"]; } }

        [ConfigurationProperty("bunkerTexture", IsKey=false, IsRequired=true)]
        public string BunkerTexture { get { return (string)this["bunkerTexture"]; } }

        [ConfigurationProperty("blimpTexture", IsKey=false, IsRequired=true)]
        public string BlimpTexture { get { return (string)this["blimpTexture"]; } }

        [ConfigurationProperty("playerTexture", IsKey = false, IsRequired = true)]
        public string PlayerTexture { get { return (string)this["playerTexture"]; } }

        [ConfigurationProperty("playerBoundryTexture", IsKey = false, IsRequired = true)]
        public string PlayerBoundryTexture { get { return (string)this["playerBoundryTexture"]; } }

        [ConfigurationProperty("missileTexture", IsKey = false, IsRequired = true)]
        public string MissileTexture { get { return (string)this["missileTexture"]; } }

        [ConfigurationProperty("invaderTextureRow1", IsKey=false, IsRequired=true)]
        public string InvaderTextureRow1 { get { return (string)this["invaderTextureRow1"]; } }

        [ConfigurationProperty("invaderTextureRow2", IsKey=false, IsRequired=false)]
        public string InvaderTextureRow2 { get { return (string)this["invaderTextureRow2"]; } }

        [ConfigurationProperty("invaderTextureRow3", IsKey=false, IsRequired=false)]
        public string InvaderTextureRow3 { get { return (string)this["invaderTextureRow3"]; } }

        [ConfigurationProperty("invaderTextureRow4", IsKey=false, IsRequired=false)]
        public string InvaderTextureRow4 { get { return (string)this["invaderTextureRow4"]; } }

        [ConfigurationProperty("invaderTextureRow5", IsKey=false, IsRequired=false)]
        public string InvaderTextureRow5 { get { return (string)this["invaderTextureRow5"]; } }

        [ConfigurationProperty("invaderTextureRow6", IsKey=false, IsRequired=false)]
        public string InvaderTextureRow6 { get { return (string)this["invaderTextureRow6"]; } }
    }

    public class TexturePackElementCollection : ConfigurationElementCollection
    {
        protected override ConfigurationElement CreateNewElement()
        {
 	        return new TexturePackElement();
        }

        protected override object GetElementKey(ConfigurationElement element)
        {
            return ((TexturePackElement)element).Name;
        }

        public TexturePackElement this[int index]
        {
            get { return (TexturePackElement)BaseGet(index); }
            set
            {
                if (BaseGet(index) != null)
                {
                    BaseRemoveAt(index);
                }
                BaseAdd(index, value);
            }
        }
    }

    public class TexturePackConfigurationSection : ConfigurationSection
    {
        [ConfigurationProperty("texturePacks")]
        public TexturePackElementCollection TexturePacks
        {
            get { return (TexturePackElementCollection)this["texturePacks"]; }
        }
    }

The client code (kind of, chopped out what I don't need for this example.

            TexturePackConfigurationSection section = (TexturePackConfigurationSection)ConfigurationManager.GetSection("TexturePacks");

            for (int t = 0; t < section.TexturePacks.Count; t ++)

            {

section.TexturePacks[t]);

            }

Tags:

XNA Map editor

by Robert Mills 12. November 2011 10:06

A friend of mine at work is learning to write C#, and decided to do so through writing some small games with XNA.

He found a XNA Map Editor at XNA Fantasy that seems to have been abandonded in late 2008. The author's comments say it is free to redistribute as long as you give him credit.

I've updated it to build in Visual Studio 2010, .net 4 and the latest XNA framework and uploaded it here.

 

The only real verification that I have done is it builds, and when I hit go, it opens the application. My friend says it is working as he expects though, so you are welcome to download it, send thanks to the original developer, and you milage may vary :)

Tags:

Asus Transformer Prime

by Robert Mills 12. November 2011 09:58

Today I am being punished for being an early adopter. Not only do I 'need' the new tablet (I have a gen 1 TF) but I will have to buy a new dock.

Fortunantly, I kept the boxes for my existing tablet and my existing dock. I think they are going to be Christmas presents for the wife :)

Tags:

Home Server 2011 unattended install file

by Robert Mills 25. October 2011 19:36

Stole this off the internet somewhere, but this is here for when I need it again. Home Server unattended install file for the HP Homeserver thing.

[WinPE]
InstallSKU=SERVERHOMEPREMIUM
ConfigDisk=1
CheckReqs=0
WindowsPartitionSize=61440

[InitialConfiguration]
AcceptEula=true
ServerName=HOMESERVER
PlainTextPassword=SomePassword!1
PasswordHint=some password hint
Settings=All

I have one of the older boxes that doesn't auto boot to the USB drive, so I had to hit F12 repeatedly for 10 seconds at bootup, hit down arrow 7 times and then press enter blind.

Tags:

About the author

My name is Robert Mills and I am a .NET developer in Charlotte(ish), NC. While everyone is welcome to peruse, most of these posts won't actually provide any value, they are just a reminder to me so I won't forget.

Tag cloud

Month List