Sunday, July 27, 2014

JSFiddler

I've been looking at several new technologies, including JavaScript. I have some ideas for single page applications (SPAs) and JavaScript is a necessity.

Searches for specific techniques quickly led to the site jsfiddle.net, a web site that lets one create, store, and publish "fiddles", small sets of JavaScript code.

I was impressed with the site. The user interface is elegant and flexible. It supports oodles of JavaScript libraries. It cleanly separates HTML, JavaScript, and CSS while allowing you to edit any of them.

Tools like jsfiddle.net are powering the accelerated development of web applications.

Yesterday I registered and created my first fiddle.

Wednesday, October 10, 2012

Early warning for the end of the contract

My contract was extended, yet I received a taste of the true end of the contract.

The contracting company uses a web site to report hours. They entered the initial (un-extended) termination date of the contract (October 5th) and did not update it when the contract was extended. After the 5th, the web site refused to let me enter hours. (Actually, it refused to let me sign on at all, which is another issue. I would expect the ability to sign in and review hours.)

A few e-mails to the right people got the problem solved. But it did get me thinking: what will I do when the contract ends? What would I do if the contract were to end early?

The opportunity was a welcome one. It forced me to evaluate my situation, which I think is pretty good.

  • I have some savings, so I can live without a paycheck for some time
  • My expenses are predictable and steady
  • I have a good set of contacts in the technical and recruiting worlds
  • I have a set of marketable skills

I can ponder the situation and I know that I can cope with it. That's a good place to be.

And a lesson: When the end of the contract approaches, reach out to people and ensure that everyone has the same understanding.

Tuesday, October 2, 2012

CMAP meeting: ASP.NET MVC4

I attended the CMAP (Central Maryland Association of .NET Professionals) tonight. The topic was "ASP.NET MVC4", a new version of Microsoft's web development framework.

Impressions of the meeting: Well attended. Every chair in the room was filled, with more attendees than planned. There were more attendees than the 'after meeting survey' forms, yet enough pizza for all attendees (at least those who desired pizza). It's nice to see interest in technical knowledge.

Impressions of the tech: This new version has some nice features. I'm not qualified to list them; I don't work with earlier versions and cannot compare them. Yet the tech follows in Microsoft's tradition of Visual Studio tools: wizards to built 'empty' projects (with varying degrees of non-emptiness) and a steep learning curve to accomplish anything meaningful. The .NET framework is large. It does a lot, and it demands a lot. The biggest challenge is knowing the classes available; even the presenter tonight stumbled on some class names. (A case of knowing that classes to perform specific chores do exist, but not remembering the name.)

Sunday, September 30, 2012

Pennsylvania Renaissance Faire 2012

Sometimes the best way to build one's knowledge of the craft is to get away from the craft. And the best way to rejuvenate is to walk away from the marketing and "always on" thinking and to relax.

Which is what I did this weekend. Instead of updating my resume or curating my LinkedIn profile, I met up with friends and visited the Pennsylvania Renaissance Faire. It was a splendid day, with nice weather and good companionship. Ren faires are always entertaining, with a variety of shows, merchandise, and activities. We walked around and took in the sights, chatting with people as we went.

I returned home energized and relaxed at the same time.

Wednesday, August 8, 2012

Dropping meetings -- or, making choices

When I took this leap from the safe employer position into contracting, I built my network of contacts in part by attending meetings of technical professionals.

I am now in a position to evaluate those meetings, and I have chosen to drop some of them.

The local Baltimore Linux user group was an easy one to drop. The group has seen a decline in its membership (or at least attendance at meetings) and they may be shutting down. The causes of the decline are two: poor leadership in the group, and a reduced need for assistance with Linux.

The latter is particularly problematic. When Linux was a strange new thing that required expertise, a user group made sense. Members could support each other and share information. Today's Linux distros are quite good at detecting hardware and correcting problems. (And there is the world-wide-web for information.) A user group must be based on more than sharing technical knowledge for a popular operating system.

The not-so-local Linux user group (a separate group from the local Linux user group) is also on the "drop" list. Not due to declining membership or low value; this user group has good leadership, provides informative speakers, and maintains an active membership. My cause to depart is a pragmatic one: they have moved their meetings and the new location is farther than I prefer to travel. I had to play games with the car, staging it at a different train station in the morning, to attend. Now even that does not allow me to attend in time.

