web 2.0

Getting Passive FTP to work with Windows Advanced Firewall and Gene6FTP G6FTP Server

Many administrators have trouble with getting passive working. There is a good article over on TechNet (http://technet.microsoft.com/en-us/library/dd421710(v=ws.10).aspx) that works well if you’re using the local FTP services built into IIS.

There are slight modifications if you are using Gene6FTP Server.

 

The only thing you really have to do is add G6FTPServer.exe to the allowed programs inbound rules. Assuming your outbound is always “allow”.

New Inbound Rule, Program, point to C:\Program Files (x86)\Gene6 FTP Server\G6FTPServer.exe

That should fix your Passive (PASV) mode.

If you want to limit what ports to use, you can right click on the domain and properties.  Under “IP binding” you can limit what ports to use.

 

Without this, you will get errors such as in Visual Studio when trying to use FTP, that a connection failed due to 425 error.  Or Can’t open a data connection (425).

Tags:

Operating Systems | Computers | Visual Studio

What have I been up to?

Not that anyone cares much but just trying to keep this blog from going stale after I’ve stopped programming. I need to shift focus to managing development teams using the Scrum process.

I am a Sr Manager of IT Applications for Wolters Kluwer. Specifically the Mediregs position of their Law & Business Division. I spend all my time managing 17 other members of an advanced development team. Managing the release and developing of two projects with high visibility. The newer one is going global and multi-lingual. We have our sister division in Belgium jumping onto the project as well.  We go live in three weeks after two years in the making.

One of my challenges over the last year is managing an efficient development team after receiving my scrum training as a Certified Scrum Master and Certified Scrum Product Owner. The good side is that everyone is on board for change and willing to do whatever it takes. It’s a great process. The down side is that upper eyes still want dates and budgets amount. I know we can forecast by estimating the backlog but it’s a long process to get through that backlog.

Also, gathering metrics on the team and each developer is another area I’m looking into more. Any information I find in these areas I’ll be posting them up here soon.

Tags:

About Me | Scrum | Software

So you want to be a .net developer? Web, Backend, Middle Tier? You’re asking yourself where do I start?

So occasionally I get asked from friends and friends of friends and friends of friends of friends, I want to be a <insert, programmer, web developer, build websites, etc>.  How do I get started?

This is a loaded question. There so many directions to go and languages to choose from and then there is the college route, certification route or both. Then you have the Unix side of the house, the Microsoft side, now the all popular apple and android sides. Web platform, OS platform or mobile platform. Then you have to figure out where you like to work the most; on the front-end UI, back-end logic or maybe the database layer.

So for this article I’m going to with a bunch of assumptions.

  • You want to build web applications (You can apply this to OS applications, website and mobile later)
  • I’m assuming college doesn’t matter and is not needed (though a Computer Science degree would be awesome)
  • You aren’t doing it for the money (more on this later)
  • You’re following the Microsoft track using .NET (though the same techniques can be applied to other languages and application types, got to start somewhere)

 

You are not in it for the money:

This is my biggest pet peeve. If you are trying to be a programmer because you think they get paid a lot. Stop right now and go find something else to do.  Do what you like not because it pays a lot. Those type of programmers are the worst I ever meet. You go to work and do your job and try to get all your learning from on the job training. You go home and don’t give a crap about your job or try and don’t try to learn and enhance your skill sets at home.  You drain the life out of all the other programmers at work. I’ve seen this time and time again.

If you want to be a good programmer, or awesome, programming needs to be your hobby. You need to go home after work and continue learning.  You have to have a desire to be on the computer; programming your own projects for fun to learn new techniques after work. At home at night on the weekends. In life you should do what makes you happy and what you enjoy. Not because you think you can make a lot of money. If you don’t enjoy programming, don’t do it. I can go on about this so I’ll stop here.

 

What to Learn:

  • The Presentation Layer (or what we can the “Front-End” work): This is the visual aspects of your application and interactions. What it looks like how it functions.
    • HTML – Must Learn
    • CSS – You can get away with it if you don’t like front-end work but you should learn the basics
    • Javascript – You can get away with it if you don’t like front-end but you should learn the basics
    • jQuery – This heavenly needed for good interactions on your web application but you could get away with this if you don’t like the front-end. However, you should have a basic understanding.

Training Suggestions: On the web. Start with W3Schools. Great site, simple and straight forward. Soak in all the information you need. Always a good resource.

  1. W3Schools – For each section complete the “Basic” section. HTML, HTML5, CSS, CSS3, HTML DOM, JavasScript, jQuery,
  • The Business or Middle Tier Layer (or what we call the “Back-End”): This is the logic and heart of your application. Taking the information provided in the Presentation Layer and doing something with it. Calculations, data manipulation, saving it to the database etc..
    • .NET C# (or VB.NET but C# is more popular now a days and usually pays more (being that you are doing this even as a hobby, then yes pay is important and a side-benefit.))
    • ASP.NET MVC3 (this is newer then ASP.NET WebForms which is just as popular, but MVC is the future)

Training Suggestions: On the web and study books for certifications. Some people knock certifications, usually the ones that don’t have one. Certifications won’t make you great, only experience will do that. However, Certifications will teach you everything you should know and aspects that others don’t know because they don’t study for the certs. Small things here and there that add up. As well as showing to an employer that you might not have experience but you definitely can program and know the basics if you have your certs. More about certs in an updated post. Old post here.

  1. ASP.NET is a great place to get started. Specifically ASP.NET / MV3 site. Go through Chapters 1 through 12.
  2. C# Station – I’d stay maybe go to chapter 8 or 10.
  • The Database Tier (Also, part of the “Back-End”): This is storing data. Manipulating data. How to retrieve the data and run reports or searches.
    • First learn some SQL basics from W3Schools. Go through all the SQL Basic chapters.
    • Optional: Then you can learn say T-SQL which is Microsoft language of SQL built off of basic SQL. However, you don’t need this yet and learn as you go after W3Schools.

This is enough to get you started. Learn all the basics then figure out where you like to play the most.

  • Advanced Items: Other things you should know.

Tags:

Training & Learning | Programming | ASP.NET MVC | ASP.NET | AJAX | C# | Developer Tools | HTML5 | JavaScript | Microsoft | T-SQL | VB.NET | Visual Studio | Window Forms | jQuery

Scrum Certifications and More

So I’ve completed a couple of courses for Scrum training from the Scrum Alliance organization. Had a great training session from the BrainTrust Consulting Group by Brian Rabon himself, President. The class was amazing. A lot of hands-on exercises and methods used to sink in the process and techniques of Scrum itself. I’d have to say this is one of the best classes I’ve taken from an in-person training course.

Two new certifications I’ve acquired are the Certified Scrum Master (CSM) and Certified Scrum Product Owner (CSPO) thanks to Brian’s great work. 

Tags:

Training & Learning | Scrum

I have Returned

It has been while since my last post.  A long while.  A lot has changed over the past two years. Not just in my career but also in my personal life.  I apologize for the delay in the time span since my previous submission.  I’ve never talked about my personal life much before so I probably won’t start now either.

I used to post code snippets or solutions to problems I’ve had; sample apps of something I was experimenting with.  However, I haven’t developed full-time for over a year now. My career shifted when I was given the sole task to open a new development shop by my superiors. As well as build a new team and implement my dream child project that I had presented to the power above in the past.  Tasked with finding real estate, opening an office, hiring a team of 14 and managing a new product re-write, I’ve had little room for all else.  With deadlines to meet, finding ways to encourage team members, striving for perfection, new innovations and all the while learning as I go, I had no time to handle the small things I used to do like post on my personal site.

Now that we’ve settled into a routine of two week sprints and things are slowly starting to work together like a well oiled machine, I believe I will have time to post again.  Though my direction may shift slightly to things more related to project management, scum or agile comments and just about software development as a whole.  When the time permits I will dive back into development but only at a part-time rate.  There’s a lot of new technology out there, lots of ways to manage a team and I hope to continue forward with my thoughts and ideas for any who care to listen.

I have returned.

Tags:

Software | Programming | Personal | My Website | About Me | Scrum

Getting Out of Memory Exception when you have plenty of Memory/RAM available

 

This is a great article on why having or adding more memory won’t fix your Out of Memory Exception.   Bottom line.. on a 32bit server you’re site will crash when it hits between 600MB and 800MB.  The amount varies based on what else is going on with the machine.   The solution? Basically, you have to upgrade to a 64bit OS or re-write your application.

 

Why adding more memory won’t fix your Out of Memory error by Edge

Copied from the article directly, in case it ever goes down.

-------------------------------------------

Here an interesting case. Consider there 2 scenarios:

Both are running the same website, both have the same amount of users connected.

Now imagine this website has a page to upload pictures, just like any regular photo-album website.

For some reason, at some point the users complain that they see an error page indicating out of memory error.

So, you wonder: How come? they are just uploading a photo to my website, and I still have plenty of memory in my server anyway.

Anyhow, you stop thinking about this and go for the easiest, quick and dirty solution: If the system tells me that my computer does not have enough memory then I just need to add more memory. Right?

And guess what? you still will get the error message.

That's a very common mistake. Having a machine with 10GB of memory does not mean you will have 10GB of memory available. I explain.

It does not matter if your computer or server has 512 MB, 1 GB, 2 GB, 4 GB or 8 GB of RAM. If your machine is a 32-bit machine it will only be able to see/manage 4 GB. That's mathematics, that's life, that's the way things are and you can't do nothing about it. A 32-bit machine can not do more than that.

Additional memory may increase your system performance, but it won't increase the memory availability. Sure your computer will use less the hard disk for swapping operations and will be able put more stuff in memory and start some programs faster, but 4GB is the limit; after this point the memory management module will start doing disk swap and to use the famous page file.

And here comes more bad news: Your Windows system on a 32-bit machine requires 2 GB allocated only for it.

So, if you have 4 GB installed, effectively you will have 2 GB only for applications; your windows will be using alone 2 GB.

So, what does out of memory means?

Well, according to some people at Microsoft, this limit for an average configuration is reached between 600 MB and 800 MB of utilization. That 800 number is NOT A RULE, is a baseline. Generally speaking the largest majority of configurations with website, .NET and SQL Server database might have a problem around this point. Of course, this can vary from system to system...as a matter of fact a system can be out of memory at just 600 MB.

Yes, it does sounds crazy. You look so happy now that you just bought a 4GB RAM notebook and your computer is breaking with just 800MB, hun?

Here is another point for you. Have you ever seen someone bragging that he/she bought a 10-megapixel camera and now he/she believes their pictures are going to be better because of this?

Well, guess what? Just like the number of megapixels in a camera box does not have much to do with picture quality, RAM memory does not have much to do with hard disk space.

That's a common mistake: People buy RAM as if they were buying a hard disk.

RAM usage needs to me continuous, unlike hard disk. A simple 5MB Microsoft Word document when saved in a hard disk can be split up in hundreds of pieces; When you open this file in memory, the RAM requires those 5MB to be allocated continuously.

Can you see now the reason for the 'out of memory' message?

Yes, it really means 'there is not enough continuous memory to place that file in memory'. Your system might have 2GB of RAM but unfortunately it might be too busy with stuff running and there is no enough continuous memory to put the picture you are uploading.

Yeah, you can not do much but you can buy a 64-bit machine then when you add more memory you can really use it more efficiently. And yes, we have Microsoft Windows systems for 64-bit machines.

If you do not want to buy a new system of upgrade you current server to a better version then you should think other solutions in the business process, such as to avoid users upload pictures with more than 1 MB in size to be uploaded.

Tags:

.Net Framework | ASP.NET | Computers | Troubleshooting | Operating Systems | Microsoft | IIS And Hosting

The Add-in ‘xxxx' failed to load or caused an exception in SQL Management Studio

 

And clicking on Yes to remove it, doesn’t help.  This is actually a permission issue from Vista and Windows 7 and up.

 

The service pack update to Windows Vista has been known to change permissions to the registry in a way that prevents user access to the information about installed classes: HKEY_CLASSES_ROOT. This prevents SQL Server Management Studio from loading the add-ins into the environment.


To correct this problem, it's necessary to assign permissions to the registry for the logged-in user.

  1. First open the Registry Editor (regedit.exe) using the "Run As Administrator" option.
  2. Right-click HKEY_CLASSES_ROOT and select "Permissions", and give the logged-in user full control.
  3. The following permissions needed to be added to HKEY_CLASSES_ROOT as well:
           -Users: read
           -System: full control
           -CREATOR OWNER: full control on subkeys only

Tags:

Troubleshooting | Operating Systems

Change Binding Order on Network Adapters for Windows 7

 

Good article on ordering the binding of your network adapters.  You can have your PC make sure it uses Wired over Wireless if you have both, or IP4 over IP6 if you have both.

Source: http://www.techrena.net/windows/view-change-network-adapter-card-priority-binding-order-windows-7/

Article has steps to check the current priority as well.

Changing Network Cards Priority in Windows:

You can change the network card priority in two ways in Windows:

Method #1:

To start with, I’ll introduce you the easier method first:

1. Go to Control Panel > Network and Internet (View network status and tasks)> Change adapter settings and now you will now be in “Network Connections” window.

image

2. Now press Alt button and a hidden menu will appear beneath the location bar.

image

3. Under the Advanced menu, click “Advanced Settings”.

image

4. You can now see the order of preference in which the connections are accessed by network services.

image

Use “Up” and “Down” buttons to move a network connection either up or down and thus changing the order of priority of connections.

Method #2:

And now let me introduce you the second alternative method, which is a bit laborious when compared to the first one:

1. Go to the “Network Connections” window by following the step 1 as detailed in the above step.

2. Right-click on the network connections for which you want to change the priority order and choose “Properties”. In my case, I wanted to change the interface metric for my wireless network card and hence I will proceed with the changing priority order for Wireless Network Connection under my network connections.

image

3. Now choose “Internet protocol Version 4 (TCP/IPv4)” and click on “Properties” button.

image

image

Click on “Advanced..” button in the IPv4 properties window.

4. Look for the “Automatic metric” option in the advanced TCP/IP settings window.

image

5. Uncheck against the “Automatic metric” option and enter some value other than 1 in the filed against “Interface metric” (as 1 will always be assigned to Microsoft Loopback adapter always) as shown:

image

Click OK and close all the windows.

You have now changed the priority of your network card interfaces.

Tags:

Computers | Microsoft | Operating Systems

View the GAC like a normal File/Folder to Copy/Paste From/To the GAC

 

Browse the GAC like any other file/folder structure.

You can simply go to,
HKLM\Software\Microsoft\Fusion

Create a DWORD value named "DisableCacheViewer" and set it to value 1.

Open another instance of windows explorer, explore to c:\windows\assembly

 

image

Tags:

Computers | Programming | Operating Systems

To my friends who don’t understand why I don’t like talking on the phone.. I’m not the only one.

Read this great article over at TechDirt by Mike Masnick.  “Phone Calls Are So Last Century”.

Was right up my ally.  I don’t like to talk on the phone.  It interrupts me and my train of thought when I’m working.

A snippet from the article that applies.

… And it was at that point that I realized how rare it is that I'll accept or make unexpected or unplanned phone calls, with the exception of my wife and my parents (and potentially some work-related "emergency.") There are a few very close, long-term friends that I'll call every so often, but I really haven't done that in a while, and I feel a bit awkward about doing it these days. I still talk on the phone for meetings, but always at set times.

Apparently, I'm not the only person who feels this way.

Also NY Times has an article on it as well.

So when I don’t answer your call, it’s not personal. Txt me if you want to get anywhere.

Tags:

About Me | Personal