Sunday, September 22, 2013

Pidora out. Raspbian in.

I tried to like Pidora. Really did. It's not that I dislike "systemd" - I don't. I just hate that it seems most of the other hobbyists are using Raspbian. It's so annoying to find someone with a great tip only to discover that they're referring to Raspbian, not a system-d setup. Meh.

So, we'll see how this one compares. I've been using the Pidora from the beginning and got all the stuffs working that I needed so far right up to setting up a fixed IP for it so I can connect it directly to the Macbook Pro for working in coffee shops.

Saturday, April 06, 2013

I can haz fonts?

I'm not a graphical designer, and as such don't pay much attention to layouts, design and fonts. But this is sort of cool. Cufon.

I was inspecting someone's HTML to steal how they'd done their layout to learn how they did their layout and saw the tag ho's feeling constrained by the standard set of fonts that are available it's a godsend.

There's a little write-up here, and here.

Friday, March 29, 2013

Resharper as a coding instructor

I've been using Resharper a lot more lately. It's evolved nicely; while still a little annoying and intrusive the productivity increase is dramatic. Many of the features are things Microsoft should have added into Visual Studio years ago (they've been in Eclipse for what, 10 years?).

One of the neat things is that it is constantly suggesting better ways of coding or of structuring your code. I find myself learning about attributes of C# that I'd either forgotten, or hadn't know about.

I have a list of transactions that I want to add to the budget month container. Traditionally we might have done something like the following.

foreach (var transactionItem in items)
{
 month.AddTransaction(transactionItem);
}

This simply iterates over the collection of items, and for each one it calls the .AddTransaction method on the month.

My more modern method might be more like this:

items.ForEach(i => month.AddTransaction(i));

Resharper, though had a suggestion. Why not simplify that line even further? I'm game - so I clicked the suggestion. After all, there is always undo. This is the line;

items.ForEach(month.AddTransaction);

Simple, concise, and clear. I will confess that I had to run the unit test it in the debugger and inspect month's transactions just to make sure that the items had actually made it in there. Yup. Sweet.

Wednesday, March 27, 2013

RavenDB with MVC 4

I've decided to use RavenDB for a project that I'm working on. I've been researching a number of database options for a site which could eventually have pretty rigorous traffic load. Though I really like MS SQL as a traditional relational DB I've seen it, when coupled with naive EF use, become a horrible drag on performance.

So far I'm pretty impressed. It is very nice not to have to setup and maintain a dedicated ORM just to translate from the real world of objects into a flattened and normalized set of tables. I've created a set of "POCO" database classes in my BI/Services project (though for a larger project I'd probably simply have a dedicated database project). For the classes that will be the document that is stored I've added a string property to receive the document ID. For those that I'll explicitly define the key I simply added a method to the DB class "GetKey()" - in the example below the key is "UserProfile/curtis.forrester".

public DBModels.UserProfile GetUserProfile(string username)
{
    using (IDocumentSession raven = Store.OpenSession())
    {
        UserProfile user = raven.Load<UserProfile>(UserProfile.GetKey(username));
        return user;
    }
}

public void StoreUserProfile(UserProfile profile)
{
    using (IDocumentSession raven = Store.OpenSession())
    {
        raven.Store(profile, profile.GetKey());
        raven.SaveChanges();
    }
}
This is all that is necessary to store and load a UserProfile document. Since the data is stored as JSON I also modified the class and had no issues at all. I added some properties, loaded the UserProfile, set the new properties and stored the document and the updated "record" now reflected the new version.

The flexibility that Raven provides to generate keys for new documents is fantastic. From fully letting the server handle it to providing a method for you to register a custom handler is great.

Like all databases some knowledge and experience will be required to make sure that performance is up to par. I did some initial testing where I stored a bunch of documents that had collections and then loaded them. I found that loading each individual document was much slower than using their bulk loading approach. I found that the sweet spot was to load between 25 and 50 documents. When I increased the number to 500 or 1000 it was as slow as loading each one-by-one.

Wednesday, March 20, 2013

SOLID vs GRASP

I have, like I'm sure you have, encountered the "experts" who ask the normal buzzword questions:

  • So, do you follow the "Gang of Four" patterns?
  • How about SOLID - do you use that in your job?
  • Have you used dependency injection techniques?
This reminds me a lot of how our culture was in the late '90s with people dressing in the robes of either Booch or Rumbaugh. Your school of thought and the modeling approach you used was like a religion. Fortunately UML fixed all of that (ya, remember UML?).

The SOLID question has gotten me thinking. We all know (or should know) what SOLID is all about. That doesn't mean that we agree. When this acronym was starting to become generally used about the same time most of our ".com" companies were collapsing I remember debating its merits with others I worked with. In general I was in agreement with the principles, and certainly with the spirit and goals of the rules.

Single responsibility principle - that a class should have one role or function. Absolutely. This keeps the overall design clean and it is generally easy to understand what stuff does and how they are relating to those they interact with.

Open/Closed principle - that a class is open for extension, but closed for modification. No way. More on this later.

Liskov substitution principle - that objects should be replaceable with their subtypes. On this I generally agree. But this is especially good when you use a factory, and follow the "I" of SOLID and have defined discrete, functional interfaces. In that case especially a consumer of your class doesn't care if it's the original parent instance or some later substituted child.

Interface segregation principle. Just give your customer what they want. If all they need is a small subset of what the class provides let them see your class through the eyes of a simple interface. The less any one part of a software system knows about any other the easier it is when refactoring must be performed. It is also easier to do TDD and write concise unit tests.

Dependency inversion principle. This generally good principle has led, in my opinion, to some of the most unreadable and hardest to debug code. However, when done correctly and cleanly this makes for very "agile" software design.Microsoft recommends using a service locator - and while at design time it's not always obvious which service you'll be using, that's just the point. It doesn't and shouldn't matter. Only that you'll be interacting with some service at run time that will provide, well, the services you'll need. Unit test are greatly simplified using frameworks like Moq. Back in my Java days we used Spring for injecting configuration.

So, what is my issue with "SOLID" and why have I mentioned GRASP in the title? Well there are two reasons. First I do not at all agree with the fundamental principle of the "Open" part. One of the original features of "OO" was that there was an exposed interface that provided a contract to the user. How the implementation did this was of no concern to the outside consumer. This meant that the class could be completely rewritten with no disturbance. That I might need to have the code reviewed again (a silly concept) just because the implementation has changed ignores TDD - if there are a series of complete unit tests that automatically verify that the class is abiding by its contract any and all changes should be permitted.

The interface, and the contract, of a class should never change - it can be extended if need be, though I personally feel that even this isn't a good idea. If a particular class needs to provide more and new functionality this is to me an indication of a need for a new subclass. Yet "SOLID" purists seem to feel that Bob Martin is a deity and these principles sacred. Sacred cows make the best hamburgers!

My second objection is that these principles, while great, only reveal a part of the overall field of good practice.

GRASP

Enter yet another acronym, but an important one. "General Responsibility Assignment Software Patterns". That one had to have been born in a pub over a few beers. These "spoke" to me when I started hearing them packaged together along with the concept of Domain Driven Design. These are patterns firmly planted in the real world. 

In my current role as an ASP.Net MVC developer the "Controller" is critical to handling all user interface interaction. Factory patterns have served me well for allowing a system entity to ask for a service or module that will provide the named function and allowing the factory to determine what to create and return.

Services, delegates, and loose coupling - these are standard motifs that we use every day that that provide robust models of software architecture.

It is not so much that I prefer "GRASP" over "SOLID" any more than I prefer Hibernate over Entity Framework. They both have their place and both their advantages. But purists that want to ask interview questions like "do you use SOLID in your current job" need to understand that there is a wider field of study that any one acronym simply does not encapsulate. 

Finally, a semantic point: we don't use SOLID in our job - we become it as developers. We don't use the patterns of GRASP - they become a part of us. When they are the fabric from which we are woven we become the types of developers that create well-designed and agile software.


Friday, March 01, 2013

TSA Doesn't have to Suck

My work took me to Columbus, OH this week for a two day trip. Actually, it took me about a world away from Columbus to a little town called McArtur where there is the only official light in the county. There is also one of the oldest companies still in existence in Ohio having been established in the late 1800's. Then manufactured dynamite for mining; they now manufacture much more powerful explosives. I had a unique opportunity to see their operations up close since I was installing some software that I had written to enable them to track product through manufacturing, packaging and onto a truck destined for European customers. In short, the gig was "a blast"!

When I left Atlanta Tuesday morning I had the usual unpleasant experience of walking through Atlanta's TSA gang. While the lady who was checking passports and boarding tickets was very pleasant it all ended there. As one approaches the scanners they're greeted with somber-faced agents who tend to command and yell rather than instruct. I get it - they deal with clueless travelers all day. They don't get it - we're clueless cause the rules change and not everyone travels that often.

Traditionally we've had to walk through metal detectors. They now have these body scanners that require you to walk in, face a certain way, and raise your hands above your head as if you were a criminal. Humiliating and demeaning that it is, what is worse is when (literally) three agents yell at you to raise your hands. You're powerless to even look at them for fear they'll ID you as a terrorist and pounce on you. I escaped security with my usual frustration and resentment.

When I left the plant I changed to street shoes, changed my pants, changed my shirt and washed my hands. I had been warned that I might set off the detectors at the airport. I did. The body scanner detected something and so the gentleman told me he needed to do a pat down. I have a good sense of humor and they all seemed friendly. When he patted my rear-end side I went "woo!" in fake enjoyment. They all laughed. He says, "Oh, great - right in front of my supervisor." It was fun. Then he swabbed my hands and headed to the machine. Says I, "Oh boy - if you knew where I'd been the last two days." Jokes he back, "Not sure I want to know."

And the machine started screaming - "Explosives! High Explosives! Grab the guy." And I reply, "Yup - I was afraid that would happen."

The next 15 minutes or so were one of the best experiences of both professional and simple human interaction. They, naturally, did their job and followed procedure. But they were very friendly and polite about it. They knew where I had been, having seen other employees and their family come through and set off the detectors. They did a full pat down, and searched all my stuff. They explained what they were doing every step of the way, and even the beefy security guys that showed up (appearing to be ex-military) were friendly. They were focused and professional - had I been a bad guy there is no way I'd have made it through. But they were also quite willing to laugh, smile, and answer my questions.

What is the difference between the TSA in Columbus, OH and Atlanta? There are some, for sure. One set seem to have a chip on their shoulder and thrive on the power they have while the others are simply Americans doing a very important job. One group could care less to leave you with some dignity while the other respects you as a fellow American deserving of respect.

TSA doesn't have to suck. TSA agents don't have to be nasty, grumpy and bossy. They can instruct you as to what they need you to do in a manner and tone that allows you to endure the delay with dignity and respect. In return, I believe that travelers will show them respect and will go through the security-experience with patience.

Monday, January 21, 2013

PyCharm and Google App Engine on Mac OS X

I really like PyCharm. I've started playing with Google's App Engine to evaluate it for hosting a project. I wanted to build the site in Python - ultimately with Django. I've had it setup and working just fine on my Windows 7 dev box at home, but I really like to be able to also work on my laptop at the local C8H10N4O2 establishment.

Naturally, the PyCharm page that walks through an intro to using PyCharm with GAE uses Windows as the setting. There is little about setting up PyCharm to point to GAE for Mac OS X - other than stating that it will automatically detect it. It didn't. Bummer.

After poking around a bit here's what I had to do:

  1. Make sure that symlinks are generated with GAE launcher. On installation it will ask if you wanted this. If you said no then, simply hit the "GoogleAppEngineLauncher" menu and choose "Make Symlinks...". It'll ask you to authenticate.
  2. In PyCharm, Preferences drop down about half way within the project settings to the Google App Engine item. Enable GAE and enter "/usr/local/google_appengine" for the path. The warning message should disappear as soon as you've entered this.
  3. Optionally enter your Google account email/password if you want to publish the application directly to Google. (I didn't since I'm primarily working on the project local when on the laptop.)
That's pretty much it. Now the code autocompletion will work within Python code. Sweet!

As a side note, I've found the GAE to work sufficiently well, though setting it isn't totally straightforward. And, I've found that when I attempt to use the user login stuff - since I've constrained my application to only the user accounts for my domain - always returns a nasty looking exception page.

Wednesday, January 16, 2013

Subaru BRZ - My experience so far

I ordered my BRZ without ever having actually seen or driven one. This was typical for buyers last year and will probably continue into this year (2013) due to the still-diminished supply. I have absolutely no regrets. The car has not disappointed. I had researched it, had read personal reviews from owners, and felt that it would be a great car. It is.

I have a manual transmission, Limited edition in the Dark Gray Metallic. I had them install the mirror with the Home Link and auto dimming. I bought it from Subaru of Kennesaw, who were absolutely fantastic (see the details below). I've had it since Nov, 2012.

Appearance

The car looks great. I get so many compliments by people - both those who know what it is, and those who don't. It's small, looks very sporty and just has very clean lines. It's a simple car with only a few "fancy" design elements to it. I've had high school girls (much to my embarrassment actually) beg to sit in it and take pictures of each other in it. I've had the 20-something guy at a Publix who was bringing my groceries drool over it - he knew all the stats. It feels good to own the car and to be seen in it. It doesn't feel too obscene from a price perspective, but it appears like it should.

Comfort

The BRZ is surprisingly comfortable for being a dedicated sports car. The seats have great support when dancing with G-Forces around corners and are sufficiently comfortable for the daily commute. They are a bit stiff and not nearly as comfortable as the seats in my Lexus IS from a vertical perspective, but are much more comfortable from a lateral perspective. 

I am 6'4" - tall for such a small car. The seat is not all the way back. There is about 1.5 - 2" more it could travel back. Everything in the car is within easy reach - shifting is natural. While I don't care for touch screen in a car (too distracting), it is within reach and sufficiently responsive (see below). Steering and operating the pedals are all natural and comfortable.

Forget putting anyone but the family pet in the back seats. If the passenger seat is moved forward two small kids could sit in the front and passenger-side back. I can't imagine any adult attempting such a feat. I've dropped the rear seats to open to the trunk, however, and have carried all sorts of stuff (including runs to Home Depot!).

Passengers have commented that the felt the seats were comfortable and felt great while I was being stupid around corners. This includes my 14 year old son and 74 year old 200 lb dad. It is a little difficult for me and larger people to get in and out since it is so low, but easier than with my Mit. 3000GT - which has much larger and heavier doors.

Handling

This is, by far, the signature feature of this car. The handling is exactly as it is billed - superb. The car corners better than any car I've driven. While many complained that the car shipped with crappy tires, I've found them to be just fine. With the traction control enabled it is somewhat difficult to get any drift; even with sport mode enabled the car still just sticks around corners. When it does drift the feeling is very predictable and handling very responsive.

The car can be steered with the accelerator, just as you'd expect. Under and over steer can be achieved easily. I've come into corners faster than I would on my motorcycle and there was that moment of "oh crap, I'm coming in too hot" and I've just hit the accelerator a bit and power steered right through it. (Weeeee!) And yes, no tickets yet - one doesn't really have to go fast in this car to have fun.

I may give into the temptation to take the car onto the track, especially when I'm nearing tire-change time.

One final note - and a very important one. My Lexus IS-250 was absolutely horrible in the rain. It bordered on precariously dangerous. I hated highway driving in the rain in that car. My Camry did great, especially with rain tires. However, this BRZ is by far the best rain-driving car I've owned. Even with the stock tires everyone bitches about. I can drive at any speed in any rain on any road with total confidence. I've hit puddles (small lakes, really) and just splashed through them. Driving in the rain is an absolute (and surprising) delight.

Performance

The BRZ has about 200 HP and 151 ft lb of torque. The focus of this car is fun and handling, and is not intended to be a "hot rod". This is true. In my opinion the car is slightly underpowered. It will get up and go - my son loves when I wind it out. The shift between 1st and second comes too quickly, but between 2nd and 3rd there is a nice kick - if the RPMs are above about 4500. At the 9 second 0-60 rate it doesn't set any speed records, but is fun. And that is the goal.

I would like to see the car have about 20 to even 40 more HP simply for passing - there have been times when I wanted to get around a person who was too slow and the car really doesn't have enough "umph" to guarantee that you will safely get past them before they notice and subconsciously (or deliberately) speed up.

The biggest design flaw of the Boxer engine is that 4k torque dip - it is very much a factor in any sport driving.  It's like it starts to die at about 3800 and really doesn't kick back in until about 4400 RPMs. This is the primary reason I've considered dropping in replacement exhaust and intake - and maybe computer tweaks. For normal daily commute driving it's not a problem at all - I generally shift at around 4K for gas milage reasons. But for sport driving - meh.

Efficiency - Gas Milage

Let's face it - one doesn't buy a sport car to get great gas milage. But it's delightful when your daily commute is supported by efficiency. The modern Corvettes can get 26+ for pokey driving. I'm currently averaging 27.3 overall. My current commute is suburb to suburb, so there are a number of lights requiring stop and go.

The decent milage is nice since Subaru/Toyota requires premium gas.

Sound System, Nav, Climate Control

The sound system is decent. The sound is ok. It's stock. You're not going to win any boom boom awards. I play hard rock, classical and talk and all are sufficiently good. It comes with the preview subscription to XM, which has a few decent channels.

The climate control works great. It has a dual mode (though in such a small car really only means that one will have a higher fan output than the other side). It warms the car up very quickly and cools it off very well. I've generally just left it at about 70 and forget about it.

I have the heated seats and set to the rapid heating mode will fry your behind in a matter of only a couple minutes. I hardly ever leave it on - it's just to get things warmed up initially in a cold morning.

The navigation/maps? Worthless basically. It locks out features when the car is moving and I've never been able to successfully enter an address. If you do happen to get a destination entered it does perform fairly well - the speaking is helpful and the display readable. It will show large highway signs when you're coming to a split. But generally I simply use my Google maps on the iPhone which will (usually) speak through the sound system.

Naturally, I did change the ugly Subaru stock startup navigation screen with a Bart Simpson one.

Dealership Experience

If this car was only available through Toyota as a Scion I would have probably never bought it. I absolutely hate Toyota dealerships. The only way I would have bought it would have been if I could have purchased it through my Lexus dealership, which I love.

I've also been in Subaru dealerships - there generally is none of the high pressure, slick sales pitch you find at a Toyota or Nissan place. But, you can also often wander into a Subaru dealership and not see signs of life. I bought my BRZ through Subaru of Kennesaw - they were absolutely great. No pressure, great information and just all around good people. They presented the options available, but never tried to manipulate me into a decision. I had forgotten my checkbook since they'd said I could just use my debit card for the downpayment - but they didn't know I was going to drop $10K. No problem. We completed the deal, and the finance manager - who lived near me in Cumming - just had me drop off a check at their sister dealership in Cumming the next day. It reminded me of old fashioned country business - based on character and trust.

In Closing

I love the car so far. The quality and feel is solid, handling is fun and the overall package has reignited my love of driving. Until I can afford a Ferrari, this will do very nicely :)

Updates


  • Feb 21, 2013 I took the car in last week for the first service, which is mostly just an oil change. The odometer reads just past 3K - I think they recommend it at 5K but don't recall. I didn't have the time to drive to Kennesaw for the service, which I intended due to my good experience with them. But my office is literally across the road from the Gwinnett Subaru dealership. In a word, they were also great to deal with. I got an appointment the day after I called and they even dropped me off and picked me up from my office. (I'd have walked, but playing "Frogger" on Satellite Blvd in the rain sounded too exciting to me.) Jill was my service rep and took good care of me - including calling multiple times to remind me my car was done and urge me to hurry since they were closing.

Tuesday, December 18, 2012

Securing weapons - a grave responsibility

My previous post on gun control is already one of the highest traffic postings. And judging by the few responses and email's that I've gotten (I generally don't post responses) the readership reaction will pretty much fall in line with the general positions on the subject: those who are for stricter controls on guns will hate it, those for gun rights will approve.

What must be remembered is that ownership and operation of any tool that has the potential to harm or kill a person comes with a grave responsibility. To own a weapon is to accept a responsibility to control its use. "Gun control" starts with the person who owns the gun.

The stories of children and and adults who have killed with weapons owned by a parent or friend are cases which could almost certainly have been prevented. There are very affordable and very effective products to secure guns. These include the very good products from GunVault (my personal choice)- who has a great lineup of product to secure hand guns, to more full-sized cabinets. There are other strategies such as locking the bolt of a rifle in a safe and gun locks. (You can buy 3 of them at Amazon for $22.)

The sad reality is that too many people own guns but have not secured them. It's simple: if we have a right, but with that right comes a grave responsibility. I personally favor two things: 1) Require that gun owners must demonstrate that they've handled their tools responsibly and taken care to secure them from wrong or unlawful use, and 2) The courts must hold parents and others responsible where they have not and their tools are used to kill others. No, I don't mean that the police can come knocking on your door and do surprise inspections, but if care was not taken then they must suffer sever penalties. This would send the chilling message that having a cache of guns sitting in the corner is a recipe for a deadly disaster.

We don't allow dynamite to sit around. We don't leave nuclear weapons unsecured. We don't leave the keys in the F-14. We simply do not provide the temptation or access to those who would use them for harm. We also should not leave our tools of protection, of sport, and of historic collectable significance freely available to the chemically induced mood swings of angry teens.

Saturday, December 15, 2012

Gun control does not solve the problem

I don't hunt. I simply do not like the idea of killing something. Were it necessary to hunt to feed myself and my family, I'd hunt. I do find it fun to shoot but that is not why I am "pro gun". I have a carry permit and carry a gun to protect myself and those around me. It's that simple. It's a dangerous world and there are crazy angry people in it, and I have a right to defend myself. I know how to use it, and I think calmly under pressure. If I find myself in a situation where there is an "active shooter" you can be sure that I'd respond. And I'm not alone - there are thousands like me (like stats?).

The idea of police protection is a myth. The NY Times published a revealing article on the climb in violent crime due to an increase in police response times. They cite a statistic of an increase from 7.5 to 8.4 minutes in the average response time - that's 8.4 minutes until the police show up (14 minutes in Milwaukee, 12-48 minutes in rural Virginia areas! Atlanta took slowest at 11 minutes, 11 seconds in a survey). Start a timer (I'll wait) and see just how long 8.4 minutes is. At the Colorado theater shooting the police showed up in 1.5 minutes. This was too late. Why did no one there defend themselves?

In Detroit, which has suffered from one of the worst economies in the Nation, the police are simply unable to protect the citizens, who have taken to defending themselves. While this is not a good situation, it is a necessary one. When (and where) the police can not defend the population, they must defend themselves and their families. If a person - crazy or not - knows that a location has people who are armed they will choose another location to attempt their crazy killing spree.

We must change our way of thinking. We need to stop this trend of relying on the government to provide and protect us. We are Americans - we have always been self-reliant and courageous. We have always fought hard for what was right and valued our individual rights. Why the people today want to give up their rights for the myth of security is beyond me. But the fact remains, if there were trained, armed people at or near these situations less people would have died. The response time for someone already at the scene is immediate - they are already there and ready to respond.



Gun control is not the answer - it is an ineffective solution to a rare (though admittedly a highly emotional) problem. The recent mall shooter in Oregon used a stolen AR 15. He broke the law twice - once when he stole the weapon and another time when he walked into the mall and began shooting. We have laws in this country about assault and about murder. They're both illegal. Were we to pass a law that makes gun ownership illegal the old mantra kicks in: "When guns are outlawed, only outlaws will have guns". There is simply no way to prevent the flow of weapons into our large country. See how well our war on drugs [sic] has fared with preventing the flow of illegal chemicals.

I live in a safe area. There isn't much crime in Forsyth County. But I work in Duluth and travel into Atlanta. I feel it my responsibility to be able to defend myself and those around me. I do not have  "cowboy" mentality. I find it very sobering to think that some day I might need to respond with violence. Yet, I believe that all able American's need to be empowered and be held responsible to help make our society a safer place. Arm the citizens and they will be protected.

Friday, October 05, 2012

Fun with ADB

It seems you can connect and debug the Android tablet over WiFi. Way cool.

Enable it on the Android device running 4.1.1+ under Developer Options, Debugging and check ADB over network.

Then on the desktop in my android-sdk\platform-tools folder:
adb connect 192.168.0.106:5555
connected to 192.168.0.106:5555

Viola! Neat stuff

Thursday, October 04, 2012

Hacking Samsung Galaxy 2 7.0

I mean leave the stock Samsung kernel? pfft! Where's the fun in that? Besides, I want to get Android 4.1.1 on this puppy.


  • Odin - Samsung Flashing Application
  • ClockworkMod - ClockworkMod directions
  • I downloaded the "P3113 - 6.0.1.0" one
  • Follow the steps in the ClockworkMod directions
  • CyanogenMod 10 - directions
  • I downloaded the Google apps and nightly build for P3113
  • Copied zips to the internal card on the tablet. I just put them in the root.
  • Booted into recovery and flashed CM10 zip - love the confirmation screen!
  • Did a wipe, reboot
Let me say, this community is great. There is a ton of work going on and good creativity. This is one thing that is seriously missing from the iOS community - different target, I know. But there is more of an adventurer/hobbyist feel to this one.

The upgrade went smoothly and it all appears to work as it should. I don't care for the default keyboard - the Samsung one was a little nicer. I also expected the device to tell me it had 8GB but still reports only 4 - Samsung must have absconded with the other 4. But I have a 16 GB external card so storage should be sufficient.
Are you really, really sure?

Wednesday, October 03, 2012

Samsung Galaxy 2 WiFi

I picked up a Galaxy 2 to play with. Partially I wanted to see how Samsung's iPad knockoff performed, and partially because I want a real Android device to explore development with.

So far I like it - not an iPad by far, but not bad either. The biggest issue that I've experienced so far is the horrible performance of the WiFi radio. One floor above my newish Apple Time Capsule router and I'm hardly registering signal. Compare this to every other computer from iPads, Mac laptops, iPhones and HP laptops - all of these get sufficient signal even at the far reaches of my property and two floors above.

This device came with Android Ice Cream Sandwich (aka, 4.0). I'm going to try to upgrade it to Jelly Bean (4.1) though this might be a little more difficult than had I bought the Nexus. It's an 8 GB device, but there's only 4 left after the Samsung bloatware footprint.

Those who know me know that I'm a borderline Apple Fanboy. I've not bought the new iPhone 5 though unfortunately I did upgrade to my phone and iPad iOS 6 (I hate the maps, but overall like it on my new iPad). So why fool around with Android? Because it's fun. Because I suspect that corporate users will ultimately be more comfortable with it over being tied to Apple, who they might feel is too much of a consumer company.

So, we'll see how this goes - but so far, I really like the little Galaxy 2.


Tuesday, April 06, 2010

Death from the sky; death demanding a "why"

The personnel of the US Military hold within their highly trained and motivated hands the technologically advanced tools of death. Their ability to take a life has repeatedly been illustrated over the past decade with our many battles in the Middle-east. This power, when supported by solid and accurate information and in the hands of responsible humans is still frightening in its severity.

Never has this been driven home for me more than the recent video of military operating from a flight platform delivering death to innocent civilians and media far below on the ground. While this story has been told and an investigation has been urged by Reuters officials, only now do we have actual video from the perspective of the helicopter and the soldiers who delivered death from the skies. (Fox News, MSNBC, WikiLeaks ) The video that has been released is obviously from an internal military source who feels strongly that this is wrong and took the risk to leak the video.

This video and the associated dialog of the soldiers is sickening. They are disassociated from the scene, and it is obvious - especially from our hindsight perspective - that they have misunderstood the situation. Where they saw AK-47's and rocket launchers we now know were really cameras and tripods. Where they saw a gathering of "insurgents" we now know was simply a gathering of civilians totally oblivious to the fact that death was hovering just over their heads with weapons of mass destruction targeted on them.

The very best that we can say is that we "F'd" up - we very badly screwed up in that situation. Unfortunately, I'm sure that what will be said by terrorist group recruiters is that this is further evidence of the terrible wickedness of the United States and decadent Western nations. They will see in that video the absolute depravity of our soldiers and their lust for murder and destruction. Too harsh of a description? I might have thought so before watching the video; now I feel that their accusation might have merit. The soldiers are desperate to kill; repeatedly they beseech their handlers for permission to rain down a hail of death and destruction. To the man who has a hammer everything appears to be a nail. To the man in an armored attack helicopter with a powerful machine gun everything appears to be a target and an insurgent.

The US - Obama and his administration - must not bury this. We must not ignore it. We must not deny our mistake. We must address this direct and fully. We must admit our mistake. We must admit our overzealous rush to determine that this was a situation that required a deadly response. We must bring those involved into a court marshall - we must decide if this was justified, if it was a mistake, or if it represents a failure of our entire policy and approach in that region.

If we do not approach this correctly I fear that the next generation of reaction out of that region toward we Americans will be more vicious and much more terrifying. Far from providing security for Americans the US Government has just guaranteed far more of a threat than we previously had. This episode will recruit strong and zealous young men and women into a war that will have no end; a war that will continue to spray the blood of the innocent across the pages of history; a war that will have no meaning or purpose except to make more wealthy those manufacturing the weapons of destruction and to make more frightening an existence on this lonely planet in a cold galaxy.

Properly addressed, however, and this situation could spell a turning point for America with the people of Arab states. Will we have the courage and the character to do the right thing? Will Obama? Will the Republicans? Will anyone?

Update 4/11: Gates on the Sunday circuit - "killing was justified". Me: "Bullsh*t". And, not only will this in fact effect our image abroad, it damages our image here. As a life-long Republican, fiscal conservative, and one who voted for Regan, and every Bush to come along - it damages my image of the U.S. policy. It just stinks, Mr. Gates. Bullsh*t.

Friday, February 26, 2010

ONVIF "plug-fest" wrap-up

This week I attended the ONVIF "plug-fest", where the various members of the ONVIF organization got together to test interoperability. This committee endeavors to create a standard for interoperability between security cameras, DVR's, other devices and the software that uses and manages these devices. I came to this party from the perspective of this software, in particular in testing the capabilities of my video streaming and viewing component. This streams video from the cameras in MJPEG, MPEG-4 and H.264. In short, it displays pretty pictures (hopefully). Each came to this "plug-fest" to test their conformance to the ONVIF specification, their interpretation of the text and requirements it laid out, and (ahem) their success in coding to that interpretation. This last ensured there was some rapid fixes being made on the fly to adjust code that may have performed a task not intended (often mistakenly called a "bug"; really just a rebellious feature).



The attendees came from local companies here in Stuttgart Germany, from other European countries and from as far away as Japan, Taiwan, Korea and India. It was a pleasure to meet and work with engineers from Sony, Samsung, Canon, Panasonic and Vivotek as well as EU companies such as Axis, Bosch, Softhard, and Dallmeier. Each brought a product in various stages of development. Some brought a production device with possibly a firmware in development for testing, while others brought circuit boards with cameras attached via a wire harness. The latter were the most interesting - it was entertaining watching them search for screwdrivers to attach power supplies and to see all the wires. It felt more like a robotics convention.

The spirit of this "plug fest" was great, and the ONVIF coordinators helped ensure this spirit - while many are direct competitors with each other the spirit was one of inquiry and learning. This is "geeks" coming together to test their creations. We'll leave it to the marketing boys to duke it out in the press and market. These were techies hooking up wires and watching messages flowing across the network. PTZ cameras swung wildly and images streamed as we made sure our mad-scientist inventions had come to life as expected. While I appreciate the stern warning of the organizers that we were not allowed to share pricing information for anti-trust reasons, I'm not sure any of us even have any idea of the price of our products. All we cared about was if our code could talk to the camera, and did it give me what I expected. No? Hmm, ah - that's an optional feature of the standard - got it.


In the end I hope that everyone has great success with their products and they sell a million of them, thus funding work on yet more "toys". I'm sure as we all refine our products in conformance with the language and intent of the ONVIF standard some of the fun will be taken from these plug-fests, but I also expect that the scheduled follow-up test meetings will also have the joys of success as features work ("yes!"), and the anguish of "huh? You didn't receive my message? Hmm - let me have a look."

Saturday, January 30, 2010

Seriously: Did The Onion invent Scientology?

Just admit it: The Onion invented Scientology. They simply had to. Every time I hear something about Scientology it seems so bizarre, so brazenly stupid that I expect to see the "ONN" logo in the corner indicating that it's another masterful piece of Onion reporting.

It's not, of course - but it could be.

Take the story of the actor Larry Anderson, who served as the cult's introductory spokesman for years, offering credibility to the credulous. He's left the cult and is asking for a refund of the money that he prepaid for services not yet rendered. They've refused, of course, since he won't agree to go crawl under a rock somewhere and not speak badly about the cult.

While that story is silly enough - it's the link from that article page off of Tampabay.com to his introductory video that just had me alternating between bursts of laughter and spasms of rage. I've included the four YouTube segments for your viewing pleasure below.

Tell me if you don't find the statements that Larry (or rather the brainwaster - I mean brainwasher who wrote the script, that is) so brazen, transparent, and obvious. Seeds of paranoia are sown, the government is out to get is and to control you, bla bla bla. Yes, we are a religion - the IRS says so and dozens of court cases say so - yes, we can be trusted cause we say so, etc. It is a propaganda piece designed to poison minds who are ill-prepared. It's sickening, really, and just amazing that it continues to remain a viable corporate entity with tax-free status as a church. Despicable.










Saturday, January 02, 2010

Massive Credit Card Cancellations?

This actually might be a good thing. With the new legislation about credit cards, intended to stop card institutions from gouging customers these banks and what-not are resorting to other tactics to generate revenue, according to MSNBC.

The good thing about this is that I expect people (like myself) who have kept cards around "just in case", and who are hit with big fees if they don't use them, to simply cancel them. I'm reviewing, for example, my American Express and a very low-credit limit Visa that I've carried for almost 20 years. If they are going to do this, hasta la "visa", baby. Maybe many others will simply eliminate their cards and (gasp) we'll return to a cash/sanity economy. (I'm not holding my breath, though.)

Sunday, December 27, 2009

Islam, that religion of "Peace"

Ever since 9/11 the portrayals of Islam as a "religion of peace" have bothered me. Anyone who has studied Islam at all both historically and in its various modern forms will know that the statement is simply untrue. When politicians parrot it they are either ignorant, are attempting to "bring out the best" in the Islamic community, or they do understand how devastating Islam can be and are attempting to pacify them. Islam has one goal: to dominate and subjugate the entire world under its rule and under Allah. You will either convert, will become subjugated, or you will die. It's that simple.

An excellent documentary on the subject is the movie "Islam: What the West Needs to Know". (Netflix, Amazon, also on Google Video). This should be required viewing in our schools - yet I fear that we are too "sensitive" and politically correct to take such a step.

Sharia law is the legal framework that Islamic people are ruled by. While in historic times it was praised for being much more fair and just than other legal systems - and is even an antecedent and inspiration for common law and our own constitution - we Americans would never wish to live under such a system.

It always befuddles me that liberal and well-educated Americans decry honest denouncement of Islam as being politically incorrect. They refuse to allow honest discussion about Islam. Yet, they simply do not understand what would happen to them should they fall under Sharia law.

For example:

  • The 16 year old girl executed in Iran for not being chaste (in the public square, no less).
  • On a Muslim woman with a Christian husband: Divorce him.
  • Is it not convenient that the Prophet said that anyone who criticizes the Prophet should be killed? You do know the penalty for blasphemy? So much for your "First Amendment" protection. So much for freedom of speech.
  • In Indonesia you can be stoned for adultery (Note the date of that article - Sept of '09, not 1509. That's today. Now. Want that in America?)
  • If a child is born of Muslim parents, it is not permissible for him to leave Islam.
  • Honor killings of women/daughters by husbands and fathers.
  • Update: Stinks to be a Sikh in Muslim/Taliban controlled areas. Pay jizia or lose your property.
Make no mistake - this is an on-going and high stakes war. Islam is almost as old as Christianity and claims a pedigree that predates it to the time of Abraham. Today it is very active. Even now as you are reading this apologists and strategists are promoting their agenda in a variety of ways. Their spokesmen release statements whenever a "Muslim" does some violent or atrocious act by denouncing any suggestion that the act was in the name of Islam as bigoted or racist. There are websites dedicated to educate and push back such as JihadWatch.org.

Americans like to think of religion as a personal decision - as something that each individual believes and observes. Islam is not a personal religion. It is a corporate system of governance and permeates every aspect of life. If a cleric issues a "fatwa" it is considered binding. We think of the "dark ages" when the Roman Catholic Church was powerful and was able to dictate even the laws and actions of civil leaders. In our own country we joke about the abusive and controlling church leadership who tried to make this country a "theocracy". That is the goal of Islamic clerics - you will be required to obey and to live under their control.

Am I being overly critical? Research what happens in countries that are tightly controlled by Islamic leadership - countries that are filled with a strong majority of Muslims. Look at Indonesia and African countries. Read the very well-written book Infidel; this will give a personal account of how women are treated even today in these countries.

If "Islam is a religion of peace" is true - if all of these violent acts and abuses are not in line with Islam, then what is the harm is strongly denouncing them? Why would Islamic clerics not join with civic leadership and help to bring those who do stuff like "honor killings" to justice and see them serve strong prison sentences. If these actions are not in line with Islam, they should be denounced loudly and strongly. The reality is, however, they are not. We would do wise to fully understand the foundation, history, and current manifestations of Islam before it is too late. This is not being a bigot. This is not racist. This is not an anti-liberal stance - it is not an ignorant stance. It is a wise and educated and very realistic assessment of the situation that we are facing. If we value our American ideals of individual freedom of religion and the pursuit of happiness; if the experiment in our country means anything to us and to this world, we would do wise not only to ensure that we continue to be true to our roots of freedom, but that we defend ourselves against the invasion of Islam. We successfully fought against Nazi and Communist Soviet Union threats; this is no less of a threat we now find ourselves faced with.


Wednesday, December 23, 2009

Men in Funny Dresses...raping children

Every now and again I find a link to yet another program, article or what not about the scandal - I'd say atrocity - of priests raping children. This video is about a year old from this time and done by the BBC's program Panorama.


Every time I encounter one of these I get mad - really mad. I have a son who is of an age that were we good, devout Catholics would be of a prime age for abuse. That makes me doubly mad.

Anyone who is still a Roman Catholic needs to seriously investigate for themselves this scandal and the policies that enabled it. This is real. It's serious. It has not been resolved. It will continue. The men in funny dresses that swing smoking censors around while chanting in an ancient, dead language are dangerous. They are dangerous to our intelligence and they are dangerous to our children. They should be considered as such and treated with extreme caution. Those who are noble have nothing to worry about in having this attention; those who have skeletons in their proverbial closets should fear. I suspect, however, that the relationship of the noble to the sinister is far imbalanced toward the sinister.

More Resources:

Monday, December 21, 2009

Sony updates Playstation's policy.

I received an automated email from Sony. Everything Sony does has a sort of flippant flair to it. This one does not disappoint. It seems they've updated their privacy policy and would like we users to know about it. That's nice enough; the part that's especially "precious" is this paragraph:

If you do not agree with the new Privacy Policy, please contact
Customer Service to terminate your PlayStation(R)Network account(s)
and do not visit our websites. Continued use of your PlayStation(R)Network
accounts or any SCEA website means you agree to the new policy.

Basically, if you don't agree with it, F off. Sweet. Maybe they should send out their updated policy on memory sticks?