Solo Web Startup

A solo entrepreneur's 1st startup

  • @Refynr
  • My startup: Refynr.com
  • Me on LinkedIn
    • 0
      29 Dec 2010

      Top 10 Architecture Scalability Mistakes Made in ColdFusion

      • Edit
      • Delete
      • Tags
      • Autopost
      Repost from my old CFZen blog:

      Posted : Aug 8, 2009 12:56 AM

      This is a focus on architecture design mistakes I've seen made too often over the years by CF developers building ColdFusion architectures. Often times, the codebase and system started small and grew too fast, such that the original developer/architect didn't have the time or experience to scale the system up with the demands of high-load applications.

      1. Not dedicating enough time and resources on optimizing the database:

        Too often, there are smart, but unqualified programmers/developers designing and maintaining the database.  A qualified/certified DBA, even part-time, is well worth the investment. You need one who can profile your database, tune all the server and individual database settings, recomming index changes, be responsible for DB design and integrity, regular maintenance, set up replication/failover/clustering, and will proactively monitor your database to let you know what problems need attention in relationship to your applications.

      2. Not dedicating enough time and resources on optimizing queries:

        Again, developers tend to throw themselves into the role of writing all the queries, but don't necessarily think about the performance/scalability issues of writing non-optimal queries.  Often times a DBA who is qualified for all the Database Server stuff (see #1 above) isn't the same type of DBA who can optimize your queries.  You need someone who can run the queries with explain plans, and then can make recommendations on improvements.  These improvements pay off immensely!

      3. Coupling all parts of the system into one mega-application, instead of separate applications

        Usually they start out as fine: clever little applications that "do the job". They may have started in the CF 4 or 5 days, and grow and grow over the years until they're a mass of spaghetti code.  It may never occur to the developers that as the app gets bigger that not everything belongs together any more.  It will take some work, but it's important for long-term stability and scalability that you de-couple big chunks into smaller applications that run independent from the original beast.  Scheduled Tasks, Web Services, APIs, User Admin Areas, Reporting, file/image services, Search services, etc. should no longer be coupled to the main application.  Each of those parts should be broken out, so that each can be tuned optimally.  Do you want your whole system to start bottlenecking because Search or Web Services become slow or go down?  If they're decoupled, you don't have that problem.

      4. Not using a good "shared" file system scalable for high numbers of file writes

        When there are multiple physical servers in your cluster (if applicable), you may want a single location to save files.  No-no's here are mapped drives/mounts to a non-dedicated server (such as a drive on your database server, some external drive, etc.).  A good NAS and/or SAN solution with failover scales better as file writes become higher over time.  Cloud Computing solutions are becoming big now, too, but I haven't tested enough in this area to make sound recommendations. I'm sure other with more experience can tell us.  Comments?

      5. Not tuning the JVM

        Many articles have already been written on this subject, so I won't go into it.  If you're having performance problems and you don't know how to tune your JVM, get help from one of the many articles out there, hire an expert, or get Adobe Platinum support for CF.

      6. Not tuning Request settings in the ColdFusion Administrator

        See #5 above.

      7. Not making good use of Multiple Instances

        When you de-couple areas of your application (see #3), often it's wise to put your new applications into separate CF instances.  For instance, all heavy tasks (Scheduled Tasks and other "batch" type processes) should run on a separate instance.  You don't want to know how many times I've seen a Scheduled Task bring the entire infrastructure to it's knees.

      8. Not using CF Monitoring tools, such as SeeFusion, CF8 Server Monitor, and/or FusiontReactor

        Get familiar with at least 2 of these, and hire an expert to help you get up to speed on them more quickly.  These save your butt!

      9. Trying to recreate the "holy grail" reporting system from scratch

        First, any reporting system should be a prime candidate for de-coupling.  And reports that come from the database should not be running against your "write" (master) database, but rather against your "read-only" (slave) database, or else you'll have a lot of bottlenecks on your hands as users create massive reports reading data while other users are trying to simultaneously write data via the rest of the application.

        But secondly, look for reporting solutions that are already available.  Most of the time users don't really need *real-time* reports, and off-line/archived data lends itself better to the more complex reports that users start to request over time (allowing Excel exports makes a lot of people happy, cuz they know how to generate reports "the way they like them" in familiar Excel.  Also, don't write a Report UI that allows users to request *too many* records - your milage will vary, but it's almost never a good idea to allow reports that have no filters, such that they can just *get everything* all at once.  Few web apps are built for handling that much data, so find other solutions.

      10. Not taking advantage of various caching capabilities:

        We all know (hopefully) to cache queries where possible, but... do you use the Application/Server scope where appropriate, and to use cfcache (or other 3rd party CF cache tags/CFCs/frameworks) in areas that rarely change?  Do you come up with caching strategies for data, so that it can persist in the Application/Server scope without going back to the dB unnecessarily?  Could other data/files be cached to disk?  Can you use Verity (or Lucene/Solr) for searches instead of pulling directly from the database all the time?

      Aaron Longnion
      http://refynr.com

      • views
      • Tweet
    • 0
      29 Dec 2010

      Regex to find cfquery missing cfqueryparam

      • Edit
      • Delete
      • Tags
      • Autopost
      This is a regex within CFEclipse of ColdFusion Builder I've used in the past to clean up legacy code that's missing CFQueryParam's:

      \s+(where|set)\s+[a-z_\.]+\s+(like|\=)\s+'?%?#[a-z"_'\.\(\)\+\/]+#%?'?

      A CF-based solution is also http://qpscanner.riaforge.org/

      Aaron Longnion
      http://refynr.com

      • views
      • Tweet
    • 3
      29 Dec 2010

      Refynr listed on MakeUseOf.com!

      • Edit
      • Delete
      • Tags
      • Autopost

      I don't know how someone at MakeUseOf.com found Refynr.com, but last night I started seeing tweets about "Refynr: Filter Your Facebook & Twitter Streams For Relevant Keywords". Some of the tweets were even in Spanish. Nice!

      At the moment, it's listed number 1 (presumably cronologically) in the Social Networks section: http://www.makeuseof.com/dir/cat/web-services/crowded-social-networks/

      The direct link is here: http://www.makeuseof.com/dir/refynr-filter-your-facebook/

      From what I can tell, normally to get listed you have to submit your app at http://www.makeuseof.com/contact/ and pay if you more exposure. I didn't submit Refynr. Someone from MakeUseOf.com must have found it "organically" and posted the description. Woohoo!

      I still know very little about marketing, but after this and being on http://betali.st, blogging, tweeting from @aqlong and @refynr, Facebooking, and using LinkedIn (where someone found me and invited me to be on a Startup radio show), I have a single piece of advice:

      • Keep putting yourself out there, early and often. Don't spam or be annoying, but keep plugging away and you'll get noticed by bigger and bigger people/sites over time.

      What do you think?

      • views
      • Tweet
    • 7
      17 Dec 2010

      Opinions are like a-holes, everyone has them...

      • Edit
      • Delete
      • Tags
      • Autopost

      and they all stink!

      A friend emailed me and asked my about my experience with crowd-sourcing the new logo design for http://refynr.com, and here's my reply:

      "CrowdSpring.com was a mixed bag:

      Pros:

      • pretty easy to set up
      • cheap
      • you get lots of entries (151 in my case)
      • If you're very specific and descriptive, you can end up with something you like

      Cons:

      • decision paralysis: With so many choices, I couldn't really decide myself. That's why I put it up for a vote online, which only helped in a bass-akwards sort of way. The best logos bubbled up to the top, but the top 3 were not actually a good choice for a versatile web logo (which needs to look good large, small, and very small as a favicon; not to mention maybe I want to use in print or on t-shirts some day). How did I know that? Because a nice twitter follower named Dina emailed me and described from a *real* designer's point of view what I should be looking for. So, I went with the 4th choice, and had the designer on CrowdSpring simplify and tweak it to exactly what I wanted.
      • It helps if you know what you want. I didn't, so spent a lot of time asking online, and asking my relatives (not the greatest idea!). What's the saying? "Opinions are like a-holes, everyone has them and they all stink!"
      • I probably would have saved a lot of time, but not money, by using a real designer in the first place.
      • there were a ton of really bad entries. Only about 15% were above average, imo

      I don't have anything to compare with because I've never used a real designer previously or another crowd sourced site either, but those are my thoughts."

      • views
      • Tweet
    • 5
      15 Dec 2010

      Love it or hate it: the new Refynr.com logo

      • Edit
      • Delete
      • Tags
      • Autopost

      This took way longer than I thought it would. But I used CrowdSpring.com to "crowdsource" the new design of my logo. Do you see what I see in it? From the top, the white "stream" (representing Social Network streams) comes in and goes to the left (where it is Refyned), and then finally flows to the bottom where you have your nice, custom stream of "Always on Topic" Social Media. And it looks like an "R".

      (download)
      Click here to download:
      love-it-or-hate-it-the-new-refynr-com-logo-uDkGfHekBkhEtifEJdqk.zip (37 KB)

      This was not actually the top vote getter, and obviously it's different than the one that I put up online for everyone to vote on. This final design was re-worked at my request like so:

      1. Got the designer to match the blue color scheme already on Refynr.com
      2. Simplified the colors and effects from the original
      3. Added the arrow at the bottom

      Also, I went with my gut on this one instead of the top vote-getter.

      This link will only be up for 30 days, but here's some of the 151 logos I had to chose from:

      http://www.crowdspring.com/project/2290493_new-logo-for-refynrcom/?filter=all...

      Special thanks to Dina Gathe who went out of her way to explain from a veteran designer's point of view why the top vote-getters were not the best long-term, flexible choices for a logo like this. She even sent me some of her own concepts which help me go in the best direction and solidify what I wanted & needed. Thank you, Dina!

      • views
      • Tweet
    • 9
      14 Dec 2010

      Refynr.com runs on ColdFusion 9 Enterprise now!

      • Edit
      • Delete
      • Tags
      • Autopost

      On Rackspace Cloud Servers, Refynr.com has been switched from Railo 3.2 (beta) to ColdFusion 9.0.1 Enterprise, Multi-server (2 CF instances clustered on JRun so far).

      Why would I switch from Railo CF to Adobe ColdFusion?

      1. It was free:
        After my "Top 14 web startup tools" post over a month ago, Adobe contacted me with a donation offer I could not refuse: a free Adobe CF 9 Enterprise license and free CF Builder license to use for Refynr.com. WOW! I was shocked. Of course Railo is free, too, so read on...
      2. My experience is with Adobe CF:
        After I learned about Railo "context", installation, JVM tuning, updates, and slight coding differences, I enjoyed using Railo, and it served me well for the first 3 months of Refynr.com; but, all my previous 10 years of experience with CF has been with the Adobe flavor, so I know the ins-and-outs of tuning, clustering, monitoring, and coding with it. 
      3. Maturity:
        CF 9 has been out for quite a while now, and Railo 3.2 is still in Beta (but will be released soon I think). It's been on many more high-end systems, for longer, with more bugs founds and fixed, and there's a larger online community to pull from if I need help. I will say the Railo Team has been very helpful and supportive of me and Refynr online, so it's not a knock on them at all
      4. Built-in Monitoring:
        The built-in CF 9 Server / Multiserver Monitor and Server Manager is great! And I already have experience using them to manage, monitor, and tune CF 8 & 9 systems. Railo uses FusionReactor, which I hear is great, but I don't have experience with it personally, and it would have cost me money to get it.

      I want to thank the various team members, and users of, from Railo who helped me get started, submit bugs, and iron out kinks as I tried to get this startup off the ground.

      And last, but not least, I'd like to thank Adobe for this generous donation. It will allow me to run up to 10 CF instances in the Rackspace Cloud, which would have been very expensive or complicated for me to do otherwise. I'm doing this Refynr venture alone with my own cash, so any time and money I can save is a huge boost. As needed, I plan to scale to multiple Cloud Servers, add more CF instances, and upgrade server hardware & RAM to scale with demand. Since I already have experience with this setup from previous companies, I'm feeling a lot more comfortable that I and ColdFusion can handle the future together :D

      Any questions or comments?

      • views
      • Tweet
    • 3
      13 Dec 2010

      ColdFusion 9 multi-server installation tip

      • Edit
      • Delete
      • Tags
      • Autopost

      If you're installing ColdFusion 9 (and probably 8) Enterprise multi-server from scratch, save yourself a lot of time and potential for mistakes:

      Instead of installing the cfusion instance, adding each additional CF instance, and _then_ installing updates and hot fixes on _each_ new instance, do this:

      1. install CF, which auto-creates the cfusion instance
      2. apply all updaters and hot fixes to that cfusion instance
      3. then, create the new instances from the CF Admin of cfusion. The new instances that you create will _inherit_ the updaters and hot fixes from the cfusion instance. That's much better/faster than the other way around.

      Happy installing!

      • views
      • Tweet
    • 1
      10 Dec 2010

      Refynr accepted into Microsoft BizSpark program

      • Edit
      • Delete
      • Tags
      • Autopost

      I applied about a week ago, and this morning I got the happy surprise of being accepted into MS BizSpark program!

      Here's the Refynr.com company profile: http://www.microsoft.com/bizspark/ConnectDetail.aspx?Startup=82718 

      What does this mean for Refynr?

      • It validates that Refynr is a good enough idea that Microsoft wants to be associated with it
      • I get access to Microsoft tools and software
      • I'll have access to start-up incubators, investors, support, and more
      • Refynr gets visibility from the BizSpark network
      • Could potentially use Microsoft Azure cloud to run Refynr.com: http://msdn.microsoft.com/en-us/subscriptions/ee461076.aspx?ppud=4

      Exciting times!

      • views
      • Tweet
    • 1
      7 Dec 2010

      Essential notes on setting up a ColdFusion cluster

      • Edit
      • Delete
      • Tags
      • Autopost

      This info is probably somewhere else, but I want to put it here for others and myself because I seem to always forget when I'm setting up a ColdFusion Multi-server cluster on Linux (RedHat or CentOS 5.x):

      Remember that you're trying to connect your Web Server (Apache) to the cluster, and not an individual instance of CF. So, you must do things in the correct order:

      1. When installing ColdFusion, of course choose the Multi-server installation.
      2. Then, do not connect to the Web Server during installation
      3. From the cfusion instance (port 8300), create new CF instances that you want to put in your cluster
      4. Next, create the cluster and put those instances into that cluster
      5. Go to your command line and make sure the httpd-devel is installed on the server: yum install httpd-devel
      6. Stop Apache: service httpd stop
      7. Make the connection from Apache to that new cluster: /opt/jrun4/bin/wsconfig -cluster cluster_name_here -coldfusion -ws Apache -dir /etc/httpd/conf -v
      8. Verify it's all running with: /opt/jrun4/bin/wsconfig -list -host localhost -v
      9. To watch requests hit different instances:
        1. stop all instances: /opt/jrun4/bin/jrun -stop
        2. start each instance in the cluster in separate terminal (or putty) windows: /opt/jrun4/bin/jrun -nohup -start -childVM instance1
        3. when each one starts up, you should see a bunch of startup text about the ClusterManager starting up
        4. hit the web server from a browser. If sticky sessions are turned off for your cluster, you should see the requests hit each server after each browser refresh.

      Hope it helps :)

      • views
      • Tweet
    • 3
      6 Dec 2010

      New logo for Refynr.com | a crowdSPRING Logo Project

      • Edit
      • Delete
      • Tags
      • Autopost

      Check out these Refynr.com logo designs at crowdspring.com Please vote for your favorites in the blog comments below

      Competition for the best new logo for Refynr.com is really heating up. Put your vote in!

      • views
      • Tweet
    « Previous 1 2 Next »
    • Search

    • Sites I Like

      • Sean Corfield's blog
      • Filter Twitter & Facebook w/ Refynr
      • Raymond Camden's ColdFusion Blog
      • Aaron West's Blog
      • Ben Nadel's blog
      • A Smart Bear blog
      • IttyBiz blog
      • Charlie Arehart ColdFusion Consulting
    • Tags

      • refynr
      • ColdFusion
      • startup
      • Twitter
      • entrepreneur
      • social media
      • facebook
      • railo
      • Jobs
      • cloud computing
      • mysql
      • programming
      • social networks
      • legacy code
      • cfml
      • jquery
      • marketing
      • video
      • Developer
      • Holland
      • design
      • logo
      • rackspace
      • LinkedIn
      • Subversion
      • crowdsource
      • googleplus
      • linux
      • security
      • sql
      • Peoplexs
      • SEO
      • Verity
      • adobe
      • conferences
      • openbd
      • radio
      • redhat
      • regex
      • Balsamiq
      • Ben Forta
      • CFBuilder
      • CFUG
      • Napkee
      • SOLR
      • SOTR
      • air
      • android
      • austin
      • beta
      • blog
      • bufferapp
      • centos
      • cfeclipse
      • chrome
      • clustering
      • css
      • curation
      • customer service
      • database
      • dutch
      • feedback
      • filter
      • filtering
      • funding
      • git
      • gmail
      • google
      • humor
      • i18N
      • iphone
      • jQM
      • java
      • jrun
      • json
      • microsoft
      • mobile
      • movies
      • mxunit
      • nosql
      • ocfs
      • open office
      • pitch
      • public speaking
      • rhel
      • scalability
      • sql server
      • svn
      • ui
      • unit testing
      • ux
      • web
      • webapp
      • website
      • websockets
      • windows
      • work
      • youtube
    • Archive

      • 2012 (6)
        • February (4)
        • January (2)
      • 2011 (57)
        • September (2)
        • August (1)
        • July (4)
        • June (3)
        • May (9)
        • April (5)
        • March (14)
        • February (8)
        • January (11)
      • 2010 (66)
        • December (13)
        • November (11)
        • October (7)
        • September (8)
        • August (5)
        • July (2)
        • June (2)
        • May (2)
        • April (7)
        • March (3)
        • February (1)
        • January (5)
      • 2009 (21)
        • December (7)
        • November (5)
        • October (3)
        • September (5)
        • August (1)
    • Obox Design
  • Solo Web Startup

    Web developer/architect turned solo web entrepreneur

    324922 Views
  • Get Updates

    Subscribe via RSS
    TwitterTwitterFacebookPageFacebookLinkedInFriendfeedDelicious