Andrew MacNeill - AKSEL Solutions

Saturday, September 04, 2010

PEM Editor 6 Now Released!

Jim Nelson has just posted a new update to his super popular Property/Event/Method editor on VFPX.

There are way too many features to count on this - but you can be sure that Cathy Pountney will be covering them in her SW Fox Session.

That said, some super-useful features that make this not even just an editor but a whole IDE enhancer:
a) Go To Definition
b) Extract to Method - the very easy way to refactor highlighted code
c) BeautifyX
d) Object comparison
e) Design Time event handlers (auto-resizing for one)

If you haven't tried it, there are some videos available but I'll also be doing some for an upcoming post.

Note: I spoke with Jim on a recent FoxShow interview before this release came out.

Saturday, August 28, 2010

Another Reason to visit SW Fox: Software, Software, Software

Doug recently linked to Kevin Ragsdale's post about why people should attend Southwest Fox. If you've been listening to the FoxShow recently, we've been interviewing speakers and there are more interviews to come in the next few weeks.

AKSEL is also proud to announce that we are offering two subscriptions to MSDN Visual Studio 2010 Ultimate for attendees. If you don't already have MSDN, this is effectively your way of getting every piece of business/developer related software from Microsoft.

Rick, Doug and Tamar will be drawing for the lucky attendee at this year's conference - so you have to be there to win it.

As a note, if you DO already have MSDN, Pay it forward and be sure to throw the subscription back into the hat for others who may not be getting it to get the chance to work with the latest development tools from Microsoft. Note: this subscription also includes great designer tools like Expression with Sketchflow which I love for prototyping applications.


Labels:

Wednesday, August 18, 2010

Simple But Useful VFP Tip: Remote Views with SQL Server varchar fields

Note: This is a feature that's been in VFP for years - but I've often found that useful features often remain hidden until someone points them out. So I'm taking to finding my little VFP tips as I come across them and re-posting them here.

I work in a variety of environments but one thing I always keep with me on my USB drive is VFP. Regardless of the data I have to work with, I always find that a task comes up that is infinitely easier in VFP. The funny thing is that other colleagues on a team who haven't been exposed to VFP are usually amazed at how quickly stuff can be done.

Today, I was working with a SQL Server table and SSMS only lets you edit the first 200 rows on their own - otherwise you have to script it (or use another tool).

For most of these systems, I typically create a VFP Database Container and then create remote views as necessary.

Oftentimes, the problem is that when VFP comes across a varchar field that is longer than 254 characters, it immediately converts it into a memo field so I am left with something like this:


This is annoying as the field I really need to modify is the DisplayText column or the Memo field and while I can open it, I would prefer to be lazy on this end.

So in the View designer, highlight the desired field and choose Properties. Then change the Data Type of your output of choice. Since most of my text in this column will be less than 254 chars, I'm just making that change here.

Now, when I browse my remote table, I can see the contents of the field, make changes and they propagate right back to the SQL table.


Nice and simple.




Wednesday, August 04, 2010

Turning on the Lightswitch

Microsoft announced a brand new tool for business users yesterday called "Lightswitch", which (according to the announcement) makes it easier to build business applications for the desktop or the cloud.

Beth Massi sounds super excited by it, describing it as a tool that makes it easier to build data-centric applications, something that FoxPro developers know a little about.

Mary Jo Foley discussed Lightswitch as a tool similar to FoxPro:
" The idea, my sources say, is to bring the Fox/Access style of programming to .Net".

I don't buy that or maybe more to the point, I wouldn't put FoxPro and Access in the same boat to begin with.

This sounds more like an "Access" version of InfoPath which lets you "build advanced forms for line of business applications". If you walk through the screen shots shown on Jason Zander's intro page, it looks more like an application Setup Wizard or a "template-driven" application builder.

I welcome all tools to make building applications easy for organizations - it may dilute what many call "programming" - but if it solves an immediate business need, great.

However, remember all those efforts IT and centralized development shops have made to centralize development efforts, ensuring standards, etc?

Unless those standards were Silverlight, WCF and Entity framework, you've just thrown another tool that IT will hate into the mix.

From the intro page
"LightSwitch applications themselves are robust and are built on top of .NET technologies including Entities and WCF, the same technologies you already choose from when you write your apps today. Because the apps are built on top of .NET with VS you will be able to open your LightSwitch applications in the full version of Visual Studio and do advanced extensions."

Those key .Net technologies are VB or C#. I haven't seen what the final application and source looks like but let's face it - Lightswitch is a template-driven application builder for Visual Studio.

Some key points that make Lightswitch sound attractive:
- any database (including SQL, Sharepoint and Azure)
- can build desktop, WCF or browser-based applications
- extensible templates

Hank Fay jumped in with his analysis almost immediately, calling it a Bait & Switch, calling it an insult for domain-expert programmers:
"I have consulted with, and worked for, non-professional programmers for 12 years now, and if anything, the programs they create are more complex, in terms of data needs and UI needs, than what professional developers create. Oh, for sure, professional programmers can write complex algorithms, or wonderful feats of asynchronization communication over barriers of distance, protocol, and so forth. But when it comes to the business-end of the horse, one has to know the domain to understand the complexity, and that’s where the domain experts shine."