The third group that I am dropping is the cloud computing group. I am sorry to stop attending; they had good presentations and interesting members. Their old location was in Virginia but near a metro stop. The new location is further out in Virginia and far away from metro stops.

Letting go of these user groups gives me time in three evenings every month. I plan to use that time in other user groups, preferably ones closer to home.

Tuesday, April 10, 2012

I finally see Windows 8 in action

I attended the CMAP meeting tonight. The presentation was on Windows 8 and Metro. It was good to see the new version of Windows live -- up to now I have only read about it.

Windows 8 is a compromise between classic Windows and the new world of touch/swipe apps. I'm not sure that "compromise" is the right word -- it seems to be two distinct things bound with duct tape. The new Windows Metro UI is quite attractive and very different from the classic UI. Windows 8's classic UI is close to Windows 7's UI; only the "Start" button is absent. Switching between the two modes is abrupt and not always expected.

The push for Metro and a touch-screen interface shows the success of Apple and its iPhone and iPad products. I'm sure that Microsoft had a plan for touchscreen devices and interfaces (the "Surface" technologies) and has accelerated and changed that plan to meet the competition.

Most disturbing with the new Metro UI (and its underlying WinRT API) is the loss of lots of tools and packages. Flash is not available, nor is Silverlight. Developer tools such as Entity Frameworks are not available.

Lots of Windows fans are upset -- and I understand. A lot of their hard-won knowledge has been invalidated with Windows 8 and Metro. While the classic side of Windows 8 still allows for these technologies, one can clearly see that their lifetime is limited. (And therefore the lifetime of the knowledge is limited.)

Yet there is no escape. Microsoft is just as trapped on this treadmill of evolving technology. We are all running as fast as we can to stay in place.

Sunday, April 8, 2012

Why BYOD will encourage companies to the cloud

A number of companies have adopted "bring your own devices" policies, allowing employees to bring their own computing devices to the office and use those devices for work. The policies have been applauded by some (generally the libertarians of the office who see freedom and the accountants of the office who see reduced corporate expenditures for equipment). "Bring your own devices" policies are generally criticized by the security and infrastructure support teams: one cannot lock down an employee's device to the same extent as company-owned equipment, and the larger number of devices is harder to configure for corporate use.

There is another aspect of "bring your own devices" policies, one that I see few people discussing. That aspect is the tie-in with cloud computing.

With a "bring your own devices" policy, the employer-employee relationship changes. With the tradition "company supplies all equipment" rules, the company owned all data and all equipment that held the data. Employees may be assigned computers, but the understanding was that the computer belonged to the company. A company could re-assign a computer, take it off-line for maintenance, and install upon it any software it wished. When an employee moved from one position to another, or from one department to another, or left the company, the equipment (and therefore the data stored on that equipment) stayed behind.

The rules for "bring your own devices" change that situation. When employees bring their own devices, the devices are their property, not the company's. The company cannot re-assign the device. When an employee is transferred from one department to another, or when they end their employment, their devices follow them -- they do not stay with the department or the company.

So what happens to the data stored on that device?

I suppose that some companies will implement policies that insist upon the deletion of data in such instances. They might be difficult to enforce, especially with less-than-friendly terminations of employment.

A better solution is to not store data on the device. Instead, store company data on company servers, and allow employees access to that data. When an employee moves from one department to another, change their access to allow for the new department's data (and remove access to the old department's data). If an employee leaves the organization, rescind their access.

I find this a more secure solution.

Cloud computing seems a natural fit for this solution. Small apps that allow access to data (but do not store the data locally) will let employees get the work done while maintaining the security of the data.

Perhaps "cloud" is not quite the proper solution here, since one may not need the scalability of cloud computing. Perhaps a better description would be "server-stored data and app-based access". But that's quite a mouthful and who would ever want to say all of that?

Regardless of what you call your solution, look at storing data on corporate servers and allowing access through "outside" (non-corporate-owned) devices. I expect that the division of labor will provide you with insight into the work being done within your company.