ASP.NET MVC
Software Development Tools
SOA/Windows Azure
I have had a couple tough interviews…
For the record, he is referring to to a gun.
Follow me on Twitter
Posted to Life
Similar Posts
Number 400!
SOA/REST/M/Oslo
Big day for Azure announcements
Windows Azure/Windows AppFabric/WCF
For anyone who has the misfortune of having to install a multi-node RAC cluster of Oracle 11g R2 on Solaris 10 (in my case, SPARC 64-bit) with an EMC PowerPath, hopefully these notes I’ve collected will come in useful. I certainly suffered plenty trying to get this install to work and web searches didn’t turn up very many useful results at the time.
Make sure you set tunable limits correctly.Previously, you would edit /etc/system to change tunable parameters then reboot the system, but starting in Solaris 10, there’s a new “projects” system where tunables can be configured. For my installation, the cluster nodes had 16GB of RAM each, so I used these settings (as root):
$ projmod -U oracle -sK "process.max-file-descriptor=(priv,4096,deny)" user.oracle $ projmod -U oracle -sK "project.max-msg-ids=(priv,256,deny)" user.oracle $ projmod -U oracle -sK "project.max-sem-ids=(priv,256,deny)" user.oracle $ projmod -U oracle -sK "project.max-shm-ids=(priv,256,deny)" user.oracle $ projmod -U oracle -sK "project.max-shm-memory=(priv,16GB,deny)" user.oracleYou can check these settings by inspecting /etc/project and looking for the user.oracle entry.
Also, when running in a RAC configuration, some Oracle processes like crsd run as root, so these will be necessary as well:
$ projmod -sK "project.max-shm-ids=(priv,256,deny)" system $ projmod -sK "project.max-shm-memory=(priv,16GB,deny)" systemThis appears to be a catch-all way of ensuring these settings are in use for all users:
$ projmod -sK "project.max-shm-ids=(priv,256,deny)" default $ projmod -sK "project.max-shm-memory=(priv,16GB,deny)" defaultFailing to set these settings for system and default seems to result in Oracle “ORA-01102: cannot mount database in EXCLUSIVE mode” errors when trying to start a database instance.
Failure to create the DATA diskgroup using ASMI wasted a good 6 hours trying to understand why I kept getting the following error during the 11g R2 grid package install:
ORA-15020: discovered duplicate ASM disk "DATA_0000"
Turns out, I had only set the permissions on /dev/rdsk/emcpower* correctly on one of the nodes in the cluster. The permissions need to be correct on all nodes in the cluster, as the installer operates on all cluster nodes as part of the install – duh! Beware of this gotcha, it can be very frustrating.
WARNING: oradism did not start up correctly.In diag/rdbms/*/$ORACLE_SID/trace, in the alert_${ORACLE_SID}.log, you may find this message:
WARNING: oradism did not start up correctly. Dynamic ISM can not be locked. ---------------------------------------- oradism creation failed for unknown reasons 0 8 105This is apparently a bug described in Oracle Metalink 374367.1. By default, the Oracle installer installs the file with ownership oracle:oinstall and mode 0750. It needs to be suid root, sgid dba. The solution is to perform the following steps (as root):
$ cd $ORACLE_HOME/bin $ chown root:dba oradism $ chmod 6550 oradismThen, restart the database.
Back up the Enterprise Manager encryption key!The Enterprise Manager runs on port 1158, using HTTPS. The encryption key is located here:
$ORACLE_HOME/*/sysman/config/emkey.ora
Back this key up, because without it, the Enterprise Manager data can’t be accessed.
ERROR: NMO not setuid-root (Unix-only)When using Enterprise Manager, you might get the following error message:
ERROR: NMO not setuid-root (Unix-only)
This occurs because the NMO binaries need to be setuid-root, as the error explains. Use these steps to correct the problem:
$ cd $ORACLE_HOME/bin $ chown root nmb nmhs nmo $ chmod 6750 nmb nmhs nmoHave you installed a multi-node RAC cluster using Oracle 11g R2 on Solaris 10? Did you discover any gotchas that prevented a successful installation “out of the box”? Please, share them in the comments below so that others can benefit from our pain!
ESB/WCF/REST/BizTalk/Azure/Identity
ASP.NET and Web Programming
I am a big fan of MongoDB.
There is a good C# driver called, MongoDB-CSharp. Unfortunately, because of the strongly typed nature of C#, the default implementation requires you to work with your data as a dictionary. This has an unfortunate side effect of some ugly code and a quite a bit of casting.
Given a choice of working with a dictionary vs SQL I would choice a dictionary everyday. However, with C# 4.0’s dynamics, we can make this much easier to work with.
The change in usage is minor, but I find it to be much more readable and productive.
Before:
1: Mongo mongo = new Mongo(); 2: mongo.Connect(); 3: 4: var db = mongo["blog"]; 5: 6: var posts = db["posts"]; 7: 8: Document post = new Document(); 9: post["Title"] = "Hello Mongo World"; 10: post["Body"] = "This is my first MongoDB post!"; 11: post["Published"] = DateTime.UtcNow; 12: post["Tags"] = new[] { "NoSQL", "MongoDB", "greatness" }; 13: post["Slug"] = "mongo-post"; 14: 15: posts.Insert(post); 16: 17: Document query = new Document(); 18: query[“Slug”] = "mongo-post"; 19: 20: 21: Document mongo_post = posts.FindOne(query); 22: 23: string title = mongo_post["Title"] as string; 24: DateTime published = ((DateTime)mongo_post["Published"]).ToLocalTime(); 25: 26: Console.WriteLine("Title: {0} local published time {1} ", title, published);After:
1: Mongo mongo = new Mongo(); 2: mongo.Connect(); 3: 4: var db = mongo["blog"]; 5: 6: var posts = db["posts"]; 7: 8: dynamic post = new Document(); 9: post.Title = "Hello Mongo World"; 10: post.Body = "This is my first MongoDB post!"; 11: post.Published = DateTime.UtcNow; 12: post.Tags = new[] { "NoSQL", "MongoDB", "greatness" }; 13: post.Slug = "mongo-post"; 14: 15: posts.Insert(post); 16: 17: dynamic query = new Document(); 18: query.Slug = "mongo-post"; 19: 20: 21: var mongo_post = posts.FindOne(query); 22: 23: string title = mongo_post.Title; 24: DateTime published = mongo_post.Published.ToLocalTime(); 25: 26: Console.WriteLine("Title: {0} local published time {1} ", title, published);While the example is trivial, I think it is a good step forward.
I want to play around with a bit more before I try to figure out how to submit a patch or fork it.
In the mean time, if you want play with the code, download the source from github, and then swap out the Document.cs class with this file.
Follow me on Twitter
Posted to Code and tagged as mongodb
Similar Posts
As part of 2010, I’d like to finally move away from my mostly monochromatic color scheme for my blog. However, the problem is … I can’t choose colors to save my life! After some fiddling around last night, these are the colors I ended up with:
It might not be the worst possible colors to pick, but … ugh, even I know they’re ugly. But, I just can’t choose good colors!
Help me! What colors should I use as the palette for my new theme? I really do like the background color and body text colors I chose … but what about a highlight color? And link colors? Let me know what you think I should try, please!
Chad Fowlers, "Passionate Programmer"[1] is a definite must read for any developer who gives a damn about his or her career.
I had heard about Passionate Programmer before but didn't it give it much thought until after hearing Joe O'Brien mention it at CodeMash (review).
At it's core, Passionate Programmer is about taking responsibility for your own career. Employers should do all they can do to help (some do), but at the end of the day, the only one responsible for you is....well, you.
Two quotes that really stuck out to me:
"If you think of your career as a business (which it is), your 'product' is made up of the services you have to offer"
Not much to add here. This really is the core of theme in the book. This is your *LIFE*. Own it.
"Be the worst guy in every band you are in"
Seek out opportunities, groups, events where you are no where close to being the best developer in the room. You will usually find these are the best opportunities to learn and advance your own knowledge.
[1] To get a DRM Free electronic version, check out the Pragmatic Programmers site directly.
Follow me on Twitter
Posted to Software and tagged as books
Similar Posts
ADO.NET Data Services
VS2010 and .NET 4.0
WCF RIA
Development Tools
In this episode, guest Stephen Bohlen joins Peter to discuss the Agile software development methodology. Stephen talks about what it means to be agile, how agile can improve the software development process, and what boiling molasses may portend for the future of “software engineering”.
Also, guest host Andrew Brust joins us for a review of the shiny new toys shown at CES in Las Vegas, NV. Andrew shares his thoughts and observations at CES on Android, slates, tablets, 3D TV, Internet TV, and more.
CLICK HERE TO LISTEN! Show Notes & ResourcesItems Discussed During the News & Banter with Peter & Andrew:
Andrew reports from CES
3D & Internet Connected TVs
Android
Slates & Tablets, Oh My!
Items Discussed During the Stephen Bohlen Interview:
Join SharePoint architects, developers, and other professionals that work with Microsoft Office SharePoint Server 2007 for ‘SharePoint Saturday’, on Saturday, January 30th, 2010. SharePoint Saturday will be an educational, informative & lively day filled with sessions from respected SharePoint professionals & MVPs, covering a wide variety of SharePoint-orientated topics.
SharePoint Saturday is FREE, open to the public and is your local chance to immerse yourself in SharePoint!
Register Here!!!SharePoint Saturday is by SharePoint professionals for SharePoint professionals...
The primary focus is on delivering quality information on all aspects of SharePoint. The event itself is free as well as all slides, CD’s and demo code. SharePoint Saturdays are one day events and are being held in several cities through out the year.
More information can be found at http://www.sharepointsaturday.org.
The last few months have really taught me a lot about what I don't want. For instance, writing and running Ad-Hoc SQL queries at the whim of the business is probably not the best use of my talent. In addition, people that just haven't caught up to what ORMs offer (Gosh, even Microsoft has two free ones - LINQ to SQL and Entity Framework!!) and insist on jamming everything into the database and using hundreds of uncomprehensible T/SQL procedures (wondering why there is huge ontention) are well, irritating.
So what do I want? I took some requirements for an Architect position and share what I'd like to do. The bolded words are important to me.
Responsibilities:
* Help in defining, maintaining, and enhancing the base Application Architecture that will be used on all applications.
* Provide guidance in best practice and tool use in the design and build of technical frameworks and the applications built on them
* Develop certain key core components as well as guide other developers in developing these components.
* Assist in institutionalizing defined application architecture patterns and their use in various projects.
* Maintain awareness of industry changes in technology standards, information management, development standards, methods and emerging 3rd party software and determine how they can be utilized and applied to the core application architecture.
* Collaborate with the Enterprise Architecture team to work within their guidelines for a Services Oriented Architecture.
* Architect large and small-scale applications to meet business requirements and ensure that they follow the application architecture and other guidelines defined by xxxxx
* Participate actively and contribute during all phases of the Software Development Lifecycle of multiple projects in parallel, and ensure that project deliverables are met in time and with excellent quality.
* Work with business users along with the Project Coordinators to understand inefficiencies in their existing business applications and recommend solutions.
* Perform detailed technical analysis to present pros and cons of various technical approaches to solutions and recommend the appropriate solution.
* Produce detailed architecture and design documents (UML) to present the complete technology solution for a product.
* Have hands-on involvement during the development phase and code certain key parts of the application, as required.
* Perform code reviews during the development phase.
* Mentor junior developers.
* Assist in the screening and interviewing of future project team members.
* Stay current with industry changes in technology standards, information management, development standards, methods and emerging 3rd party software in order to advise on technology and leverage industry best practice in the design and construction of software products.
Qualifications:
* Candidate must have a BS and/or MS in computer science or equivalent experience.
Experience:
* 10+ years overall IT experience with Microsoft technologies, 3+ years experience in a similar role using MS.NET
* Proven experience estimating, planning, designing, and implementing n-tier software architectures and solutions.
* Sound IT experience in some combination of application architectures, software development and infrastructure, systems integration, package implementation, and interaction design.
* Solid knowledge of Industry Standards, Frameworks, and Design Patterns.
* Experience with interaction design, web technologies, and web service solutions.
* Extensive background in .Net framework with an emphasis on versions 2.0 to 4.0 (10 years for me now)
* Solid experience in relational database design and modeling and SQL/DML.
I don't want to get used as just another developer - I have lots more to offer. I am in Southern NJ near Philly so the position needs to be too. Don't contact me if you have a position in Chicago or something :)
First N&N in about 2 months...
WCF/Windows Server AppFabric/REST
Software Releases
I had the opportunity this year to attend CodeMash 2010.
For those of you unfamiliar with CodeMash:
"CodeMash is all about jumping into new domains. Getting out of your comfort zone. Learning new things from new people."
CodeMash 2010 was without a doubt the best developer event I have ever attended.
Here is my list about what made it great:
1. People - there was an awesome mix of people. Those attending seemed to do a really good job of attending sessions there were outside of their comfort zones. I have seen this attempted at other places, but usually the cliques are usually too strong.
2. Mary Poppendieck - her keynote, "The Five Habits of Successful Lean Development" was easily worth the price of admission. You can see the slides here. I am considering attending an event or two later this year just to see her speak again.
3. Focus on Craftsmanship - there were quite a few really good sessions which focused on refining your craft more than just getting to know technology ABC a little bit better. Joe O' Brien's "Refactoring the Programmer" and Jeremy Miller's "Software Design and Testability" really stood out to me. Both sessions were fabulous and I hope to see Joe and Jeremy present similar sessions at other events this year.
4. Other Technologies - I have been a fan of MongoDB for a while. It was great to attend a really good overview session which helped connect a lot dots. I have also had an on again off again fascination with Ruby. It was rewarding to hear some as passionate about as Leon Gersing walk through some of its’ benefits without the fud.
5. Cost - I still cannot believe this event only cost $175. It takes a lot of time and effort to put on this kind of event. (Seriously, drop the not-for-profit, double the price, and take this show on the road. It sucks having to wait until next year to attend again :)
6. Family - I made the newbie mistake of leaving the family home. This is the first developer event I have attended where family (wife & daughter) would have really enjoyed tagging along.
Besides bringing the family, the only thing I would have done differently are the pre-compilers. I skipped them and regretted it. I was trying to minimize time away from home, but I definitely missed out on great sessions.
I am already looking forward to CodeMash 2011 (and please, AT&T get these folks some 3g. Spotty service is one thing, none is just cruel).
Follow me on Twitter
Posted to Code and tagged as codemash , events
Similar Posts
The news has trickled out over the past week on Twitter… (can’t stop the spread of AWESOME news in the digital world we live in J)… but I’m excited to publicly introduce two new additions to the NY/NJ/CT area Microsoft evangelism team: Rachel Appel and Bob Hunt!
Rachel Appel will be joining Microsoft as our newest Developer Evangelist here in the NY metro area. Bob Hunt has also joined the local Microsoft evangelism team as our new IT Pro Evangelist here in the NY metro area.
Rachel has been working as a mentor, instructor, software developer, architect and DBA for nearly 20 years. During her career, Rachel has worked with a variety of languages, technologies and systems and has contributed to projects of all sizes including large scale enterprise applications at some of the world’s leading companies.
Rachel is the Vice President of the .Net Valley user group, as well as a leader and regular speaker in the Philly.NET and Central Penn.NET user groups of Pennsylvania. She can also be found speaking at code camps, user groups, community events and conferences across the country.
Rachel’s expertise lies within developing solutions that align business and technology using the Microsoft .NET family of products, particularly ASP.NET & SQL Server. She is also an ASP.NET MVP, ASPInsider and holds the Microsoft Certified Trainer, MCAD & MCSD certifications. She is also a member of the INETA speakers bureau.
In her new role, Rachel will be partnering with me in supporting the local Microsoft community, as well as focusing on driving satisfaction and product adoption with developers throughout the area. Rachel will relocating to the New York City area soon from northeastern Pennsylvania.
Today, January 18th, is Rachel’s first day on board! I’m sure she’ll be “drinking from the fire hose” most of this week and getting set up. You can reach her online now at http://rachelappel.com/ or follow her on Twitter at: http://twitter.com/rachelappel
Bob has over 18 years of IT industry experience with a major emphasis on Microsoft technologies, including over 14 years of experience with Microsoft Exchange. Bob was recently a Unified Communications Technology Specialist for the NY Metro District for the past 5 years where he has worked with customers across all verticals to help them realize potential of Microsoft Unified Communications Technologies. In this role Bob has been an Exchange Insider and has was recognized as a “Top Gun” Exchange Insider by the Exchange Product Group.
Prior to Microsoft, Bob spent almost 10 years in the partner community at several locally and nationally managed Systems Integration partners where he built and lead a number of Active Directory and Exchange IT consulting practices in the NY Metro area. As a partner, Bob was also an author of multiple chapters of the Microsoft Press Title “Microsoft Exchange 2000 Resource Kit.”
In his new role Bob will be partnering with Rachel & I in supporting the local Microsoft community, with a focus on driving satisfaction and product adoption with IT professionals. If your interest is in things like Windows Server, Windows client, SharePoint and related core infrastructure technologies, then Bob is someone you’ll want in your contact list!
Bob officially started his new role on January 1st. Bob lives in Westchester, NY, and is married with 3 children. In his miniscule spare time he enjoys camping and travelling to warm, sunny and fun places with the family. Bob is also a basketball coach and Board Member at Westchester Arc.
Some of you may be wondering “where are you going Peter”? I’m not going anywhere. The NY Metro area has a LOT of developers! I’m looking forward to working together with Rachel to be able to excite even more folks in the area about Microsoft’s developer technologies!
Please join me in welcoming Rachel & Bob to the NY/NJ/CT Microsoft evangelism team!
Thanks to all of the people who attended the NJ Agile Firestarter in December at the Microsoft offices in Iselin, NJ! The Firestarter was a successful event, and feedback from the attendees was overwhelmingly positive!
I’ve never seen as many folks take the time to write handwritten comments on evaluation forms at an event before. The event speakers thank you for that valuable information!
I want to say thanks to all of the Agile Firestarter speakers: Stephen Bohlen, Jess Chadwick, Todd Snyder, and Sara Chipps. Without them, this event wouldn’t have been possible! All of these speakers volunteered their personal time and effort to help organize this event and put the content together.
Speaking of the content, I’m happy to announce that some of the content is now available online. The event was not recorded, however, slides & code samples (where available) have been posted below.
NJ Agile Firestarter Content Title Speaker Content Links Session 1 Intro to Agile Stephen Bohlen Presentation:Stay tuned and check out my interview with Stephen Bohlen on Agile methodologies coming up the Connected Show later this week!