As someone who knows how important a good consultant is to moving an application along the right path, but I have also seen consultants or "experts" completely destroy a business opportunity, by either taking too long or not understanding the right concepts.

My big concern here is that Microsoft has added once again to the number of tools a business can use to extend or build applications with. You need to track something, do you use:
- Visual Studio (WinForms)
- Visual Studio (ASP.Net)
- SharePoint
- Dynamics
- Access
- Infopath
- LightSwitch
- Visual Studio (Office Extensions)
- Web Matrix
- MVC
- WPF/Silverlight

I know that LightSwitch is an extension from Visual Studio but promoting it as a separate product can make this tricky to decide.

Yes, each one has certain things that it does well - but remember when Microsoft's own teams had a rough time deciding between tools when it was just VS, Visual FoxPro and Access? Imagine what the discussion will sound like now.

As many developers now focus on development patterns such as MVC (MVP, MVVM, etc) to build best-of-breed applications, Lightswitch removes that process. As I noted above, until we see the actual code created, it's hard to judge how successful it will be.

I'm a big proponent for the right tool for the right job - but there isn't a lot of guidance as to where Lightswitch fits. That's going to be the big challenge.

SW Fox 2010 Location Changes!

I received an email last night from Rick Schummer, announcing a fairly big change for Southwest Fox 2010 - it's no longer in Mesa, Arizona - it's in Gilbert.

Previously made reservations at the Arizona Golf Resort have been cancelled - instead, the conference will be at the Legado Hotel and SanTan Elegante Conference and Reception Center in nearby Gilbert.

The new location looks amazing.

Use the code "SWFox" when registering.

Southwest Fox is the annual gathering of FoxPro developers with great sessions on development tools, techniques and practices.

Labels:

Tuesday, July 20, 2010

Google promotes travel by kayak

I was planning a trip and looked up some directions in Google. Unfortunately, Google Maps went the wrong way and figured I wanted to go to China.

That wasn't a big problem until I read the directions.
Check it out below:


I had to double-check my settings. I was looking for car directions (not walking) but still, instead of flying or taking a cruise 2700 miles, Google thought I could travel best by kayak across the Pacific Ocean.

Priceless.

Saturday, June 26, 2010

Ken Levy on Servoy in Europe

Sounds like Ken Levy is really getting big on Servoy and convincing VFP developers to look into it. Fresh after his Servoy webinar.

Details for a special seminar on July 5th in the Amersfoot, Netherlands are available here.

Eric den Doop : VFP Developers from Europe are invited at 5 july 2010 at the Servoy HQ in Amersfoort - Netherlands

Thursday, June 24, 2010

Mindmapping with iThoughts, MindManager and Box.Net / DropBox

I love it when I find an implementation of technology that has likely existed for a few years but works (almost) seamlessly the way I need it to. I may have missed it the first time out but it's still important to let people know how they might find it useful.

iPhone Mindmapping with iThoughts

I've spoken about Mind-mapping and MindJet many times before.

MindManager is a great tool but when I'm in a short client meeting, I don't always like to pull out my notebook. For the past year, I've been using iThoughts on my iPhone and really enjoying how well it integrates with MindManager, using its innovative "transfer" capability (it creates a web server on a Wifi connection and gives you a web page to upload and download files).

MindJet's iPhone interface is remarkably similar to the iThoughts interface - almost to the point of it seeming like a direct copy or re-licensed version.

However, when my iPhone was upgraded to iOS 4.0, it also upgraded all of my applications, including iThoughts to version 3.0. The refreshed interface is wonderful - including in-line editing and more.

What impresses me the most is the integration with Box.Net, which has been around for a while. I created a free account and uploaded some of my MindManager maps. I then opened my files in iThoughts on my iPhone (no conversion necessary), made changes and synchronized. The files are all updated. I could then make changes in MindManager and sync them directly over the web.

The downside is that I can't synchronize a Windows folder with Box.Net (or if I can , please let me know how). Mesh does this via a desktop client. If I could do that, then the circle would be complete. I could modify my map on my notebook and it would sync transparently.

There are other alternatives - I could use a web-based MindMapping tool (such as Mind42), but some of these use Flash (and thus don't work on the iPhone) or the web implementation just doesn't have all the features or are too slow.

While web apps may be the future, but until they get to the point where they can match the features and functionality of the dedicated platform apps, we will need tools like box.net and others, and thankfully, they are there to fill that void.

Update: although I had heard about it for a few years, I hadn't tried DropBox - a direct competitor to Box.net. While Box.net offers some more advanced features, for what I need, DropBox is the better solution. Thankfully, the latest version of iThoughts supports both. The real benefit of DropBox is that it *does* provide folder syncing (even though it is its "own" folder - My DropBox).

The sync between DropBox and iThoughts is amazing. I updated a Map on my laptop and then sync'd one minute later on my iPhone. The changes were there. I then did the same on my Iphone - after syncing through iThoughts, the change was there on the laptop. No time lag whatsoever. That's perfect for what I need.

Labels: , ,

Tuesday, June 22, 2010

LINQ, Reserved Names and .Net

Here's another good reason not to use reserved names.

I'm working on a LINQ project with a series of tables that manage user roles. As a result, I have table names like Systems, Roles and Users.
My trouble started when I would add the objects to the Designer, hit Save and then suddenly Visual Studio would say things like

"System.Data.Linq.Mapping.DatabaseAttribute is not defined"
or
"System.Nullable is not defined"


In short, stopping me dead in my tracks. Now that I look back, I don't know why I didn't see the reason earlier.

When using the Object Relational Designer, Visual Studio wants to be smart and changes any words that are plural to singular so they make more sense when dealing with data.


That way, your code looks like

oUser = New User
oUser.UserName = "John"

instead of
oUser = New Users
etc

This is really nice because it does make the code a little more legible except in this situation:

Plural (singular)
Users (User)
Roles (Role)
UserRoles (UserRole)
Systems (System)


See the gotcha? Visual Studio translated the "Systems" table into a "System" object which immediately negated all of the main namespaces in the project.

The renaming feature for the objects in LINQ-to-SQL is great - but be warned, when you start getting errors like this, take a look at your source tables.

Labels:

Friday, June 18, 2010

Intense Development: Why We Need Passionate Programmers

At a conference a few years back, I formally met someone who I had been speaking with online for a few years. One of his comments was "wow, I didn't realize you were this intense". At the time, I was surprised as while enthusiastic about the conference, I didn't think I was being that noticeable. But I will admit - I am very intense or passionate about the things I do. I think that's very important to the developer and consulting world and far too often, it's missing.

Programming is an analytical and (supposedly) fact-based process, which is why most programmers tend to be left-brained. This discernment is more myth-based (as logical sciences such as maths are handled by both) but more creative or emotional types are said to be "right-brainers".

Today, when you need both programmers and designers rolled into one (or at least combined in a single project), this can get tricky.

As a consultant, I deal with a number of clients. Some I have had the pleasure of working with for years, while others have been shorter-lived. However, I always try to find something in their work that excites me. Yes, I'm there as a "contractor", a repairman or mercenary of sorts - but without that excitement or commitment, why would I care about doing a good job?

There are arguments for why you don't want too much enthusiasm. Being more pragmatic and analytical, you may tend NOT to make mistakes (ask any programmer after a late night session if they think their code is bug free). But you may also alienate the client or worse yourself. In programming, it's very easy to become overwhelmed with the possibilities for failure and paint yourself into a corner where all you deliver is the least-risky, least-powerful piece. That's not to say that it can't be usable but it may not deliver on expectation.

Sidebar:
(there's a reason why Apple tends to either delay products or take away features - when they deliver something that they describe as powerful or impressive or "magical", they truly believe it themselves).

If you haven't seen Steve Jobs' interview at D8, watch it. Forgetting all about the conversation about AT&T, sex, Flash and Google, there's a very interesting part about what he found when he returned to Apple 12 years ago. To summarize, he found a lot of amazing and skilled developers and he asked them "why are you still here?". The common response was that they had "six-color blood", a term that throws back to the second Apple logo. Some might say that kind of passion is more of a tear-jerky look back at history, although we have certainly seen what Apple has done since then.

End of Sidebar


I would rather have a passionate programmer or consultant than anything else. When I first meet a consultant on a job, I ask what areas of work do they "love". When asked, I'm always pretty much a "data-head" - I love data and turning it into information. Others love pure coding; others refactoring, etc - why someone who loves one area would bother taking on the responsibility of another area distresses me - because it means that there is one less person who cares about the project.

Even in a hard economy, such as this one, where people are struggling to find work, and perhaps even more importantly in such an economy, is passion necessary. You have to find a job, you have to get work - if you get it, at least be excited or passionate about it. If you don't want to do it, then get out of the way. Recently, I started at a client site with a colleague of mine. While I was consulting directly for myself, he was consulting through a parent company. While his other workload was hard, he immediately saw that he couldn't do a good job at the client site because he just wasn't interested in delivering the type of solution they wanted. He left the job within two weeks. The client may have lost money during those two weeks - but at least they weren't stuck with someone who didn't care about what they were delivering.

Early in my career, I was at a company working with a team of about 4 or 5 other guys and while I was likely third in terms of being there, I was by no means the most computer-educated or technically knowledgeable. But we all had our areas that we had to work on, and there was one section that was taking longer than the others. The guy working on it had his masters in Computer engineering but just wasn't into it. He would stare at the screen and it just didn't make sense, like the Matrix falling down in front of him. What was a relatively simple task was not getting completed. At one point, I even said "I can't think for you". The project wasn't something that I had started but it was the job at hand - it had to get done and I was intent on getting it done. I was, coming back to my first story, "intense".

I refuse to apologize for my intensity or passion on projects. I think it does a disservice to the client and to the project itself. Yes, it might be a small project in the grand scheme of things (and what isn't - unless you're really changing the world), but it's still *your* project or *your* client. If you don't care, get out of the way and let someone who does take that role.



 
milf big naturals cumfiesta mike's apartment