Industrial Experience On The Implementation Of Real Time On Line Energy Management S: Fill & Download for Free

GET FORM

Download the form

How to Edit and sign Industrial Experience On The Implementation Of Real Time On Line Energy Management S Online

Read the following instructions to use CocoDoc to start editing and writing your Industrial Experience On The Implementation Of Real Time On Line Energy Management S:

  • To begin with, direct to the “Get Form” button and press it.
  • Wait until Industrial Experience On The Implementation Of Real Time On Line Energy Management S is ready to use.
  • Customize your document by using the toolbar on the top.
  • Download your customized form and share it as you needed.
Get Form

Download the form

An Easy Editing Tool for Modifying Industrial Experience On The Implementation Of Real Time On Line Energy Management S on Your Way

Open Your Industrial Experience On The Implementation Of Real Time On Line Energy Management S Instantly

Get Form

Download the form

How to Edit Your PDF Industrial Experience On The Implementation Of Real Time On Line Energy Management S Online

Editing your form online is quite effortless. There is no need to download any software on your computer or phone to use this feature. CocoDoc offers an easy tool to edit your document directly through any web browser you use. The entire interface is well-organized.

Follow the step-by-step guide below to eidt your PDF files online:

  • Find CocoDoc official website on your computer where you have your file.
  • Seek the ‘Edit PDF Online’ icon and press it.
  • Then you will visit here. Just drag and drop the file, or append the file through the ‘Choose File’ option.
  • Once the document is uploaded, you can edit it using the toolbar as you needed.
  • When the modification is done, tap the ‘Download’ option to save the file.

How to Edit Industrial Experience On The Implementation Of Real Time On Line Energy Management S on Windows

Windows is the most widespread operating system. However, Windows does not contain any default application that can directly edit PDF. In this case, you can download CocoDoc's desktop software for Windows, which can help you to work on documents effectively.

All you have to do is follow the guidelines below:

  • Get CocoDoc software from your Windows Store.
  • Open the software and then drag and drop your PDF document.
  • You can also drag and drop the PDF file from URL.
  • After that, edit the document as you needed by using the various tools on the top.
  • Once done, you can now save the customized paper to your cloud storage. You can also check more details about how to edit PDFs.

How to Edit Industrial Experience On The Implementation Of Real Time On Line Energy Management S on Mac

macOS comes with a default feature - Preview, to open PDF files. Although Mac users can view PDF files and even mark text on it, it does not support editing. Thanks to CocoDoc, you can edit your document on Mac easily.

Follow the effortless guidelines below to start editing:

  • Firstly, install CocoDoc desktop app on your Mac computer.
  • Then, drag and drop your PDF file through the app.
  • You can attach the PDF from any cloud storage, such as Dropbox, Google Drive, or OneDrive.
  • Edit, fill and sign your paper by utilizing this CocoDoc tool.
  • Lastly, download the PDF to save it on your device.

How to Edit PDF Industrial Experience On The Implementation Of Real Time On Line Energy Management S through G Suite

G Suite is a widespread Google's suite of intelligent apps, which is designed to make your work more efficiently and increase collaboration across departments. Integrating CocoDoc's PDF editing tool with G Suite can help to accomplish work effectively.

Here are the guidelines to do it:

  • Open Google WorkPlace Marketplace on your laptop.
  • Seek for CocoDoc PDF Editor and get the add-on.
  • Attach the PDF that you want to edit and find CocoDoc PDF Editor by selecting "Open with" in Drive.
  • Edit and sign your paper using the toolbar.
  • Save the customized PDF file on your laptop.

PDF Editor FAQ

What are the best ways to think of ideas for a startup?

This approach will help you think of a solid startup idea.It is broken into 5 steps to facilitate progress through a system that in total should take about 30-40 hours to complete over a week or two, if you do it all.Add rigor and discipline to your brainstorming and idea evaluation process:Build lists of potential customer types and business or pricing models.Evaluate the opportunities where these lists overlap.Then, exit your ivory tower and evaluate the top ideas with real potential users, customers, or suppliers.This will improve your likelihood of success and waste less time down the road, even if you pivot from your original idea.Preface: There certainly are simpler answers like, “pick an area that is trending”, “look for a large market that hasn’t changed in 10 years”, or “convert your hobby into a business”. Unfortunately those aren’t particularly helpful, and since this question comes up often in discussions, I wanted to get my thoughts down in a more comprehensive way. I’m sure Quora will have some good feedback for me :)Also, while this answer covers the ideation part of the journey, keep in mind that implementing the idea is the hard part.Three primary paths to a new business idea1. The spontaneous idea: It hits you when you’re in the shower, driving in your car, talking with friends, or doodling during a meeting. The dots suddenly connect in a new way and you have an epiphany...your sudden insight is surprising and exciting, and the value of this new idea seems obvious. You can’t believe nobody else has thought of it before!So you go online and poke around...and...most of the time it turns out that someone has thought of it before. But, you still might be able to do it better...so you keep thinking about it and a day passes, and you start to realize some problems. You share it with a few trusted friends and get feedback about a lot of things you hadn’t thought of yet (e.g., nobody pays for it, it’s a tiny market, etc.). It could turn out to be a great idea, but you don’t know, you have a good job, and it is uncharted territory...so you let the dream slowly die away. Cheer up, that was probably the right decision.2. The insider idea: Maybe you’ve spent the last 7 years building enterprise software for airlines and you’ve noticed some voids in the product stack or issues with how your company brings it to market. You point these deficiencies out to your bosses, but there are other company priorities and nothing changes. Or, say your company pays vendors a lot of money to do some work, but nobody ever seems happy with the results....and you see a way to do it better for less. Or, maybe you witnessed your company kill an amazing new product or feature not because testing didn’t show user interest, but for political or organizational reasons.You see an opportunity to do it on your own, so you start moonlighting on a solution. You gather more specific information, talk to trusted co-workers and industry contacts, and determine the viability of solving the problem. The good thing is, you’re already knowledgeable and well positioned/networked in the business space...so good luck to you!3. The deliberate idea: In this case, you aren’t starting with a business idea. Instead, you’re starting with a desire to create a new business and become an entrepreneur. You may be ready to quit your job and go for it whole-hog, or just start it on the side of your desk...but you’re looking for the right business idea to pursue (which could be a business related to your work environment or industry, as in #2).While the first two paths may happen unintentionally, the third is for people who know they want to start a company, but don't yet have their idea. If you fall into the third group, then this answer is for you.#3 The Deliberate IdeaIdeation is fun and freeing, but it is the easy part of the process. Execution of your idea separates the wheat from the chaff and is where most people fail. That said, coming up with the right idea will improve your odds of successful execution. This system will help you do that well.Step 1 - Decide what is your primary motivation or personal goal for starting this (1 hour)For example, do you want a:Fun or hobby based business (e.g., making bracelets to sell on Etsy (product))Part-time lifestyle business that could become full time (e.g., running a wine-investment club)Full-time startup hoping for acquisition exit in 3-5 years (e.g., It’s like Airbnb (product) for fish, get it?)Large, cash-flow positive business (e.g., B2B furniture import and delivery business)Path to industry credibility and networking over financial gain (e.g., scriptwriting peer-training exchange for aspiring comedy writers)Create a new spreadsheet and write down your goal in the first tab. It may seem like overkill now, but if you take a break from this project you’ll want to be able to have it as a frame of reference when picking it back up.Step 2 - Frame the problem (2 hours)If you try to just write down a list of ideas from scratch, you’ll probably be underwhelmed with the results. You’ll likely hit a block after a handful of ideas, and what you come up with will be based on your predispositions...i.e., if you are a gamer, you’ll have ideas for games. If you work in cloud computing, you’ll have ideas for new approaches, etc. This isn’t a bad thing, but it is limiting.Instead, make a deliberate effort to facilitate your own brainstorming.In the spreadsheet you created in step 1, create a new sheet and type out a list of 15-20 different categories of customer/audience types in the first column. Don’t start with the usual demographic descriptions like, “18-35 year olds in urban environments making over $100k per year”. Instead, use descriptive phrases that represent specific groups of consumers and/or businesses with unique challenges and needs. These tend to be easier to conceptualize so they are more useful and helpful for generating ideas.Start with some that relate to your personal interests, hobbies, experience or professional network, but don't limit yourself to them. Some examples include retail insurance agents, cyclical dieters, ex-pats in Asia, news junkies, people that eat out 3+ times per week, new college grads, stay-at-home mothers, winemakers, startup founders raising money, youth sports teams, companies at trade shows, wedding planners, gamers, health nuts, software development agencies, etc. If you’re having trouble coming up with enough, broaden to specific industries, e.g., public transportation, dating, real estate, etc. If you’re going after a specific geography, call it out (e.g., ex-pats in Asia).Next, along the first row of your spreadsheet, type the business or pricing models (i.e., the type of business) that you could apply to these customers/audiences. There’s no exact right or wrong approach, and I’m using the term “business model” very liberally here. Not all models will apply to each group and some overlap is okay. Remember, you’re doing this to help you brainstorm and compare new business ideas, not to become an expert on business models.For example, subscriptions, product bundling, risk management/insurance, auctions, resale/classifieds, peer-to-peer exchanges, outsourcing non-core functions, freemium, advertising-supported content, new product development, after-sale care, daily deals (discounted pre-sale), collaborative consumption (think AirBnB), rapid evaluation/matching (e.g., Tinder), sales channel innovation, lead generation and referrals, marketplace, brokerage, BI/CI solutions, community, etc. (more here: TechCrunch business models)Step 3 - Generate ideas (4-6 hours)Your spreadsheet is now a grid with customer/audience types down the side and business/pricing models across the top. Each box where the two lists overlap is a place to brainstorm ideas. Go through each square in this grid. You can dismiss many of the boxes in a few seconds (e.g., Business Intelligence for stay-at-home moms?), but it is worth giving each consideration as you’ll inevitably come up with ideas you didn’t expect.The easiest way to do this is go column by column. Pick a business or pricing model, think of a few existing businesses that use it, and spend 5 minutes reading about them to get your head into that space. Then, apply it to each potential customer or audience group: how could it fit? What are their priorities, what gets in their way, where are they wasting time or money, what do they depend upon? Browse discussion forums where they participate or are discussed. See what they care about, what people complain about. Search online for other companies that already compete to offer them products and services. What are they?Your pass through the first column will take the most time, because you're learning about each of the 15-20 customer types as you go. It speeds up after that.Each time you come up with a keeper, type it into the corresponding box. For example, providing after-sale customer management for retail insurance agents? Or, a debt auction business for startups looking to raise seed funding? Type it in.Note: You may have 2+ ideas in a box. To add a new line inside of a cell type Alt-Enter for Excel on PC, Option-Command-Enter for Excel on Mac, Ctrl-Enter for Google Docs on MacTry to come up with at least 6 solid ideas. Then, create another tab in your spreadsheet and list all of your ideas there. In addition to writing down the ideas themselves, you should state the goal, audience(s), and model(s) for each one. These will change over time, but it is good to start grounded with something you can work-back towards.Step 4 - Evaluate ideas and narrow it down (3 hours)The next step is to evaluate your list of 6+ ideas against a set of criteria that will help you narrow down to the most promising three. For example:Heat in this space: E.g., Some answers on QuoraYour experience and connections: Do you have experience in this industry or with similar businesses? Are you well connected with friends or family that operate in this space? Any advantages, or disadvantages?Alignment with goals: How well does this align to your original goal? Are the upfront capital costs compatible with the level of investment you want to make in this business?Market opportunity: How big is this market and how unique or differentiated is your approach? Consider competition here, but don’t be discouraged by the presence of competition. It is validation that the space is interesting. Also, there are plenty of companies have come along and disrupted markets that others had written off as already solved, like:Google ... after Altavista, Metacrawler, Lycos, etc.Facebook ... after Friendster, MySpaceUber ... after Yellow cab, black car services, etc.Gmail ... after AOL, Yahoo!, Hotmail, etc.iPhone ... after Blackberry, Palm, Windows MobileFlipboard, Wavii, Zite, Pulse, Prismatic, etc. ... after Yahoo!, AOL, MSN, CNNYou probably don’t have time to really deep-dive on 10 ideas, so getting this narrowed down is both science and art. What does your gut tell you, what would be fun, where are you most comfortable and confident?OPTIONAL STEP: To add more science try quantifying some of these criteria.To do this, add a column to the Ideas tab, one for each criterion. Then, for each new column score your ideas from 1-5, with 5 being the best. So, for “Alignment with my goal”, a 5 means it aligns perfectly, and a 1 means it doesn’t align at all (e.g., your goal is to create a fun hobby business, but the idea is to sell offshore development services to technology companies in the US).Don’t worry if you aren’t sure whether something is a 3 or a 4, just go with your gut or do 5 minutes of online research. Keep moving forward, don't get stuck here bogged down in the weeds.When you’re finished, add up the scores and sort your list by the sum of these scores. In theory, the higher the score, the more interesting the idea should be to you.When you’re done evaluating your ideas run them by a couple of trusted friends, and narrow it down to the three that seem most promising. If you do the optional scoring step, don’t feel like you must pick the three that scored highest.Note - we could have used these criteria earlier in step 2 to narrow down the list of audiences and business/pricing models, but that would have limited the creative process too far upstream (i.e., before the brainstorming process), so I suggest waiting.Step 5 - Deep dive on those 3 ideas (20-30 hours over a week or two)Congratulations, you have come up with 3 solid ideas! Now it’s time to step out of your ivory tower and start getting street-level information and feedback. There are three basic steps for doing this (i.e., 5_a, _b, and _c) that are general enough to apply to most types of ideas.A quick aside: at this point people ask, "If I share my idea with a lot of people, won't someone steal it?" The answer is possibly, but unlikely. As previously mentioned, there are a lot of startup ideas but few people with the time, energy, or know-how to implement them. The benefits of getting good feedback early on outweigh the risk that someone will steal it. So, don't tell people that won't benefit you, and avoid telling direct competitors that are in a position to do it themselves, or to block you from doing it, but generally don't worry. Related questions / blog posts:Will a VC or Angel steal my idea?How can I be sure people won't steal my idea during a pitch?Will anyone steal my startup idea?Why you shouldn’t keep your startup idea secret5_a. Get smart(er) (6-8 hours)You will be able to evaluate and refine your ideas 10x faster by engaging in discussions with real potential customers, users, and partners. But, if you go into these unprepared you’ll wind up asking the wrong questions, sounding out of place, and wasting your opportunity and their time.So, before you invest in surveys, coffee shop chats, or informational meetings, you need to get up to speed on the basics of the industry you are targeting. If you gave yourself a 5 in the “Experience and connections” category in Step 4, you can skip this. If not, invest 2-3 hours per idea.Note - throughout this process you should take detailed notes. Create a new tab for each of your ideas, or an entirely new document; doesn’t really matter as long as you can write stuff down. Track who you've spoken with, emailed, feedback, etc. Trust me, you will be glad that you wrote this all down.This will probably take a couple of days. At minimum I would:Call up or email savvy friends and family to get their thoughts (LinkedIn is a great tool for this).Give them the 10,000 foot view of your idea and ask for their opinion. (Take good notes on or right after the call; do not trust your memory for this.)Ask them what they think is the biggest problem with it, otherwise they might just say nice things.If they’re in your industry then ask if they know of other companies in your space, what they think is broken, etc.Ask them who they would speak with if they had your idea. Ask if you can get informational interviews with those people.Talk to potential investors if possibleThey don’t have to be the people that will actually invest in your business, but at this step ideally you have a personal relationship with them. Position your conversation as looking for advice to make a decision, not their money.Anyone you know that does angel investing, VC, M&A, etc., will have a trained perspective.Do lots of online research. For example:Find out who competes in this space, and add them to your spreadsheet.Read their websites, watch their videos, and search for them together, e.g., “Windows AND Android AND iPhone”. These search queries surface articles and blog posts that analyze the broader industry, offering helpful perspective and discovery of competitors you missed. E.g., “Windows, Android and iPhone versus Blackberry”.Browse on Wikipedia to learn industry vocabulary and organization.Search Quora for questions about the industry or these competitors.Determine external dependenciesYou may need data. Is it available free or paid, or will you have to mine it yourself, etc.?Do you need any particular physical materials, machinery, etc. that are hard to come by?Will you require any permits or government approvals?Will you need to hire any specialists people that are particularly difficult to find and recruit?Expensive equipment?Will you need to raise a significant amount of outside funding just to get started b/c there are high capital costs?Etc.Now you are smart enough to have the intelligent conversations with people in your prospective industries, and you probably have also improved and refined your ideas. Woohoo, you’re getting closer to “the one”.At this point a lot of people would pick something and invest time in “creating” their business. I.e., set up a corporation, pick a name, secure a domain, design a logo, print business cards, figure out their title, etc. While these things feel like progress towards a “real company”, they are an unnecessary distraction at this point. It is much wiser to spend that energy on validation of your idea, like testing with real customers, meeting competitors, mocking up prototypes, etc.5_b. Talk to potential customers, competitors, and industry partners you don’t know personally (5-10 hours)Before you pour your heart and soul into a new venture, you should validate it outside of your friends and family circle. Is this solving a real issue for potential users or customers? Would they be willing to pay for it...or do businesses even have budget for what you’re offering? Again, the mechanics of this depend on the type of business idea that you have (e.g., starting a sandwich shop vs. office supply delivery vs. peer-to-peer insurance), but here are some general approaches that I would recommend.Run an online surveyQuick way to get a relatively large sample of answers from your target customers or audience.There are probably others, but Google Surveys is drop-dead simple to use and it allows you to easily limit responses to your target (e.g., people that buy life insurance).It’ll cost you a couple hundred bucks per survey. A cheap alternative is to post the concept on a discussion forum or Quora to get feedback.Talk with your potential customers/audienceIf you’re targeting consumers, figure out where they spend time and go there to ask them questions (e.g., certain neighborhoods or coffee shops, concerts, sporting events, conventions, etc.). If you end up in a coffee shop, print a sign for the back of your laptop that says “Your feedback on my idea for a free latte”!If you’re targeting B2C businesses, approach them as a customer, and ask them some questions. Buy something if they sell retail.If you’re targeting B2B businesses, email them or go to conferences that they attend, etc. Try to get an informational interview based on the premise that you’re working to improve the industry and do something valuable for them, so you need their expertise and advice. People like it when others ask for their ‘expertise’.Talk with suppliersThis is relatively easy, since you are a potential buyer and they will want your business.In a previous step you identified the external dependencies you’ll want to take, i.e., what you should buy vs. build, and some possible vendors. Get meetings with them.You need to verify your assumptions, and while a lot of the details will be available on their website, information about pricing, access restrictions, etc., is often not, so you’ll want to email or call them to get details.Try to speak to more than 1 provider for each item so you can compare prices and look for differences or similarities, which will tell you a lot about the industry.OPTIONAL - Start selling before you have anything to sellSome people call this doing a “smokescreen test”, and the mechanics of it really depend on the business idea. In many cases, it actually won’t be practical to do this until you are working on your final idea.B2C: If you’re targeting consumers you can do this via the Google or Facebook ad platforms.B2B: If businesses, then send a bunch of emails to potential customers (you can find them online) with a proposed offer and price...vary the price and offer details and keep track of how people respond (hopefully some do). see if you can get on the phone with one or two of them. Learn what questions they ask, what they push back on, if the price seems reasonable. If someone wants what you’re selling, then you may have your first customer if you can deliver something quickly (you won’t be the first to sell something before you own it...remember Bill Gates and IBM (company))5_c. Write abbreviated business plans (7-10 hours)We’ve spent a lot of time working on the individual components of each idea, and now it is time to step back and see the big picture. Bring your thinking and research together into a brief business plan for each idea that still appears to be worth pursuing. If it is obvious from the previous steps that that an idea isn’t going to work, drop it.Here’s a suggested outline. Try to limit it to be 2-3 pages, and no more than 3 hours per idea:Page 1One-line description of your idea:[Company] will <do, make, or provide> for <target audience or customer> so that <the value/outcome you bring>.Example: Lewis Industries will develop customer management software for automotive dealerships so that they can increase loyalty post-sale and sell more services and upgrades to consumers that buy vehicles.Description of your products and services: 150 word description of the problems you are addressing and the scenarios you will focus on first.Page 2How and when you monetize: Will you start as a free service for everyone, and hope to monetize later through premium offerings (freemium) or advertising (ad-supported)? Or, will you start charging immediately, or never? You won’t know for sure, but give your best guess.Distribution model: How will potential customers or users discover you? What marketing and/or partner channels do you plan to use?External dependencies: For what core things will you rely on others to provide, e.g., A database of all vehicle makes and models, and option packages since 1970? You should have this list from previous steps, and don’t worry about generic things (e.g., office space).Page 3Estimated cost to reach your Minimum Viable Product (MVP): Just try to get in the ballpark here. The main reason to figure this out during the ideation stage is that it will impact how you approach starting the business, which may or may not align with your goals. I.e., if you’re planning to build a Zipcar for trucks and need to raise $2 million for the vehicles, then you probably can’t do it as a lifestyle business off the side of your desk.What are the major external dependencies and how much will they cost (e.g., $20,000 for the automotive database)How much development and design do you need to do for this idea, any large capital costs (e.g., a fleet of trucks)?Here are some places to learn how to estimate these costs: Estimating startup costs for a new businesses (StartupNation), How to estimate the cost of starting a business from scratch (United States SBA), Estimate startup costs (Entrepreneur)Summary of idea’s strengths and weaknesses (1-2 sentences for each)Research: What did you learn from your survey, calls, emails and online research that supports or challenges this idea? E.g., Positive if 67% of people surveyed say they will pay $10 for this, less so if 4 of the 5 companies you spoke with have no interest in what you’re proposing.Industry/macro trends: Will you have a tailwind or a headwind doing this? List out the specifics (e.g., My largest customer, retirees, is estimate to grow at 10% per year for the next 20 years.)Your knowledge and connections: You'll have a good sense for this, but write it down anyways. E.g., I have spent 4 years working on software for this industry, and x, y, and z from college are potential buyers.Risks: Are you taking dependencies where the solution isn’t yet clear? How competitive is the market, and what advantages do competitors have...or, is competition not a deterrent for x reason?You could easily increase the scope of this business plan by an order of magnitude, and there are a dozen templates for this (Writing a Business Plan) or approaches to analyzing your ideas (e.g., SWOT analysis). The important thing is that you’re being honest and self-critical, because ultimately you are the one taking the risk.Step 6 - Pick the best idea and get startedIf after all of this digging you are still feeling really good about one of these ideas, then go for it...this is where the real work begins. You’re going to need to think about financing, hiring, networking, and business operations in addition to the fun part of actually building your product or service.That is for another post! In the meantime, here are some resources to help you on your way:First I'd sit back and read...Startups are roller-coasters that often end in failure...make sure that you know what you're getting yourself into! Check out Mashable’s post on Why 90% of Startups Fail, David Lee's on Why I Never Started My Own Company, and Dave McClure's slides and video about “Why not to do a startup”.Now, if you still want to do this, read Paul Graham 's essay on How to start a startup (he also has an interesting view on startup ideas)Next, grab a drink and read Quora's take on what first timers often miss - What first time entrepreneurs are blind toThen, Jimmy Wales' answer to how to contact him about a startup idea...it applies broadly to how you should contact a potential advisor or investor about their startup.Lastly, go up-vote something Ashton Kutcher wrote on Quora and ask Mark Zuckerberg a question that he won't answer...Congrats! You're half-way to a great startup (scene story for your friends). :-)Startup advice and storiesQuora questions - What is the hardest part about staring a company, Common mistakes made when starting a tech company, Top five things to remember whens starting a companyJames Altucher, TechCrunch - Should you start a company?Jason Goldberg, Betashop - 13 things you must do every week as a startup CEOSeth Sternberg, Meebo co-founder (acquired by Google since this article) - From nothing to something. How to get there.Ben Horowitz vs Fred Wilson - Ben posts (case for fat startup), Fred rebuts (fat not healthy), Ben rebuts (revenge of fat guy)Neil Patel, Geekwire - Wish I would have known before starting my own businessDane Carlson - 20 things not to do before starting a business (I agree with most of this, but not #1 if you can afford it)Scott Weiss, TechCrunch - The path to starting a startupJames Altucher, TechCrunch - What you can learn from Woody AllenErick Schonfeld (2006), 5 ways to start a company (without quitting your day job)ChecklistsRyan Roberts, Startup Lawyer - If I launched a startup (great cheat sheet)Quora - How do you start a companyForbes - 38 things to do when starting a business (non-tech)Fiverr (marketplace) - Startup checklist (non-tech, and website is a little kitschy with all the dashes, stars, and arrows in the text)Finance and LegalQuora - What questions do entrepreneurs want to ask venture investors most but are afraid to askUser-10887637379381104900 - So you want to raise seed capitalFred Wilson, AVC - Financing options for startups, Financing options: convertible debt (likely way you will raise your first round of angel/seed money)Ryan Roberts, Startup Lawyer - How convertile debt works, What type of entity should I form, What does a series A term sheet look likeMartin Kleppmann - Valuation caps on convertible notes explained with graphsOrrick - Startup toolkitBrad Feld, Foundry Group (venture capital firm) - Term sheet series wrap upHiringBabak Nivi, Venture Hacks - What does an employee offer letter look like, Questions recruits might ask Part I, Part IIRobert Scoble, Quora - How to avoid hiring the wrong people for your startupElad Gil, Elad blog - Hiring for cultural fitBlogs by entrepreneurs:Jason Goldberg - BetashopDanielle Morrill - Danielle Morrill’s blogMarco Arment - Marco.orgBen Milne - Ben Milne’s blogKate Kendall - Kate Kendall’s blogGuy Kawasaki - How to change the worldSeth Godin - Seth Godin’s blogSriram Krishnan - Sriram Krishnan’s blogPenelope Trunk - Penelope Trunk’s blogScott Adams - Dilbert blogNeil Patel - Quick SproutEric Ries - Startup Lessons LearnedSteve Blank - Steve Blank’s blogDharmesh Shah - OnStartupsQuora - Other startup founder blogsBlogs by VCs:Brad Feld (Foundry Group) - FeldThoughtsFred Wilson (Union Square Ventures) - AVCDave McClure (500 Startups) - Master of 500 hatsPaul Graham (Y Combinator +) - Paul Graham EssaysDavid Lee (SV Angel) - dasleeUser-10887637379381104900 (Andreessen Horowitz) - Chris Dixon’s blogJeff Bussgang (Flybridge Capital Partners) - Seeing Both SidesBen Horowitz (Andreessen Horowitz) - Ben’s blogJosh Kopelman (First Round Capital) - Redeye VCMike Hirshland (Resolute.VC, formerly Polaris Ventures) - VCMike’s BlogDavid Cowan (Bessemer Venture Partners) - Who has time for thisJalak Jobanputra (FuturePerfect Ventures) - The barefoot VCHoward Morgan (First Round Capital) - Way too ealryGreg Gottesman (Madrona Venture Partners) - Stark Raving VCDavid Skok (Matrix Partners) - For entrepreneursMark Suster (GRP Partners) - Both Sides of the TableOther blogsJared O'Toole and Matt Wilson - Under 30 CEOAnita Campbell - Small Business TrendsAndrew Chen - Andrew Chen’s blogCarson McComas, Work Happy blog for entrepreneursYoung Entrepreneur BlogHarvard Business Review Blog NetworkBusiness PunditQuora entrepreneurs to follow (there are a lot of ‘must follow’ lists of entrepreneurs on Quora, of which many aren’t very active. These people are)Wikipedia, Jimmy WalesCraigslist, Craig NewmarkBlippy and Adbrite, Philip KaplanVontu & Pipewise, Michael WolfeQuora & Facebook, Adam D'AngeloFriendster, Jonathan AbramsInstagram, Kevin SystromFoursquare, Dennis CrowleyPath, Dave Morin500 Startups, Dave McClureFacebook, Dustin MoskovitzMahalo, LAUNCH, & Weblogs, Jason CalacanisPayPal, David SacksEchoSign, Jason M. LemkinWavii, Adrian AounOther people’s listsRyan Spoon, Polaris Ventures - list of Quora threads for startupsOther resources:SBA (U.S. Small Business Administration)StartupNation (Source for Small Business Advice)Notes: I tried to use mostly plain-speak when writing this. There are a lot of opinions on vocabulary and the definition of business models, business plans, etc., so if you’re hung up on those details write your thoughts in the comments, but keep in mind that the nuances are less important than the spirit of applying some rigor to picking an idea.

The French tanks in WWII were some of the best in the world. Why did they lose the battle for France?

The popular notion concerning thew fall of France and the Low countries is a myth. The western Allies not only had more tanks than the Germans but also they processed better ones. So why did Germany Prevail? We look at the German tactics and the quality of the machines being used by both sides.The German tanks.The Panzer I(The Panzer I Aus A at El Godoso Museum of Armoured Vehicles in Spain. In the background can be seen an Italian CV 33. The Panzer I being armed with two 7.72-mm machine-guns was very unsuited for combat with British and French tanks in May 1940. )The first of the German panzers to be deployed in France was the tiny Panzer I, this was a small wo-manned vehicle armed only with two 7.72-mm MG 13 machine-guns. They first saw action during the Spanish Civil War. The first batch of Panzer 1s arrived in Spain under the command of Lieutenant-Colonel Wilhelm Ritter von Thoma in Gruppe Thoma (11th September 1891 – April 30th 1948) (Also known as battle gruppe Drohne) where they met with mixed fortunes. They proved to be no match for the Soviet T-26s but through poor leadership and tactical deployment on the part of the communists, the Nationalists were able to prevail. Although the Panzer 1 saw action in almost every major Nationalist campaign, Franco’s forces to use more and more captured T-26s to offset their inferiority of armour protection of the Panzer I and the Italian tanks that they possessed. At one stage, von Thomas offered 500 pesetas for each T-26 captured. Although the little German tanks could knock out the Soviet built machines at close range by using armour piecing 7.92-mm bullets, the Republican T-26s began to engage at ranges that left them immune to the machine-guns of the Panzer Is.The decision to upgrade the Panzer I was given on the 8th August 1937 when Major General Pallsar received a note from Generalissimo Francisco Franco, which spoke of a need for a Panzer I equipped with a 2—millimetre gun instead of just two machine-guns. The piece chosen for the modification was to be the Italian Breda 1935. Due to the simplicity of its design when compared to its competitors like the German Flak 30 this coupled with the fact that the Italian weapon could piece 40 millimetres of armour at a range of 250 metres (1.57 in at 275 yards) which was more than enough to punch through the frontal armour of a T-26. The first prototypes were built by September 1937 and after testing an order was placed but only four were completed as it was thought that a sufficient number of T-26s had been captured to not warrant the expense of further production. In any case, the Breda armed Panzer Is was not well liked by the German crews who felt that the unprotected gap in the turret, designed to allow the tank commander to aim was found to be a dangerous weak spot.The next deployment of the Panzer I before the French campaign was during the invasion of Poland, though it was used in Czechoslovakia it saw no combat as the country was overrun without resistance.The Panzer I proved to be the most vulnerable of all the German tanks used in Poland to anti-tanks guns, it was found that the handling of the German armoured forces during the campaign left must to be desired. Some of the tanks were used in Operation Weseruburg, the invasion of Denmark and Norway where it saw limited use. Yet despite its total obsolescence it was still in front line use during the invasion of France and the Low Countries where it was roughly handled.Panzer II(A Panzer II seen at the Belgrade Military Museum in Serbia. This machine was a marked improvement over the Panzer I but was still inferior to many of the British and French designs. )The Panzer II had a crew of three and was armed with a 2 cm Kwk 30 Ausf gun and one 7.92 machine-gun 34 and was produced from 1935 to 1943. It was originally intended to serve as a stopgap machine, only intended to serve until more advanced tanks were ready. But die to the pressure of war; the Panzer II remained in production until 1943. Though it was a marked improvement over the earlier Panzer I, it was still totally outclassed by the French and British machines. Yet, the Panzer II was the most numerous German tank used in the Low Countries and France. Many were later converted into self-propelled anti-tank guns.Panzer 35 (T)(The Czech designed Lehky (Light) tank vzor (model) 35, known as the Lt vz. 35 or LT-35. In German service, it was known as the Panzerkampfwagen 35 (T) usually shorted to Panzer 35 (T). It was a good sound design when used as a light tank but when pitted against enemy tanks it often came off worst. This particular can be seen in Serbia’s Belgrade’s Military Museum.)In spite of Nazi propaganda, Germany was far from ready for war in September 1939. The industry was not working to full capacity and many of the panzer divisions were under strength. When the Germans took, over Czechoslovakia, they took over the substantial armaments industry in that country and they were able to keep these factories producing arms for the Axis powers right up until the moment that they were overrun by the advancing Soviets during the last months of World War Two. The panzer 35 (T) known as the LY vz. 35 (Lehky {Light}) tank vzor (model) 35 was used in large numbers by the Germans in France, though it was a useful reconnaissance vehicle it mostly came off worst when it encountered the heavier British and French tanks such as the Matildas and Char B Is. The tank was supplied to Germany’s allies, Romania, Slovakia, Bulgaria, and Hungary. It was armed with a 3.7 cm Kwk 34 (T) gun and two 7.92-mm MG 37 9 t 0 machine-guns. The ‘T’ in the German designation stood for ‘Tschechisch,’ the Czech word for German. During the French campaign, Panzer 35 (Ts) equipped the 6th Panzer Division.Panzer 38 (T)(Czechoslovak built LTP 38 (T) at the Real Felipe fortress in Peru. Several of these tanks were used by Peru in Peru’s war against Ecuador in 1941. )The Panzer 38 (T) also originated from Czechoslovakia were it was known as the LT vz 38. it was also supplied to such countries as Sweden and Peru. A handy tank when used to support infantry attacks or in the reconnaissance but it was inadequately armed when it came to dealing with other tanks. The machine was armed with a 3.7-cm Kwk 38 (T) L/47.8 gun and two 7.92-mm ZB-53 (MG 37 (T) machine-guns. The Panzer 38 had a crew of four and could achieve a speed of 26.1 mph, (42 km/h) with production running from 1939 to 1942, 1414 were produced. The tank equipped the 7th and 8th Panzer Divisions during campaigned in west.Panzer III.(The Panzer III was a good sound design; armed with a useful 3.7-cm Kwk 36 gun it was capable of holding its own against most Allied tanks. However, the Panzer III was only available in small numbers. This one can be seen at the US Army Ordinance Museum at Aberdeen, Maryland.)The Panzer III, was one of the best medium tanks available to the Germans in 1940. However, only a few hundred Ausf As and Ausf Fs were equipping the panzer divisions during the Polish and French campaigns. These tanks were mostly armed with the 3.7-cm Kwk 36 gun and three, 7.92-mm machine-guns and had a crew 5. The Panzer III outclassed the French R-35s and H-35s but were in turn outclassed by the Somuas and Char B1s. During 1939 it was decide to go ahead with a 50-mm armed model and this entered production in 1940 but few, if any were ready for operation Case yellow, the attack on the Low Countries and France.Panzer IV.(Panzer IV Ausf F, armed with a short barrelled 7.5-cm, only 278 of these fine tanks were ready for the attack on the west. )Undoubtedly, the best of all the German tanks used in France and the Low Countries, the Panzer IV was the only German tank to remain in production throughout the Second World war., being modified countless times. The tank was originally designed as an infantry support tank and was not intended to fight it out with enemy armour, that job was supposed to be undertaken by the lighter Panzer III but the Panzer Iv proved to be an excellent tank killer in its own right and it would become the mainstay of the German armoured forces throughout the war. Even with the introduction of the Tiger in 1942 and the Panther in 1943, the Panzer IV remained the most wildly used of the German tanks. Over 8’800, Panzer IVs were built but in 1940, only 278 Panzer IVs were available for the French campaign. The vehicle was armed with a short barrelled 7.5cm (2.98-inch) Kwk 371?24 gun and two 7.92-mm MG 34 machine-guns and it had a crew of 5. by use of tactical radios and superior tactics the German panzers were able to outmanoeuvre ad defeat the French and British armour, however the Panzer IVs, armed with the short barrelled 75s found it difficult to tackle the more heavily armoured French Somua and Char B Is and British Matildas. Later in the war, the Panzer IV would be up gunned to a long barrelled 75.The French Tanks.The Hotchkiss H-35 and H-39 light tanks.(A French H-35 as seen in the Musee des Blindes in Samur France. A useful tank but poor tactical doctrine led to it performing badly during the fighting in France, though it did hurt the Germans on a few occasions. )The Hotchkiss H-35 and H-39 light tanks were small vehicles, weighing around 12 tonnes , the H-35 was armed with a 37-mm SA 18 main gun nd a 7.5-mm Reibel machine-gun. It was designed to be a light, heavily armoured support tank, though it was rather slow and proved difficult to steer, instead it was adopted by the French cavalry. the H-39 differed from the H-35 by having a 120 rather than a 75-hp (89,5 rather than 56-KW) engine and could be recognised by the raised rear-decking which on the H-35s was almost flat, whilst on the H-39s it was sloped, offering greater resistance to anti-tank weapons. In May 1940, the H-35 and H-39 saw action against the invading Germans were, on occasions they gave a good account of themselves. However, the French had their tanks scattered along the line in penny assigned to support the infantry instead of being used to destroy enemy armour as the Germans were doing with their armoured forces. Though on occasions, they were able to hurt the Germans but only in small-scale actions. The Germans considered the types good enough for some of their own needs, most being used in occupation duties. Some had their turrets removed and were fitted with German anti-tank guns. By 1940, some 1’200 tanks of both types had been built.Renault R 35.(The R-39 and R 35 light tanks preserved at the Musee des Blindes at Samur in France.)This tank could trace its origins back to the classic design originally referred to as the Renault ZM in in answer to the French army’s request in 1934 for an infantry support tank to supplement and eventually replace the FT-17, which dated back to World War 1. The tank was armed with a 37 L/21 SA 18 main gun and a Reibel 7.5cm machine-gun. For its day the tank was a sound enough design, it was typical of French tanks of the period. During the German attack, they proved to be no match for the Panzers like with the H-35s and H-39s, they were used in penny packets to support the infantry, thus the Germans could pick them off piecemeal. The R-35s gun was unable to piece the armour of even the lightest German and Czechoslovak designed tanks. The Germans captured large numbers that were used mainly garrison on occupation duties. Some were stripped of their turrets and used as mobile artillery. At the time of the German invasion the R 35 equipped 21 battalions, each fielding 45 vehicles, amounting to 945 R-35s in French front line service.SOMUA S-35 medium tank.((The French SOMUA S-35 as seen at the Aberdeen proving grounds in Maryland USA. It was an effective tank but was handicapped by its one-man turret and poor tactical deployment.)This was a cavalry tank, built from 1936 until 1940 for equipping the armoured divisions of the cavalry, it was, for a medium tank, heavily armoured, and well armed, being fitted with a 47-mm SA 35 7.5-mm Mitrailleuse mle, 1931 machine-gun and was constructed from well-sloped armour, in mainly cast sections., that however made it expensive to manufacture and maintain.During operation Case Yellow, the SOMUA S-35 proved itself to be a tactfully effective machine but this was compromised by the tactical mistakes of the Allied armies abnd by the fact that the tank had only a man-man turret, meaning that the operator had to many jobs to do, commanding the tank, alongside loading, aiming and firing the main gun, this was a problem that effected all French tanks of World War Two.In May 1940, the tank units of France where given the difficult manoeuvre of carrying out a rapid advance into Belgium and the Netherlands followed by a holding action to allow the following infantry to prepare positions and dig in the divisions. The 2nd and 3rdDLMS (Division Legere Mecanique) were gathered in the Gemblous Gap between Louvain and Namur, an area where there were no natural obstacles to slow a German advance and to favour a defender. The tanks were forced to spread out to hold the area against 3rd and 4th Panzer Divisions.The resulting tank battle, known as the Battle of Hannut, was up to that date the largest tank on tank engagement known and even today, its still ranks as one of the largest tank battles in history with over 1’700 fighting vehicles taken part. During the fighting, the S-35s gave a good account of themselves of themselves, proving to be superior to anything the Germans had but the French authorities were reluctant to deploy them, as they mistakenly believed the Gap to be the area of maximum German effect so they kept some tanks back to meet any further advances in the sector. After the Armistice the Germans allowed some S-35s to be sent to West Africa to bolster the Vichy French forces there, the Germans also took numerous S-35s into their own service and passed numbers onto their allies.Char B-1(Char B-1. heavy tanks being examined by German soldiers after they had been disabled by their French crews, France, May 1940. The soldiers standing nearby clearly illustrate the size of these huge machines. )The Char B-1 was designed to be a specialised heavy breakthrough tank. The original concept was for a self-propped gun with a 75-mm in the hull, later a 47-mm gun was located in a turret was added to allow the machine to function as a ‘Char de Bataille,’ or main battle-tank capable of engaging enemy armour, equipping the armoured divisions of the infantry arm. The Germans had a lot of respect for the Char B-1, for the 75-mm could smash through the frontal armour of even the Panzer IV. However, the Char B-1 was a complex design that required a great deal of maintenance, many simply broke down whilst on the road to battle and were left by the Germans to take over undamaged and the usual one man turret, such a feature on French tanks was a considerable hindrance, as the gunner had not only to command the tank but load, aim and fire the gun. German tanks at this time had two or three men in the turret, therefore increasing the rate of fire by as much as four or five times that of the French tanks. It was also slow, just 15-mph (25 Kph) as compared to the German Panzer IV which had a speed of 24 mph (40 Kph) and because of its size it used up a lot of fuel. The fuel usage meant that the B-1 had an operating time of only three to five hours. The French had planned to tracked fuel tankers capable of following the tanks and of refuelling them, however by the time of the German attack there were not enough of these tankers available. After the fall of France, the Germans took the Char B-1 into their own service, adapting some into mobile flame-throwers or mobile artillery.The British tanks.Vickers light tank.(Vickers Mk VIA in the Royal Australian Corps Tank Museum, Puckapunal, Victoria, Australia. This is one of 10 vehicles purchased by Australia in 1936)This tank was a small vehicle with a crew of three, armed with two machine-guns, one being a 50-inch Vickers as the main and another 303-inch Vickers as secondary. In the Mk VIC, the armament consisted of one 15-mm Besa machine-gun 7.92-mm Besa machine gun.The Vickers light tank was wildly used by the British army; the vehicle saw a lot of action, taking part in almost every major battle involving Britain during the early years of World War Two against Germany and Japan. It was a useful reconnaissance and infantry support vehicle, its main drawback was that its thin army could be penetrated even by small calibre armour piercing projectiles and accordingly they suffered heavy losses in France.Cruiser Mk 1 (A9)(Mark 1 Cruiser (A9) tank of the British Army.)The mark 1 cruiser (A9) entered service with the British Army in 1939. It proved to be an effective tank during the early battles of the war, it had a useful armament of a QF (Quick-firing) 2-pdr gun, and three 303-inch Vickers machine-guns. The machine proved that it could hold its own against the early panzers. Its shortcoming was its armour thickness, just 6-14-mm that made it an easy kill for German and Italian anti-tank guns. The mechanical liability and poor tactical doctrine in its deployment was also another disadvantage for the tank crews. Many were abandoned at Dunkirk.Cruiser Mk II (A10)(Cruiser Mk II (A10) on an exercise in Britain. Many were abandoned in France at Dunkirk. )This was a well-armed tank, having the QF 2-pdr and two Vickers (Some variants had Besa) machine-guns. However, like the A-9s, the A-10s were poorly armoured. A number were sent to France with the British Expeditionary force (BEF) were the 2 pdrs gave a good account of themselves. Most were either destroyed by their crews or abandoned in France after Dunkirk.Cruiser Mk III.(The British Cruiser Mk III )Like the Mk Is and IIs, the Cruiser Mk III was armed with a QF 2-pdr gun and a Vickers 303 Vickers machine-gun. Like its predecessors, it was under armoured and mechanically unreliable though it was fast.Infantry Tank Mk I and II Matilda.(Matilda I )(Matilda II as seen in North Africa displaying a captured Italian flag. )The Mk I Matilda fought in France but being armoured with a single 304 machine-gun its usefulness was extremely limited. The Mk II was a much more effective vehicle, being armed with the then standard British tank gun, the QF 2-pdr, it lacked a machine-gun however, yet due to the thickness of its armour 20 to 78 mm (0.787 to 3.07 inches) thick it was largely immune to German anti-tank guns. Both tanks took part in the fighting around Arras.The Campaign.(Char B1 during the British and French advance on Abbeville. Painting by Giuseppe Rava.)“The truth is that our classic conception of the conduct of war has come up against a new conception. At the basis of this...there is not only the massive use of heavy armoured divisions or cooperation between them and airplanes, but the creation of disorder in the enemy's rear by means of parachute raids.”(French president of the Ministerial Council, Reynaud)During the campaign in the West, the armoured forces were stacked up thus. The French, British, Belgian, and Dutch could field an approximate 3’383 tanks as compared to the 2’445 available to the Germans. So why were the Germans so successful in the West? The answer lies with the new method of war known as Blitzkrieg.The type of warfare that has come to be known as Blitzkrieg (Lightning War) had a short life span, lasting from 1939 to 1942. However, during those years its impart was huge. By a series of lightning campaigns that led Germany to victory after victory the Third Reich was able to demonstrate to the world that it was a master in this new field of warfare. After the First World war most countries relegated their tanks to a support their tanks to a support role, giving coving fire to infantry assaults was seen as their primary function but a few theorists had visualised a new rule for the tank in the future of war. Among these was Captain Basil Liddell Hart (31 October 1895 – 29th January 1970) and generals J. F. C. Fuller (1st September 1878 – 10th February 1966) Gliffard Martel (10th October 1889 – 3rd September 1958) Charles Broad (1882 -1976) and George Lindsay (3rd July 1880 – 28th November 1956) whom had argued for an armoured force. By use of persuasion and constant lobbying managed to get a British Experimental Mechanised Force established. However, the experiment did not survive long, due to mostly financial restraints that forced the project to soon be disbanded. However, the Germans had been watching and making notes of the outfits performance, one of the watching Germans was Heinz Guderian (17th June 1888 – 14th May 1954) who followed Liddell hart’s thinking, that future armoured forces thinking, that future armoured forces would have to include a balance of tanks, artillery, pioneers and mechanized infantry and who would become one of Germany’s best generals of the Second world war and one of the few who had the courage to stand up to Hitler.“In this year (1929) I became convinced that tanks working on their own or in conjunction with infantry could never achieve decisive importance. My historical studies; the exercise, carried out in England and our own experience with mock ups and persuaded me that the tanks would never be able to produce their full effect until weapons whose they most inevitably rely were brought up to their standard of speed and of cross-country performance. In such formations of all arms, the tanks must play their primary role, the other weapons being subordinated to the requirements of the armour. It would be wrong to include tanks in infantry divisions: what were needed were armoured divisions which would include all the supporting arms needed to fight with full effect.”(Heinz Guderian)However, whereas Liddel was spending time trying to convince an audience that barely listened to him, Guderian was given the opportunity to put his ideas into practice, when he was given the go-ahead to form Germany’s first post war tank formations.“In Germany the elements of modern warfare jad crystallized into a doctrine before the war – thanks mainly to the work of General Guderian and had found practical expression in the organization and training or armoured formations.”(General Erwin Rommel)The idea was being implemented at a time when other armies were still forcing their tanks to move with the speed of the marching infantry. At first, the Germans simply mounted their infantry in lorries; only later did they mount them in specialized half-tracks.(The German attack (Operation Case Yellow) was a copy of the plans used in World War Two. Too outflank the French defences on the Franco-German border (in world War Two, this was the formidable Maginot line) and to strike through Belgium, Luxembourg and the Netherlands, with powerful armoured thrusts through the Ardennes, believed by the Allies to be impenetrable to tanks)However the supporters of the new armoured formations in Germany did not have it all their own way during the years leading up to 1939 for there were many in the country who still adhered to the well-established technique of their forbearers, these being massed infantry assaults in spite of the painful lessons learned during the 1914 -18 War. At this time, German tanks were small and lightly armed and armoured but Hitler was persuaded and he throw his support behind the new formations.“In order to overcome the first of these disadvantages, the one related to unsupported armour, the protagonists of mechanization - General Fuller, Martel, Liddell Hart and others - advocated reinforcing the all tank units by infantry and artillery mounted on permanently assigned armoured vehicles, together with mechanized engineers, and signals, support and supply elements.”(Heinz Guderian)Using these new formations the German army was able to establish an overwhelming force of armour and mobile infantry at a point of their choosing. The point would be selected by reconnaissance troops, not on horses, as they would have been a few years back but on motorcycles and armoured cars to provide support when and where required. The use of the radio was also another novelty employed by the Germans; this was a new thing in 1940 once the area of attack had been chosen the tanks would then mass together. next they would advance under a hail of artillery fire and dive bombers (Mostly Junkers Ju 87 Stukas and a few older Henschel 123 bi-planes) accompanied by a mechanized infantry on the flanks and in the enemies rear. The mechanized infantry would have the job to clear the way through strong-points and to stop any enemy movement on the German lines of communication as the wedges of tanks moved forward. Further support was to be provided by the tanks own armament once the armament once the armour had moved on through the breakthrough point and swarms of Stuka dive-bombers to crush any remaining strong-points of resistance. Assault pioneers would travel with the tanks and mechanized infantry and all the time the tanks drove deeper into the enemy’s territory, fanning out to the left and right, spreading out far and wide in the foe’s rear. in so doing they cut up the enemy formations piecemeal.In Poland, the Blitzkrieg was textbook, but the Poles had put up a gallant resistance yet it had not been enough. What the campaign had showed the Germans was its short comings in the Panzer Is and IIs, these would be eked out by large numbers of Czech designs. The shortage of mechanized infantry was also often felt and too much of the artillery was still horse-drawn, leading to vital delays in its employment.“(a) A delaying position along the Albert Canal from Antwerp to Liège and the Meuse from Liège to Namur, which was to be held long enough to allow French and British troops to occupy the line Antwerp–Namur–Givet. It was anticipated that the forces of the guarantor Powers would be in action on the third day of an invasion.(b) Withdrawal to the Antwerp–Namur position.(c) The Belgian Army was to hold the sector–excluding Leuven, but including Antwerp–as part of the main Allied defensive position”(Belgian plan for the defence of their country)In the West, the campaign had lasted from May into June and saw the defeat of Germany’s ancient foe. Caught by surprise by the German attack through the Ardennes and weakened by years of ineffective governments and a defensive attitude the French forces had crumpled. They had been relaying on the Maginot line to blunt any German thrust but the mains lines of fortifications halted at the Luxemburg border. The Belgians and British too had been no match for the armoured thrusts, Belgium lacked few modern tanks (Apart from the T-13 tank destroyer, but only 220 of these were ready by the time of the German attack, though they had a powerful 47-mm Model 1931 anti-tank gun they were thinly armoured) and the British were still fighting a war along 1914 lines. Though at places, the British and French armour fought well and inflicted heavy casualties on the Germans, such as at Hannut and arras, it was not enough.(Belgian T-13 Tank Destroyers in German hands {Clearly an SS unit}. The T-13 was in effect an ambush vehicle and would be better described as a tank destroyer. It had a 47-mm model 1931 main gun but it was handicapped by thin armour and lack of numbers, only 220 being ready for use by the time of the German attack. However, where the terrain suited an ambush vehicle of this type the T-13 did hurt the Germans on a number of occasions. )In many places the Belgians put up a stubborn, courageous resistance, in a series of desperate rear-guard actions that slowed down the German advance, just like the Belgians had done in 1914 when the phase was termed ‘brave little Belgium.’ Like in 1914, the French and British had come to Belgium’s aid the defenders were hoping the same would happen again and with the help of the allies, Belgium would be saved.“SoldiersThe Belgian Army, brutally assailed by an unparalleled surprise attack, grappling with forces that are better equipped and have the advantage of a formidable air force, has for three days carried out difficult operations, the success of which is of the utmost importance to the general conduct of the battle and to the result of war.These operations require from all of us – officers and men – exceptional efforts, sustained day and night, despite a moral tension tested to its limits by the sight of the devastation wrought by a pitiless invader. However severe the trial may be, you will come through it gallantly.Our position improves with every hour; our ranks are closing up. In the critical days that are ahead of us, you will summon up all your energies, you will make every sacrifice, to stem the invasion.Just as they did in 1914 on the Yser, so now the French and British troops are counting on you: the safety and honour of the country are in your hands.”(King Leopold of the Belgians)As we are concentrating on the Blitzkrieg and the armoured warfare and the types of tanks used in this article we will not be covering the events of the Low Countries and French campaign as that is to big for the scope of this article. Instead, we will look at two battles that witnessed the largest clash of armour during the campaign, these battles being the battles of Hannut and Arras. First we look at Hannut.(French infantry and H-35s tanks try to stop the advance of the German Blitzkrieg. Painting by Peter Dennis.)The Battle of Hannut.General Gaston Billotte (10th February 1875 -23 May 1940) had asked General Prioux (11th April 1879 – 16th June 1953) to move his forces further east to bolster up the Belgian Army. However, Prioux was unimpressed by the Belgian defence and he was weary about gathering his forces in the open under a Luftwaffe that now dominated the skies. He preferred to the deploy his dragoons and artillery further back in a line of strong points, with his tanks waiting behind, ready to counter-attack in case of any German breakthrough. Billotte gave in to Prioux’s reasoning but expressed a need for haste, adding that the First Army Group would advance by day as well as by night, despite the threat of enemy aircraft in order to reach, Gembloux as soon as possible, hoping to get there before the Germans. All that General Prioux needed do was delay the Panzers until the morning of the 14th May.The 23rd Fighter Group (Fighter Groupment 23) received an order from General Billotte on 11: 00 A. M. on the 11th May to cover the movements of the French 1st Army and its neighbouring formations. However many of their aircraft were obsolete types and were no match for the Luftwaffe’s Messerschmitt 109s and what aircraft there was, were badly needed to escort the bombers, attacking Erich Hoepner’s (14th September 1886 – 8th August 1944, hanged for his role in the July plot on Hitler’s life) panzer columns. On the ground, Prioux’s reconnaissance units were forced back towards the main body of French cavalry, which were located in the strongpoints along a 24-mile (40 kilometres) front, supported by the 2nd DLM from Huy on the Meuse and north, then westward along the banks of the Mehaigne Stream. The area in front of Crehen to Orp and then northward to Tirelemont and he Petite Cette was occupied by the 3rd DLM. The battleground here was made up of a plateau with occasional woods, an extensive road network, and occasional farms. The Mehaigne and the Petite Gette were small streams with many crossing points. The ridge running along from Hannut through Crehen and Merdrop was the key feature to the battlefield.On the 12th May, the 4th Panzer Division was racing to seize its first objective, the Belgian town of Hannut, arriving in the area that morning. Noticing that his tanks were short of fuel, Major-General Stever requested an airdrop of fuel, thinking that he was facing just one battalion of tanks decided to engage, as his tanks moved forward they encountered 25 French tanks and destroyed 7 of them without lose.(Morane-Saulnier M. S 406. The French had large numbers of these fighters available in May 1940, however by that time they were regarded as obsolete and they were easy meat for the German fighters, though in the hands of a skilled pilot they could and did acquit themselves well. One, pilot Robert Williame; shot down three me 109s in 15 seconds!)Allied air units now concentrated on the attacking German tanks, the British sent over 38 bombers and lost 22 of them. The French also sent in their bombers. One attack, consisting of 18 Breguet 693s on their first flight lost 18 aircraft. The Germans had 85 Messerschmitt 109s of Jagdgeshwader 27 (Fighter Wing 27) flew 340 sorties, claiming 6 Allied aircraft for the lose of just four of their own fighters. The German flak guns claimed a further 25 Allied aircraft. These attacks, though gallant were in vain, for that afternoon General Alphonse Georges (15th August 1875 – 24th April 1951) ordered that all priority was to be to his threatened sector of the front to the South of the Seden Sector, however this decision left Prioux’s cavalry formations devoid of most of their air cover.The tanks of Johann Stever’s 35thRegiment moving on Hannut ran into fierce resistance. The French armour was deployed under cover but they soon counter-attacked, doing so several times during the battle. Then, after the most desperate fighting, the French yielded Hannut without any further resistance, sparing the town the bitter street-by-street fighting that was visited upon other towns in Belgium and France. The Germans, however, unaware of the French retreat then attempted to out flank the town, 50 of their tanks ran into strongpoints at Crehen The French had on hand 21 Hotchkiss tanks of the nd Cuirassiers that was that was supported by parts of the 76th Artillery Regiment and the fire from the nearby DLM. The Hotchkiss bore the burnt of the defence through the dragoons also suffered heavy casualties, fighting on bravely, despite the loss of their commander they battled on. They fired from hull- down from prepared positions, the Germans used their medium tanks to try and pin down the French armour whilst sending their light tanks around thew French flanks. As the French tanks, bravely battled on the main French force retreated to Merdrop. The Germans claim to have to destroyed nine SOMUA S-35s fore the loss of five of their own. The surrounded Cuirassiers were by an armoured counter-attack launched by the 2nd DLM, SOMUA S-35s breached the German line and the French unit broke but they suffered heavy loses in the fighting. The right flank of the 4th Panzer division was now vulnerable.(Junkers JU 87 Stukas seen over Poland during the German 1939 invasion. The Stuka became the symbol of the Blitzkrieg, and was known as the ‘flying artillery.’ In France and the Low countries, it proved to be just as deadly effective as it was in Poland. )The Germans, coming from their staging area at Oreye, 6 miles (11 kilometres) to the northeast of Hannut sent the 3rd Panzer up to counter the supposed threat. Meanwhile a Luftwaffe reconnaissance aircraft reported having seen French armour at Orp and motorized units at Gembloux. Hoepner now ordered the 3rd panzer Division, under the command of Horst Stumpff, (20h November 1887 – 25th November 1958) to attack the French forces in an attempt to prevent the enemy from organizing an effective defence.The Germans now advanced under a heavy umbrella of artillery fire and air attacks heading for the French strongpoint of Thisnes, whilst they simply ignored a French counter-attack to their rear. The French fought back with desperate courage, barricading the streets of Thisnes and bringing up their artillery, they poured a hurricane of fire onto the advancing Germans. The Germans discovered to their cost that the defender’s fire was heavier than expected and the tank attack was stopped. Meanwhile the rest of the Germans outflanked the French positions to their right, through poor visibility hampered their movement. The Germans eventually made it to the western edge of the town only to come under a deluge of fire from the nearby French strongpoint at Wansin which to continue to increase in force. The Germans were next ordered to regroup their tanks and riflemen and to secure a perimeter but before this could be done, the French counter-attacked with their Soumas, destroying the German regimental commander’s tank. After fierce fighting the French and German tanks pulled back into the darkness, stumbling across each other occasionally. The French retired to Merdrop and the Germans pulled back their tanks to Hannut, the result of the days fighting was a stalemate. The French may well have been feeling confident at this stage, It looked like the German invasion of Belgium could be halted and even turned back, but it was not to be.The power of the French Anti-tank guns proved to be deadly, even the little 25-mm had little trouble stopping the Panzer Is. Though the Panzer II fared better their losses were still alarmingly high. The Germans became increasingly desperate and frustrated in their attempts to halt the heavily armoured French tanks. There is one account of a German jumping into a Hotchkiss H-35Armed with nothing more than a hammer, possibly with the intention of smashing the periscopes and blinding the crew but the man was seen to fall of the vehicle and to be crushed under the tank’s tracks. By the evening, the fields around Hannut were littered with wrecked and smoking tanks, most of them being German Panzer Is and IIs.(Though the German conquest of the Netherlands was rapid the Dutch did put up a spirited resistance and its tiny air force did have a number of aerial victories. Here we see two Dutch fokker XxIs chasing after an Me 109. Painting by Stan Hajek.)At 20’00 hours Stever addressed Hoepner, telling him that he believed that there was one French mechanised division to his front and another to his rear on he Mehaigne River. Alarmed both German generals agreed to mount a major offensive on the morrow.The Germans attack that night, aggressively probing the French positions. However, the Wansin strongpoint gallantly resisted all night against German riflemen, only withdrawing early in the morning of the 13th May, though the front of the 3rd DLM remained together, the troops holding their positions at Tienen, Jandrenouille, and Merdrop. The 2nd DLM also managed to hold their sector of the front in spite of heavy German pressure and mounted casualties. The only breach of the Allied defence came at Winson at the Junction of the 2nd and 3rd DLM. The Germans had failed to take their objectives and the French armour had won this first round.To the south of the battle area, the Germans began their assault across the Meuse River., their primary objective. To the north, General Hoepner sent in spoiling attacks, trying to tie the French 1st Army down so that it could send reinforcements to the Meuse crossing area. He believed that the newly arrived, 4th Panzer Division had only weak enemy forces before it but the 4thPanzer Division faced strong French mechanised forces that opposed it in the area of Thisnes and Hannut --- which the French had in fact evacuated --- and possibly a second French armoured division south of Mehaigne. Late in the morning, the German air force bombed and strafed the French positions, softening them up. Particularly fearsome where the fearsome Junkers Ju 87s, more commonly known as the ‘Stuka’ fitted with a siren that howled like a banshee as they dived, these dive bombers had a serious moralising effects on its victims. The 3rd panzer division now advanced on Thorembais while the 4th moved parallel to Perwez against what was believed to be a strong Belgian anti-tank screen. The XVI Army Corps now fell back on the 6th Army’s original plan which to push on to Gembloux.The Germans sent in waves of infantry, supported by waves of armoured cars, the French dug their heels in and would not budge; the fighting became desperate, until the Germans were finally repulsed by the 12th Cuirassiers and to the south the 3rd Battalion of the 11th Dragoons. The battle raged on, the French fought back hard, putting up a stubborn resistance, yet the German 18th Infantry still managed to penetrate their lines. The French now planned to counter-attack with tanks belonging to the 1st Cuirassiers detachment to try and restore the lines but these plans were abandoned because of events east of the 3rd DLM’s front, instead the French command ordered a retreat. Again, the fighting was desperate and bitter, the French and Belgians escaped as the Germans were too slow following up their success. 30 SOMUA S-35s of the 2nd DLM were despatched from the Mehaigne to the line of Merdrop-Crehen to relieve the pressure on the 3rd DLM. The French were thrown back with heavy lose by a thick belt of enemy tanks and anti-tank guns, the battlefield becoming littered with their wrecked and burning machines. General Gabriel Bougrain, commander of the 2nd DLM had sent signals that enemy formations had infiltrated his positions and that he was now being subjected to attacks by armoured cars over the Mehaigne River at Moha and Wanze, just north to Huy. These attacks threatened to cut of the large Belgian garrison located in the town, Bougrain rerouted his armoured forces to give assistance to the Belgians, he received a report from a French reconnaissance aircraft at 11:50 hours of large concentrations of German armour south-east- of Crehen. The 2nd DLM had by this time used up all his reserves and was powerless to intervene.(Top, Belgian Machine-gun section and below a light bomber of the Belgian air force Though the Belgian did have some modern weapons, such as 20 British Hawker Hurricane fighters the vast bulk of the Belgians military equipment was antiquated as is illustrated in these two photographs, showing a World War One Vintage O 8 Machine-gun (Top) and a Fairey Fox light bomber. Though the Belgian resistance was courageous, courage alone was not going to be enough to overcome their lack of modern weapons, especially aircraft)Bougrain’s dragoons and motorised infantry were scattered in groups of isolated strongpoints which left hem vulnerable to inflictration. The Belgians offered Bougrain the use of their III Corps that were retreating through his front in the Liege area but the French general refused the offer. The problem now lay with Prioux’s lack of attention to the defence and concentration doctrine of the French forces that had allowed decentralised command to continue which had damaged the French operation performance, which created problems for the French defence.The German command on the other hand worried about the potential of the 2nd DLM to interfere with its main attack. They now placed forced marching infantry units between its XVI and XXVII Corps and gathered together four units from the 35th 61st and the 269th Infantry Divisions advancing from the direction of Liege, along with air support and some armoured cars. These units attacked and infiltrated through the French forces and strongpoints north of Huy and drew out what little armour the Belgians possessed. This critical German success in tying down the French and Belgian armour with infantry allowed Hoepner to concentrate his panzers against Prioux’s front to the west of Hannut. Had Bougrain gathered his armoured forces for a drive to the north or northwest he may well have caused the Germans some serious problems.The Germans would launch a new assault along a 12 kilometre (7 mile) front, for they now concentrated Hoepner’s forces, consisting of 560 tanks and several rifle battalions who were supported on their right by the 18th infantry Division belong to the IV Corps. The Germans attacked with the 3rd panzer Brigade of the 3rd Panzer Division at 11:30, on the right drove the 5th Panzer Regiment whilst on the left the 6th advanced with the brigade commander moving forward with the regiment. By midday, the panzers were engaged amongst the barricaded and mined the heavy fighting. After 90 minutes, the German tanks managed to push the stubborn French defenders across the stream, with the 5th at Marilles, the 6th at Orp.The 6th Regiment was now ordered by the German command to swing south towards the towns Jondrain and Jondrenouillle, here the terrain was more favourable, and the 6th would be able to give assistance to the 4th Panzer Division. The 6th Regiment battling on the east and west bank of the Petite Gette ran into French armour in the Orp area. They were quickly engaged but were attacked by tanks that are more French; however, the 6th was reinforced and was able to stop the French advance. The Germans regrouped and attacked that afternoon, their 3rd Panzer division on the north facing Marilles and Orp and the 4th Panzer Division facing Thisnes and Merdrop. As the 5th and 6th Panzer regiments, forward they ran into concentration of French armour and a wild, confused tank verse tank melee insured. the Germans had more tanks here and used them on mass, in large armoured wedges whilst the French tanks were grouped together in small penny packets. Hampered by their own one-man turrets in which the operators had too many jobs to do, operating the gun, and commanding the tank the French tanks fired more slowly than the Germans but they bravely battled on. From 15:00 to 15:48 hours the 3rd Panzer Regiment finding it hard pressed, repeatedly sent urgent requests for anti-tank units to be brought up and for the Luftwaffe to deal with the French armour. The 2nd Panzer Battalion of the 5th Panzer Regiment R was practically hard pressed when its flanks were attacked by a superior force of French armour opposite Marilles. The war diary of the 3rd Panzer recorded a fierce 15, minute duel in which the 2nd Battalion fought alone. The 1st Battalion of the 5th Panzer Regiment seeing victory on the left despatched its 1st Battalion back to its right, ending the fight in front of Marilles successfully for the Germans at around 16:00. Whilst, the German infantry secured Orp the Panzer commanders made an urgent request for more 37 mm and 75 mm ammunition, a clear indignation of the nature of the fighting that they had found themselves embroiled in.The next morning, the Germans pounded the French with heavy concentrations of air and artillery bombardments, inflicting serious losses on the strong points manned by the 11th Dragoons whilst German reconnaissance teams consisting of motor cyclists and armoured cars searched for infiltration and crossing points. At about 11:300 hours, the 3rdDLM reported that some 80 Panzers had been seen around Marilles such another 100 at Orp. The dragoons put up a gallant show of defending their positions supported by the Hotchkiss squadron but their resistance began to fall around 11:30 as German numbers and a failing supply of ammunition told.(Two French destroyed SOMUA S-35s and an anti-tank gun destroyed during the fighting at Hannut in Belgium. )The 3rd DLM was now ordered to retreat, as the remaining dragoons withdraw, their Hotchkiss H-35s along with two other Hotchkiss squadrons from the 1st Cuirassiers counter-attacked. The French attack was a success at the beginning; the Germans were pushed back across the stream. However, losses were about even with the French saying that they had destroyed six panzer for the loss of only four of their own tanks. 36 SOMUA S-35 of the 1st Cuirassiers were now despatched by Lieutenant-Colonel De Vernejoul (18889 -1936) with orders to stop the German drive on Jandrain but as the SOMUA rolled forward the Germans attacked them from cover with an equal numbers of panzer and halted the French advance. Some tanks of the 3rd DLM launched raids against the still vulnerable flanks of the 4th Panzers Divisions , some small groups of these broke through but they quickly destroyed by the anti-tanks guns of the 654th Anti-Tank battalion attached to the 4th Panzer Division. Apart from this, the 3rd DLM made no further attempts to halt the drive of the 4th Panzer. During the afternoon of the same day, the 4th Panzer Division a drive for Merdrop and an artillery duel started between the big guns of both sides. The French now pushed their armour into the abandoned town and skilfully changed position causing the Germans to struggle to acquire targets. The panzers went around the town by this left the German infantry unsupported who were forced to give ground before the approaching French tanks. The panzers quickly turned back and clashed with the French out on the open plain. Here once again the superior German tactics overcame the superior French armour. One major advantage the Germans had over the French was that they had radios in their tanks whereas the French did no. Better able to co-ordinate their movements the Germans outmanoeuvred the French repeatedly. By concentrating their tanks together and using them to hit a certain point on mass, the French tanks were defeated. The French infantry tried to infiltrate through the German rear but they were stopped by their German counter-parts.While the battle raged, the 3rd and 4th Panzer Divisions were still advancing on Jandrain. Close to the town, a bitter town melee raged where the Germans reported 400 prisoners and capturing four or five tanks. The French now started a general retreat westward as the Panzers no longer concerned about attacks on their flanks advanced and engaged the reminder of the French forces in the evening. The 3rd Panzer Brigade claimed of knocking out 54 enemy tanks, 36 of these by the 5th Panzer regiment and 18 by its neighbouring unit, the 3rd Panzer regiment while their losses were listed as ‘slight.’ The 6th Panzer regiment for instance reported losing only two tanks, though the Germans did suffer many vehicles disabled but as they secured the battlefield these were later recovered and many were repaired. The next morning the 2nd DLM retreated to the line south of Perwez. The Germans made their move on Perwez on the morning of the 14th May and straight away ran into difficulties; Hoepner’s troops were unable to break through the new French line until the arrival of the 4th Panzer Division which was soon in action in the wooded areas around Perwez with French armour. After some fierce fighting, the French defences were overrun with the help of German infantry. The first French Army had relocated its armoured battalions behind the infantry, instead of, ‘as was German practice in front of the infantry,’ with the infantry being able to use the armour as mobile shields. Spread out and unable to support each other, the French tanks were destroyed piecemeal by a combination of combined German arms. However, the fierce resistance of the 2nd DLM was not entirely in vain, it halted the advance of the 3rd Panzer Division. Once more, there was bitter fighting in which the appearance of French tanks caused a panic in the German command who thought that a major attack was developing when in fact they were rear-guard actions. Both sides lost heavily in armour but as darkness se, the night sky being lit up with the fires of dozens of burning tanks, the 2nd DLM halted its rear-guard actions and the German command regained its composure.The French and Belgians had fought well, often displaying acts of extreme bravery but courage alone had not been enough as for the Germans they had learned a painful lesson. They had discovered dureing the fighting that the Panzer IIIs and Panzer IVs were the only tanks capable of matching the SOMUA in battle, which was generally considered to be the best tank in the west in 1940. However, the Germans had not enough of these later types yet by using better tactics such as combined arms teams, aided by the tank’s radios and the Stukas of the Luftwaffe the Germans were able to overcome the bigger French tanks.The German plan to forestall the French 1st Army at Gembloux despite their victory over the 3rd DLM. Once more, the fighting was heavy, at one stage the fire of the French artillery was so dense that a gas alert was issued. However, Hoepner’s advance onto the Belgian Plain had tied down the Cavalry Corps and part of the French 1st Army, taking their attention away from the German breakthrough at Sedan.On the 15th May French Premier, Paul Reynaud (11th October – 187- 21stSeptember 1966) telephoned Winston Churchill. “We have been defeated,” he said. “We are beaten, we have lost the battle.”Hannut had been the biggest tank battle during the early years of the Second World War, not until the invasion of the Soviet Union on the 22nd June 1941 would, there be bigger clashes of armour.(German General Erich Hoepner, commander of the XVI Corps at Hannut and in the Gembloux offensive.)The Battle of Arras.On the Afternoon of the 21st May, in an attempt to shore up the defences against the approaching German armour the BEF reinforced the town of Arras, (Scene of much fighting in the First World War), the British launched an armoured thrust aimed at closing the gap caused by the breakthrough of the panzers at Peronne and Gambrai. Having learned the lessons from the French at Hannut the British decided to copy the German tactics and use their tanks on mass. The German breakthrough threatened Boulogne and Calais and to cut the British lines of communication. In a desperate attempt to redress the situation, the British 50th Division and the 1st Tank Brigade were moving south of Arras. This was to be the only large-scale attack under taken by the British during the campaign. The attack should have been mounted by two full infantry divisions, consisting of 15’000 men but it was actually carried out with just to Infantry battalions, these were the 6th and 8th battalions of the Durham Light infantry supporting the 4th and 7th Royal Tank Regiments., approximately 2’000 men with 74 tanks. The infantry battalions attacked in two columns. At the beginning, the right column made good progress, capturing a number of prisoners but they soon ran into trouble, encountering German infantry and SS troops backed by air support and they took heavy casualties.The left column enjoyed some initial success being confronted by the infantry detachments of General major Erwin Rommel’s 7th Panzer Division. Among the defending Germans were motorized elements of the SS Totenkopf Regiment, (Later expanded into the SS Division Totenkopf) they were unable to stop the British tanks as their standard 37-mm 1.46-inch) Pak-36/37 anti-tank gun proving virtually useless against the heavily armoured British Matilda tanks. Rommel used some of his armour in local counter-attacks only to discover that the guns of the Panzer IIs and Panzer 38 (t) tanks could not penetrate the Matilda’s armour.“In command of my one remaining Matilda, I followed SHQ. On reaching DUISANS there was the sound of firing from leading tanks and we deployed astride the road. Many German vehicles were burning, troop carriers with infantry were moving West on the road and we engaged them successfully. We were ordered to cross the main road. I followed on towards DAINVILLE: just North of the village we came under spasmodic shellfire, and I remember negotiating the HT wires which had fallen across the road on the Northern outskirts of the village. We passed through the village without opposition, turned left on the main road and then right towards ACHICOURT. Before crossing the railway we came across isolated groups of our own infantry – DLI (Durham Light Infantry) and not the ones we were supposed to work with - and also saw and had a half-hearted battle with what turned out to be French tanks sitting in the open on the high ground 1000 yards west of ACHICOURT. Once the mistake was realised we moved on into the village and met up with some of the 4th, B Sqn of the 7th and Scout Cars of the GHQ Recce Unit (one commanded by Lt Newton Dunn). They had knocked out a German A Tk Gun, and taken a few PW on the Southern outskirts on the road to WAILLY.After a brief halt at ACHICOURT I was ordered to move on to WAILLY and took over the lead from SHQ. I was entirely on my own as the other troops had not caught up. ‘About 500 yards from the village I was fired on by a large armoured car with a small gun in it; 20mm I suppose, with no effect on my tank. I fired back and the car burst into flames. One of the crew must have had guts, as although wounded he continued to fire as I closed in and eventually I saw him climb out and fall into the gutter, badly burned. I moved past the blazing armoured car nearly up to the cross-roads in the village which was full of German infantry. There was a lot of traffic darting across the crossroads from South to North and which we engaged with varying success. When occupied with this we were engaged at short range by a 37mm A Tk Gun, again with no effect, which had been pushed around the corner of a house by German infantry. This was followed by a shower of grenades which landed on the tank.”(Lieutenant Tom Craig)In desperation Rommel ordered the division’s 88-mm (3.46-inch) FLAK 18 anti-aircraft guns and 105-mm (4.1-inch) field guns to be placed in a defensive line with orders to fire anti-tank and HE rounds at the British tanks, in a last ditch effect to halt the Matildas. The BEF’s attack was stopped with heavy casualties of both men and machines. Then, with the aid of the Luftwaffe, in particular the fearsome Stukas, operating under an umbrella o Messerschmitt ME 109 fighters, Rommel launched a counter-attack and managed to drive the British back, the BEF’s offensive had been repulsed.“While proceeding along the road Neuville–Maroeuil, anti-tank shells from our left struck the road about ten to twenty yards ahead. It was impossible to discover the guns, so I went on to a position of shelter and reported by radio. No reply was obtained.About twenty or thirty minutes later, I observed a force, about a company strong, of tanks to the west of Dainville, about one mile away. These machines may have been French, but retired when we turned to approach them.The level crossing near Dainville was close, so I was compelled to break through it, and proceeded about half a mile at high speed. Seeing two men attempting to hide in a cornfield I pursued them and opened fire with the 3030 Vickers. One operate—an N.C.O. in German uniform—surrendered and the other was apparently killed. In put the prisoner in the rear of the tank, covering him with my revolver while we went down the road. Three wrecked motorcars were passed and one dead civilian. A mile further on we ran into a village occupied by German forces who opened fire with rifles. I turned round and came back to report to Captain Fisher. I continueinto Dainville and handed over the prisoner to captain of the Durham Light Infantry for conveyance to Provost Personnel …I then followed two Mk II tanks of 6 sec. B Coy intending to pass them and catch up with the Mk I vehicles. Odd groups of the enemy were seen and engaged, but near a main road west of Achicourt (½–1 mile), we came under anti-tank fire and sustained three direct hits. The effect was that of hitting a large stone at speed, and the track on the right-hand side was seen a yard or two in front of the tank. Two more shots followed, and then the guns were silenced by our fire, and that of the I tanks, which went on without seeing us.We were subjected to intense rifle fire for some minutes, and then left alone, apparently in the belief that we were killed. After five or ten minutes, about thirty to fifty Germans were congregated in groups on the road and to the right of us. We estimated the range of each group, and then opened fire. Many of the enemy fell, but some doubtless were unhurt. Later an abandoned anti-tank gun, about 800 yards to our right front, was re-manned, but was seen to be deserted after we fired upon it.In the intervals of firing, we attempted to report by radio, but could obtain no reply, although the receiver was working and radiation was shown on the ammeter. The aerial had been damaged by rifle bullets.Soon afterwards, more tanks appeared, both Mk I and Mk II, and the firing died down. Infantry also appeared.I then got out to inspect the damage. About five track plates and pins were damaged, there was a hole about two inches in diameter in the right-hand sprocket, which had two teeth missing, and radiator, which could not be opened, was leaking. The engine would run, but smelt strongly of burning. I mad several attempts to get more track plates while my crew, Troopers Tansley and Mackay M., worked at the tank often under heavy shellfire. At times, this was so severe that work had to be suspended. Enemy aircraft also caused interference.During this time it was reported to me, that Sgt Temple's tank (Mk II) was out of action in front of us and the sergeant was believed killed. As soon as the shelling and rifle fire permitted, I went out with an R.A.M.C. officer, and found the tank with its right track off and Sgt Temple and another man, who was unrecognisable by me, dead outside the tank. The tank was abandoned with a bomb inside it, which duly exploded.(JU 87 Stukas attack British Armour, May 1940. Painting by Adam Tooby)At dusk most of the infantry had withdrawn and since it was obvious that a counter-attack was coming and that in the dark I could do no useful work against it I prepared to abandon the tank. I set fire to three German motorcycles (one a combination from which I removed a map, later given to Captain Holden) and the three anti-tank guns. These were nearly all metal so did not burn well. They appeared similar to a very large Boys rifle in mechanism, firing a shell of about ¾ to 1 lb. judging from the empty cases.All moveable kit, including guns, wireless, pyrenes, etc., was piled on an abandoned Bren carrier which we managed to start, and when it was obvious no help was coming, the tank was fired. It was soon blazing fiercely.Being informed that Neuville-Vitasse was in enemy hands I rallied with Major Fernie of the 4th Bn outside Achicourt.The German counter-attack was launched as soon as darkness was complete. Hot machine-gun fire was opened and a heavy tank (possibly a captured one of French design) came down the road from Neuville, firing its gun at random … I followed in the carrier, which however broke down and had to be abandoned. This too was set on fire, but I have reason to believe did not burn.I had now with me Trooper Nichol, driver of Lieut. Nugent's tank. His tank, like another Mk II I saw, had caught fire and the crew had separated.An infantry made up my party to five, so securing two Bren guns, and a water bottle and rations each, we made our way into the country, halting at a ruined aerodrome about 0230 hours on the 22nd.One the following morning I led my party to five, so securing two Bren guns, and a water bottle and rations each, we made our way into the country, halting at a ruined aerodrome about 0230 hours on the 22nd.On the following morning, I led my party into Arras. We reported to Area Headquarters and were later sent back to Vimy.”(Australian Captain T Hepple, killed in action 21st May, 1940)The attack sent shock waves through the German command; the 7th Panzer Division had believed that they were being attacked by five infantry divisions; it may well have been one of the factors for the surprise half order for the panzers outside Dunkirk.“A critical moment in the drive came just as my had reached the channel. it was caused by a British counter-stroke southwards from Arras on May 21st. For a short time, it was feared that the panzer divisions would be cut off before the infantry divisions could come up to support them. None of the French counter-attack carried any series threat such as this one did.”(Field-Marshal von Rundstedt)the main British force had consisted of 58 machine-guns Matilda 1s and just 16 QF 2-pdr gun armed Matilda IIs which were supported by a handful by a handful of lighter. In total the British lost 40 tanks and the French 20 were lost during fighting whilst the German lost 12 with Rommel’s division 89 men killed, 116 wounded and 193 missing and captured of which 400 were taken prisoner. Total German losses were about 700. The British sustained around 100 KILLED AND WOUNDED, THE French casualties are unknown. Among the British casualties were 170 whom had been captured and then shot by the SS.(The German 8.8-cm Anti-Aircraft gun. At Arras, it proved to be a highly effective tank killer and it became famous in that role. Though designed as an Anti-Aircraft gun it served throughout World War Two as a duel-purpose artillery piece and would later be fitted to armoured vehicles, variants being the main armament on the Tiger tank and the Ferdinand (Elephant self-Propelled gun. This one can be seen at the Imperial War Museum in London.)Sources.Magazines.1) War machine. Axis Tanks of world War Two. Various authors. Orbis Publishing.2) War Machine. British and French tanks of World War II. Various authors. Orbis Publishing.Books.1) World War II. Blitzkrieg. By Robert Wernick. Time life Books.2) The Fall of France. By Julian Jackson. Oxford University Press.Web1) Second World War history. Invasion of France Timeline.2) Horst Stumpff. Wikipedia.3) 3rd Panzer Division. (Wehrmacht) Wikipedia.4) Military Surplus Collectors Forums. MG 08. Interwar version.5) Battle of Belgian. Wikipedia.6) A History of the 4th and 7th Royal Tank Regiments. 1940 – 1941.7) Panzer I. Wikipedia.8) Wilhelm Ritter von Thoma. Wikipedia.9) Panzer ii. Wikipedia.10) Panzer 35 (t). Wikipedia.11) Panzer 38 (t) Wikipedia.12) Panzer III Wikipedia.13) Panzer IV. Wikipedia.14) Hotchkiss H-35. Wikipedia.15) Renault R-35. Wikipedia.16) SOMUA S-35. Wikipedia.17) Char B-1. Wikipedia.18) Vickers light tanks. Wikipedia.19) Cruiser Mk 1 (A9). Wikipedia.20) Cruiser Mk II. (A10). Wikipedia.21) Cruiser Mk III. (A13) Wikipedia.22) Matilda Mk i. Wikipedia.23) Matilda Mk II. Wikipedia.24) B. H. Liddel Hart. Wikipedia.25) J. F. C fuller. Wikipedia.26) Giffard Le Quesne Martel. Wikipedia.27) Charles Broad. Wikipedia.28) George Lindsay. Wikipedia.29) Heinz Guderian. Wikipedia.30) Battle of Hannut. Wikipedia.31) Gaston Billotte. Wikipedia.32) Battle of Gembloux. Wikipedia.33) Henri de Vernejoul. Wikipedia.34) Paul Reynaud. Wikipedia.35) Battle of Arras. Wikipedia.36) 8.8-cm Flak 18/36/37/41. Wikipedia.37) Junkers Ju 87. (Stuka) Wikipedia.38) Ww2 talk. Australian Captain in British 7th RTR RAC killed 21/5/1940 St Omar.39) http://www.ibiblio.org/hyperwar/UN/UK/UK-NWE-Flanders/UK-NWE-Flanders-6.html

Which companies are using F# in production?

F# was so easy to pick up we went from complete novices to having our code in production in less than a week.Jack MottO’Connor’s OnlineCase studyAs an experiment to evaluate functional programming as a production tool we developed a new multi level caching system for our website in F#. Because F# can use existing C# libaries so easily we were able to proceed rapidly using popular packages such as StackExchange.Redis and ProtoBuf-Net. In less than a week we had a flexible caching system in production, complete with an administration page and performance statistics tracking.We also found that it was straightforward to use our new F# module from within our existing C# code, and that the F# code deployed to and ran as an Azure app service without any special configuration. Adding F# to the code base was completely painless.The developers on our team are all intrigued by F# and eager to learn more. As well, we find that at college recruiting events, prospective students are very excited to hear that we are using a functional language in productionThe F# code is consistently shorter, easier to read, easier to refactor and contains far fewer bugs. As our data analysis tools have developed … we’ve become more productive.KagglepermalinkAt Kaggle we initially chose F# for our core data analysis algorithms because of its expressiveness. We’ve been so happy with the choice that we’ve found ourselves moving more and more of our application out of C# and into F#. The F# code is consistently shorter, easier to read, easier to refactor, and, because of the strong typing, contains far fewer bugs.As our data analysis tools have developed, we’ve seen domain-specific constructs emerge very naturally; as our codebase gets larger, we become more productive.The fact that F# targets the CLR was also critical - even though we have a large existing code base in C#, getting started with F# was an easy decision because we knew we could use new modules right away.The use of F# demonstrates a sweet spot for the language within enterprise softwareSimon CousinspermalinkI have written an application to balance the national power generation schedule for a portfolio of power stations to a trading position for an energy company. The client and server components were in C# but the calculation engine was written in F#.The use of F# to address the complexity at the heart of this application clearly demonstrates a sweet spot for the language within enterprise software, namely algorithmically complex analysis of large data sets. My experience has been a very positive one.At Credit Suisse, we’ve been using F# to develop quantitative models for financial productsHoward MansellCredit Suisse (at time of writing)source: CUFP Workshop, 2008, permalinkBuilding valuation models for derivative trades requires rapid development of mathematical models, made possible by composition of lower-level model components. We have found that F#, with the associated toolset, provides a unique combination of features that make it very well suited to this kind of development. In this talk, I will explain how we are using F# and show why it is a good match. I will also talk about the problems we have had, and outline future enhancements that would benefit this kind of work.The abstract to a talk at the Commercial Users of Functional Programming workshopThe performance is phenomenal. We can now re-calculate the entire bank portfolio from scratch in less than a second and the response-time for single deal verification calculation is far below 100 milliseconds.Jan Erik Ekelof, http://M.Sc.Head IT-architect and lead developer Counterparty RiskHandelsbankenpermalinkI first evaluated F# back in 2006 - 2007 for the purpose of math oriented high performance applications within Financial Risk. I got in spring 2009 a mission to implement a new Real-time Counter-party Risk system covering all possible present and future deal types within the entire bank. The effort was started with only three resources, me as architect and lead developer and two colleagues – one risk expert and one high performing developer. Our first intention was to use C#, but I did a quick proof-of-concept with F# implementing a low level TCP/IP-communication to an existing risk-system. This showed us and our management that F# could give us a real productivity boost due to its support for multiple paradigms and functional concepts together with an impressive support for multi-threading.Our first delivery is approaching rapidly and F# has proved itself as a real life-saver. We started off using C# in many places but have since then moved almost entirely into F# due to its ability to reduce the amount of code required and its simplicity when developing massive parallel computations. The performance is phenomenal. We can now re-calculate the entire bank portfolio from scratch in less than a second and the response-time for single deal verification calculation is far below 100 milliseconds(the original demand was 200 milliseconds to make the application usable for electronic markets). Although some gains are to be attributed to how we have built our calculation models, F# made it possible for us to implement our algorithms and techniques with very little code and with a huge similarity to the original mathematical models and regulations (which is important for verification of correctness). We have also been able to use the support for Async-workflows producing code that is simple and clear and easy to understand but still runs in parallel when required.The present application contains 35 to 40.000 lines of F#-code and an equal amount of C#-code. However, our estimate is that the F# code contains at least 80% of the functionality (which is pretty amazing!). Our experience shows us that the number of code lines shrinks with a ratio of 1/2 to 1/4 by just porting functionality from C# to F# (not counting single character or empty lines in the C#-code). We have by remodeling increased the ratio to the area of 1/5 to 1/8, where the remodeling involves replacing object oriented constructs with functional ones (and actually removing mutable states). One example from last week was a limit-utilization module written in F# but using an object-oriented approach containing +300 lines of code. I rewrote it to below 70 lines of code just by shifting paradigm (and the rewrite made it much easier to understand and verify)!The benefits of functional programming in F# have given us a great advantage over our slow moving competitors.Bayard RockpermalinkAt Bayard Rock we work hard every day in the pursuit of new approaches towards anti-money-laundering. Before adopting F# there were often months of turnaround time between development of an idea and actually testing it on real data in our production environment. F#’s succinctness and composability allows us to rapidly iterate on ideas while the type system acts as a safety net. On top of this, it has the advantage of being a first class member of the .NET ecosystem and so integrates seamlessly with our Microsoft stack systems. This means that instead of months we can often see our ideas come to life in just days.The benefits of functional programming in F# have given us a great advantage over our slow moving competitors. After three years of using F# our products have consistently gotten significantly better each year without sacrificing stability. Our clients often are amazed by how we can quickly adapt to unique challenges and how we can find the bad guys hiding in their data much more effectively than anyone else. Little do they know that it’s largely thanks to our secret weapon, F#.Grange Insurance parallelized its rating engine to take better advantage of multicore server hardwareGrange InsurancepermalinkFor nearly 75 years, Grange Insurance has offered competitive products and services to policyholders in more than a dozen U.S. states. To maintain its well-earned reputation and standing, the company decided to enhance its rating engine—a software tool for rating policies and performing what-if modeling, impact analyses, and other vital activities. Working with the Sophic Group and using the Microsoft Visual Studio Team System development environment and F# programming language, Grange Insurance parallelized its rating engine to take better advantage of multicore server hardware, and in so doing garnered significant performance benefits. Processes that used to require hours now take just minutes, enabling the company to trim time-to-market by weeks and making it far easier for independent agents to sell and service Grange products.Large insurance company developed an entire pension quote calculator entirely in F# in under 100 days with no prior F# experience at all…Large insurance companysource 1, source 2,permalinkOne of the world’s largest insurance companies have F# code in production, are starting several more projects in F#. We are currently consulting for this company (£2.5bn profit) who have migrated some of their number crunching and business logic to F# and are so happy with the results (10x faster and 10x less code vs their Visual C++ 6) that they are proposing to migrate 1,600,000 lines of code to F#. In particular, their developers found F# easy to learn and use.… my predecessor developed an entire pension quote calculator (typically scheduled to take 300-400 man days) entirely in F# in under 100 days with no prior F# experience at all. Performance is 10× better than the C++ that it replaces because the new code avoids unnecessary copying and exploits multicore parallelism. Part of my job here will be to give basic F# training to around 20 people and bring a few people up to expert level.In answer to “Can you give any evidence for 10x performance gain over C++?”. The insurer’s C++ code is a simple manual translation from very inefficient Mathematica code that suffers from several pathological performance problems mainly centered around excessive copying. The F# rewrite does not have these problem. The 10x performance gain was verified by the client.Our risk and analytic capabilities (…) are entirely written in F#Lawrence AustenChief Risk Officer at Trafigurasource, permalink…work directly with Trafigura’s Chief Risk Officer/Head of Quantitative Analysis, cranking code and rapidly extending our risk and analytic capabilities, which are entirely written in F#.Trafigura Limited engages in the supply and offtake of crude oil, petroleum products, liquefied petroleum gas, metals, and metal ores and concentrates worldwide. Its solutions include trading, financing, hedging, and logistical support….The F# solution offers us an order of magnitude increase in productivty…GameSysYan CuiLead Server Engineersource, permalinkF# is becoming an increasingly important part of our server side infrastructure that supports our mobile and web-based social games with millions of active users. F# first came to prominence in our technology stack in the implementation of the rules engine for our social slots games which by now serve over 700,000 unique players and150,000,000 requests per day at peaks of several thousand requests per second. The F# solution offers us an order of magnitude increase in productivity and allows one developer to perform the work that are performed by a team of dedicated developers on an existing Java-based solution, and is critical in supporting our agile approach and bi-weekly release cycles.The agent-based programming model offered by F#’s MailboxProcessor allows us to build thread-safe components with high-concurrency requirements effortlessly, without using locks and sacrificing maintainability and complexity. These agent-based solutions also offer much improved efficiency and latency whilst running at scale. Indeed our agent-based stateful server for ourMMORPG has proved a big success and great cost saver that we’re in the process of rolling it out across all of our social games!Using F# for cross-platform mobile development (Android, iOS) saves development timeJames MooreSenior Software DeveloperDigium, IncpermalinkWe wanted to develop our Android and iOS applications using as much shared code as possible. We built a reactive architecture using F# actors (aka mailbox processors) to build a very robust multithreaded system that was easily portable between Android and iOS.Our F# actors (shared across iOS and Android) expose .Net IObservables that are consumed by UI systems written for the native platforms. Dividing the system in that way allowed for testable multithreaded code that would have been difficult to write in other .Net languages.For a machine learning scientist, speed of experimentation is the critical factor to optimize.Patrice SimardDistinguished EngineerMicrosoftpermalinkI wrote the first prototype of the click prediction system deployed in Microsoft AdCenter in F# in a few days.For a machine learning scientist, speed of experimentation is the critical factor to optimize. Compiling is fast but loading large amounts of data in memory takes a long time. With F#’s REPL, you only need to load the data once and you can then code and explore in the interactive environment. Unlike C# and C++, F# was designed for this mode of interaction. It has the ease of use of Matlab or Python, both of which I have used extensively in the past. One problem with Matlab and Python is that they are not strongly typed. No compile-time type checking hurts speed of experimentation because of bugs, lack of reusability, high cost of refactoring, no intellisense, and slow execution. Switching to F# was liberating and exhilarating. 2 caveats: Not every problem fits that model. With a bit of discipline, such as avoiding massive parallelism for as long as possible, the model goes a long way. The second caveat is that the cost of learning F# is steep. For me, it was 2 weeks of decreased productivity. It has proven a worthwhile investment.As a machine learning practitioner programming in F#, I constantly switch between two activities: 1) writing prototype code (highly interactive ugly code with throw away results, functions, and visualizations) and 2) upgrading prototype code to library standard (fast, generic, reusable). When I go back to writing prototypes, I build on top of the newly upgraded functions. In F#, the cost of switching between these two modes is minimal: often nothing needs to be done other than adding comments and deleting deprecated functions.This means that most of the time is dedicated to experimenting and the majority of the code is close to shipping quality. Some people can do this in C# or Matlab, but I find that F# excels at it.I started F# with deep suspicions regarding efficiency. My first test was to link F# with C++/CLI and check performance of calling SSE/AVX optimized code. As hoped, F# is comparable to C# when it comes to speed. You have the same flexibility to link with well optimized code. The inline generics are truly magical: same IL in the linked DLLs, but the functions expand to specialized fast code when you instantiate them. Compromises between intuitive code and efficient code still need to be made. I found that “for” loop, “tail recursive” loop, or Parallel.For with ThreadLocal loops, are faster than a succession of piped IEnumerables (seq in F#). F# does not hamper one’s ability to write ugly fast code. Rest assured.Several people in the machine learning group in Microsoft Research have switched to F# for the reasons above. The world is slowly moving toward functional programming with good justifications: the code is cleaner and easier to debug in a distributed environment. Among the available functional languages, F# is a compelling option.We see great potential for F# to be used as a scripting language in CAD; it fits very well for computational design challenges in the construction industry.Goswin RothenthalDesign EngineerWaagner BiropermalinkIn recent years many Architects have discovered that they can greatly enlarge their design repertoire by the use of parametric design, programming or scripting. Architects can now quickly and easily explore new geometries previously unseen in Architecture. Besides being designed in a novel way these geometries can also be exactly represented and reasoned about in terms of structural feasibility and manufacturing constraints. These facts take new geometries out of the dreams of Architects and make them real candidates for construction.One such project is the Louvre Abu Dhabi by Jean Nouvel. Waagner-Biro was awarded the construction contract for the Dome. For the cladding of this dome more than 450´000 individual cutting and drilling patterns of custom aluminium extrusions had to be described and automated. The sheer scale and complexity of the cladding on the dome required us to re-evaluate our parametric design approach. I developed an F# application to represent and organize all cladding elements of the dome. It includes a small geometry kernel and an adapted version of the Half Edge Data Structure to efficiently query the neighbourhood of each element. I used Rhino and its .NET API to host the F# DLL for drawing and visualisation. This application enabled us to have an integrated workflow from the main geometry setout all the way down to the manufacturing data in a single parametric model. This project was the first use of F# at Waagner-Biro for a large scale project. The switch to F# from dynamic scripting languages helped to reduce development time and execution time. The strongly typed environment, algebraic data types and immutable data helped to avoid a whole range of bugs and fits well the domain of generating static 3d geometry. I see great potential for F# to be used as scripting languages in CAD, especially since most big CAD packages already offer a .NET API.(Image credits: Jean Nouvel Architects)The results speak for themselves.Matt BallLiz Earle Beauty Co. LtdpermalinkAs a business we actively seek improvement every single day. This is the same for our IT systems, so we have been searching for a means to do that in our in-house software systems.The F# type system has allowed us to do this - by eliminating null references, increasing type safety and creating rich domain models that help us express hard-and-fast business rules in a way that we can really lean on the compiler; while actually reducing our total lines of code (and noise!). Doing so has reduced both our requirement for expensive bug hunts in our production systems, and the overall cost of maintaining unnecessary code complexity.We have been evaluating F# for a year now, and have components in our production systems that have been bug-free since deployment. The results speak for themselves.…we have decided to use F# as our functional language to have automatic integration with rest of the system…EMEA-based Security Solutions CompanypermalinkWe develop security product to protect critical infrastructure (e.g. Oil Refinery, Airport, etc) for countries across the globe…. In core of our product there are prediction algorithms. We use different modeling and theorems (Monte Carlo, Action, etc) to implement the prediction components. … Since we are rewriting our next generation product using .NET, we have decided to use F# as functional language to have automatic integration with rest of the system. … We also have advanced machine learning components (Artificial Intelligence) and functional languages are the best fit to write AI stuff. We are planning to use F# as the primary programming language in this area because of its interoperability with .NET.With its new tools, the bank can speed development by 50 percent or more, improve quality, and reduce costs.Large Financial Services Firm, Europesource, permalinkA large financial services firm in Europe sought new development tools that could cut costs, boost productivity, and improve the quality of its mathematical models. To address its needs, the bank deployed F#, the .NET Framework, and Visual Studio. It will soon upgrade to Visual Studio 2010 and then integrated F#. With its new tools, the bank can speed development by 50 percent or more, improve quality, and reduce costs.F# encourages Reason Driven Development that leads to virtually bug-free codeBoston-based Financial Services Firm, Fixed IncomepermalinkWe are using F# because it considerably increases speed of software development which is crucial for a small company with limited development resources. The most enjoyable feature of this language is that the developer can reason about the code instead of relying only on unit tests. I would say the language encourages Reason Driven Development methodology which leads to virtually bug-free code. F# as strongly typed functional language ideally fits for tasks our software solves – Fixed Income securities trading optimization. It is also very important that F# computation engine could be seamlessly integrated with other parts of .NET-based software product.At a major Investment Bank, we used F# to build an Early Warning Indicator System for Liquidity RiskStephen ChannellCepheis LtdpermalinkEarly Warning Indicators is a standalone dashboard application to monitor real-time market movements and highlight potential risk for further analysis. EWI subscribed to real-time equity, Forex and commodity prices and needed to calculate Red/Amber/Green status in real-time for tolerance breaches and to generate dashboard reports as needed.The business wanted the flexibility to define formulas using Excel expressions, but spreadsheet components could not cope with the data-rate without conflation and management didn’t want a solution that relied on an Excel template and IT change control to add new indicators.F# was chosen for development productivity, performance of a cell framework implemented using computation expressions; ease with which Excel expressions could be parsed as a DSL and .NET integration with QALib, Market and timer-series data.Post implementation review highlighted that (given resource and time constraints) functionality would have been sacrificed without F# and its associated tooling.I keep being surprised by how compact and readable F# is…London-Based Asset Management CompanypermalinkWe have set up a complete risk management system that combines several data sources, presents them in a … WPF user interface, and does a LOT of calculation behind the scenes. When the calculation requires a proper algorithm (i.e. anything that is more complex than a simple for loop), our choice has been F#. I have to say I keep being surprised by how compact it is and, nonetheless, how readable it is even when I’m reading code that I hadn’t looked at or thought about for six months.The efficient use of functional programming throughout the R&D cycle helped make the cycle faster and more efficient.Moody Hadi (CME Group)permalinkThe credit markets have varying pockets of liquidity. Market participants would like to understand how the liquidity of their set of entities changes relative to the overall market. A liquidity scoring model is needed to provide these metrics across the entire CDS universe. Functional programming and specifically F# was used in order to provide the market with a fast and accurate solution. … The research and development cycle was made faster and more efficient by the effective use of functional programming.The efficient use of functional programming throughout the R&D cycle helped make the cycle faster and more efficient. Less time was spent on translating requirements, miscommunications etc and more on producing a fast and accurate solution quickly.Since programmers can understand your quant code they can focus on their core competency – developing fast and reliable production code. The development exercise becomes catered towards optimization, performance tuning and error handling (i.e. making the code reliable) Functionality is not lost from the prototype due to miscommunication or rather crude documentation/requirements, which saves time in testing. Mass regression testing is easy with precise precision level differences between the prototype and the production system.F# allows you to move smoothly in your programming styleJulien Laugel, http://eurostocks.comsource, permalinkI’ve been coding in F# lately, for a production task. F# allows you to move smoothly in your programming style… I start with pure functional code, shift slightly towards an object-oriented style, and in production code, I sometimes have to do some imperative programming. I can start with a pure idea, and still finish my project with realistic code. You’re never disappointed in any phase of the project!I have now delivered three business critical projects written in F#. I am still waiting for the first bug to come in.UK-based Power CompanySimon CousinspermalinkI am both a C# dev and an F# dev. I can only offer subjective anecdotal evidence based on my experience of delivering projects in both languages (I am too busy delivering software to do anything else).That said, the one stat in the summary that I find most compelling is the defect rate. I have now delivered three business critical projects written in F#. I am still waiting for the first bug to come in. This is not the case with the C# projects I have delivered. I will continue to monitor and report on this. It might be that I am just on a lucky streak, but I suspect that the clarity and concision of F# code contributes greatly to its correctness.F# proved ideal for the complex data machinations required to build the models from raw Excel input.A Fortune 100 ManufacturerSupplied to FSSF,permalinkWe developed a ClickOnce F# / WPF application that scores and ranks thousands of models of part-supplier combinations using Microsoft Solver Foundation (MSF). Agents can chose from the highest scoring combinations to optimize purchasing decisions. F# proved ideal for the complex data machinations required to build the models from raw Excel input. Also, the MSF supplied F# functional wrapper is a great way of using Solver Foundation from F#.Type providers made working with external data sources simple and intuitive.Jon CanningProperty To RenovatepermalinkEvery day we analyze data for hundreds of thousand of properties, sourced from XML and JSON feeds. Features such as Options and Type Providers have given us incredibly concise, expressive, and testable code with which to handle them, freeing us to focus on business value.As a developer moving from C#, some of the concepts you read about functional programming can be difficult to grasp and the barrier to entry appears high. However, with just a basic understanding and a helpful and welcoming community, F# has proven to be very productive and has quickly become my language of choice.Around 95% of the code in these projects has been developed in F#Anton Schwaighofer,Microsoftbing Ads Ranking Allocation and Pricingsource, permalinkAround 95% of the code in these projects has been developed in F#. F# allowed for rapid development of prototypes, and thus also rapid verification or falsification of the underlying mathematical models. Complex algorithms, for example to compute Nash equilibria in game theory, can be expressed succinctly. Units of measure reduced the chance of errors dramatically: Prices, probabilities, derivatives, etc. can already be kept apart at compile time.F# is central to Microsoft’s quantum algorithm researchDave WeckerMicrosoft Advanced Strategies and ResearchpermalinkF# is central to Microsoft’s quantum algorithm research. The LIQUi|⟩ simulator (Language Integrated Quantum Operations) presents an extension of F# that presents a seamless integration of classical and quantum operations. The scale and efficiency of the simulator allows it to handle among the largest entangled systems of qubits (quantum bits) ever modeled utilizing a targeted linear algebra package written entirely in F#. In addition, the modular architecture allows users to easily extend the system in any desired research direction. The base library is well over 20,000 lines of code and implements a wide range of modules including circuits, molecular modeling, spin-glass systems, quantum error correction, machine learning, factoring and many others. The system runs in client, server and cloud environments. It is also designed to be used as an educational tool and we have found that bringing new users up to speed is a quick and painless process.F# is the night vision goggles I need when I go into the dark and attempt to solve previously unsolved problems.Professor Byron CookMicrosoft, permalinkI’m one of the first users of F#, since 2004. In my work (e.g. SLAM, Terminator, Zapato, T2, etc) I find that F# is the night vision goggles I need when I go into the dark and attempt to solve previously unsolved problems. Everything becomes simple and clear when expressed in F#.F# will continue to be our language of choice for scientific computing.Dr. Andrew PhillipsHead of Bio Computation GroupMicrosoft Research,permalinkI lead the Biological Computation group at Microsoft Research, where we are developing methods and software for modelling and analysis of biological systems. We have been using F# in our group for the past 7 years, and it’s the language of choice for all of our software development. In particular it forms the basis of our software for programming computational circuits made of DNA, for programming genetic devices that operate inside cells, and for programming complex biological processes in a modular way.The functional data structures and static type-checking that F# provides are ideally suited for developing these domain-specific languages, and the Visual Studio integration is superb for debugging and source control. The integration with .Net is seamless, and allows us to incorporate efficient numerical and visualisation libraries written in C#. It also allows us to take advantage of the full suite of .Net UI components.Our languages are specified with a formal syntax and semantics, which are rigorously analysed prior to their implementation. Programming in a functional language like F# brings the implementation much closer to the formal specification, which is important for ensuring accurate simulation and probabilistic analysis. Correct implementation of the semantics is critical, since even small coding errors can give rise to divergent predictions, which can in turn compromise biological experiments. F# is a great language for writing clean, concise code, which is statically typed within a professional development environment that supports a wealth of libraries. It will continue to be our language of choice for scientific computing.In our engineering group at Microsoft we use F# for several projectsMicrosoft Engineering TeampermalinkIn our internal engineering group at Microsoft, F# is used for several important tools: * analyzing feedback on the web to look for compatibility-related issues, * a static code analyzer to detect compatibility regressions in a product, * a delta-debugging tool to help root cause regression analysis in product builds.My team chose F# for its functional paradigm, maturity, and ease of interoperation with the .NET frameworkDylan HutchisonMicrosoft Research (intern), Stevens Institute of TechnologypermalinkWith an idea for a new domain specific language, my team chose F# for its functional paradigm, maturity, and ease of interoperation with the .NET framework. I wrote the language primitives in F#’s arsenal of data types (records, discriminated unions, a couple classes at the top level), implemented operations on the types using its hierarchy of modules, and turned our operations into a working demo in F# Interactive, all in about 10 days.I jumped for joy each time my code executed correctly on the first pass, and in the few cases it did not, debugging through Visual Studio felt natural and quick. As for .NET, integrating with Microsoft Excel was easy by importing the necessary DLLs, though Excel posed challenges beyond F#’s reach. Finally, I can verify that F# delivers a sense of correctness and safety, stronger than other languages I worked with in the past. It is reassuring to know your code will execute exactly as you intend.The simple, well-designed and powerful core of the language was perfect for introducing the fundamental concepts of functional programming.Michael R. HansenAssociate Professor, Technical University of DenmarkpermalinkProducing an F#-based book on functional programming has been a fantastic experience.Using this material in an F#-based courseintroducing the fundamental concepts of functional programming has been a delightful experience as well. The simple, well-designed, yet powerful, core of the language was perfect for that purpose and, to our surprise, the transition from using SML to using F# actually made the tooling easier for students no matter which platforms they used.Furthermore, F# with it rich runtime environment has proved to be an excellent programming platform in research applications and in a more advanced course aiming at showing the role of functional programming in a broad variety of applications ranging from computer science applications to more real-life applications. In the first version of this course, given together with Anh-Dung Phan, the students completed three projects in three weeks: One being an interpreter for a rich imperative programming language, another being implementation, application and analysis of a functional pearl, and the last being a curriculum planning system for studies at the Technical University of Denmark.Solving a number of programming problems using the language convinced me of the supreme qualities of F#Hans RischelFormer teacher of computer science at the Technical University of DenmarkpermalinkI was approached by my former colleague Michael (Michael R. Hansen) in autumn 2010 where he proposed that we should write a new textbook on functional programming - now using the F# programming language. To begin with I was quite sceptical about using a programming language appearing as part of a Microsoft program package. Solving a number of programming problems using the language convinced me, however, of the supreme qualities of F# - and we embarked on the project of getting acquainted with F# and writing the textbook.Michael and I spent considerable time solving traditional programming problems in F#. A combination of functional and imperative F# with an occasional pinch of OO gives a very pleasing platform for program development - once you have found your way through the wilderness of MSDN documentation (newcomers to the MSDN world may benefit from the MSDN library documentation found on the web-site of the book). All of Chapter 10 and part of Chapter 11 present program examples using this programming style.Computation expressions look esoteric to begin with, but they are actually rather useful. We spent much time trying to get this concept down to earth, with the purpose of making it accessible to simple-minded people like ourselves. The reader may judge how far we succeeded by studying Chapter 12 of the book.Writing this textbook with Michael has been an exciting experience.F#’s powerful type inference means less typing, more thinkingDon SymePrincipal Researcher, MicrosoftEclipse Summit Europe 2009, source, slide 49permalinkF# was used on Microsoft’s AdPredict project for adCenter. This was a 4 week project with 4 machine learning experts involving a model with 100million probabilistic variables and processing 6TB of training data in real-time. 2 weeks of CPU time were used during training. Benefits includedQuick Coding - F#’s powerful type inference means less typing, more thinking, Agile Coding - Type-inferred code is easily refactored, Scripting - “Hands-on” exploration, Performance - Immediate scaling to massive data sets, Memory-Faithful - Mega-data structures on 16GB machines,Succinctness - Live in the domain, not the language, Symbolic - Schema compilation and “Schedules” and .NET Integration - Especially Excel, SQL Server…The AI is implemented in F#…Microsoft, Path of Govideo source,permalinkPath of Go is powered by three technologies…: an AI capable of playing Go, the F# language, and TrueSkill to match online players. The AI is implemented in F# and meets the challenge of running efficiently in the .net compact framework on Xbox 360. This game places you in a number of visually stunning 3D scenes. It was fully developed in managed code using the XNA environment.…the core logic is written in F# wherever possible…Andrea D’IntinoYellow blue softpermalinkYellow blue soft is a truly international Micro-ISV: We are a small, dynamic and international team who is wondering why file-management is lagging 30 years behind and no one seems to care or even notice. We do. We love what we’re doing and most importantly we love listening to you! Visit our blog to know more about us and join our forum to become part of our sparkling community.The tabbles are special containers that you can use to categorize any kind of file and document as well as folders and bookmarks. Using Tabbles you can quickly categorize, find, sort and share your documents, in a totally new way.When F# is combined with Visual Studio… productivity goes through the roof!Prof Nigel HorspoolUniversity of Victoria, Canadasource, permalinkF# programs tend to be much shorter than their equivalents in other languages. The fewer lines of code required, of course, the higher the productivity. When F# is combined with Visual Studio, which provides help with remembering the methods attached to different data types and how to use those methods, productivity goes through the roof!…That’s the reason we have chosen F# for our undergraduate functional programming class…Prof. Peter SestoftIT University of CopenhagenpermalinkF# has a beautiful, simple but expressive language at its core, and many powerful features built around that core language. It can draw on all the power of the .NET libraries, and runs on Windows, MacOS and Linux. That’s the reason we have chosen F# for our undergraduate functional programming class as well as our undergraduate programming language class (link)F#…levels the playing field between beginners and experienced programmers.Prof. Susan EisenbachImperial College, United Kingdomsource, permalinkFunctional languages are ideal for teaching clear thinking, for solving problems amenable to code solutions and it levels the playing field between beginners and experienced programmers. The first programming language taught has a substantial influence on what language students use when they have a free choice. F#, once it is platform independent, has the potential to become the first programming language.F#…made it trivial…Prof David WalkerPrinceton Universitysource, permalinkOur graduate course on Parallelism this Fall is full, even though it assumes no experience with functional programming or F#. The students are preparing the courseware themselves, and one of the topics we are studying is functional reactive programming (FRP) with continuous, time-varying behaviors. F#, with its rich graphics libraries, made it trivial to construct a super-fun assignment involving purely functional and interactive animation of a mock solar system.We recommend teaching F# because it is an extraordinary and flexible tool for teaching different areas of Computer ScienceAntonio CisterninoUniversity of Pisa, ItalypermalinkAt the University of Pisa we use F# for teaching UI programming, a fundamental course in the third year curriculum. In 2014 two more courses (Programming I & II) will use F# and Try F#.We use F# for teaching because it fits teaching both fundamentals and technology thanks to rich programming environment and libraries to access all system resources (such as UIs). Moreover, F# feels like a dynamic language thanks to F# interactive even if it is a statically typed language. Our students use F# on Windows, Mac and Linux. Try F# is a particularly valuable tool for teaching because it has a quite sophisticated editor with interactive evaluation and the ability of sharing saved files with students.I’ve also used F# for teaching programming for scientists at Scuola Normale Superiore, a PhD course at ITU Copenhagen and to graduate students in biomedical engineering.We recommend teaching F# because it is an extraordinary and flexible tool for teaching different areas of Computer Science. The language is rich and its functional nature allows to easily define the appropriate subset for teaching particular concepts. I use it to teach entire classes by typing code and evaluate interactively discussing the results of a single evaluation. It is also a great tool for teaching programming to scientists and engineers: I found that its mathematical roots in lambda calculus are more readily grasped by non-programmers, and interactive evaluation recalls environments such as Matlab and Mathematica very popular in these communities.F# is very popular among my students for the programming projectsSimão SousaUniversity of Beira Interior, PortugalpermalinkI teach and use OCaml and F# in my lectures (Theory of Computation, Formal Languages and Compiler Design, Formal Methods, Applied Cryptography), and F# is very popular among my students for the programming projects. Most of the students that are supervised by me (undergraduate, master but also PhD) use F# as the underlying programming language. This is even more the case now since part of our research directions includes working on cloud/distributed systems.F# and its programming environment leverage with no doubt the ability and the productivity of my students. This is, in my opinion, for two main reasons. First, F# allows the student, but also the researcher like me, to focus on the key aspects of his creation, while, secondly, enhancingtechnologically the work done in a so remarkable and facilitated way. Once drawn in paper and pencil, an algorithm is naturally implemented in F# and easily deployed in whatever is its execution context.I am definitively a strong believer of F# and amazed by the language and its community.I evaluated F# and it and found that for certain tasks it was better than C# in terms of performance while maintaining suitable readabilityAtalasoftsource, permalinkI evaluated F# and it and found that for certain tasks it was better than C# in terms of performance while maintaining suitable readability and for certain tasks, it leant itself better to certain algorithms (OctTree based color quantization stands out). …we were able to heavily leverage inline functions in F#……Since each of these are inlines, the F# optimizer can actually do something useful with the code. By using F#, we were able to address this cost by using inlining, code profiling, scanline caching, memoization and other techniques. In many cases we ended up with code that ran in equivalent time to C++ code or in some cases faster.We would recommend F# as an additional tool in the kit of any company building software on the .NET stack.Michael Newton, Senior Developer15below Ltd, permalinkHistorically, our code base has been written in a mix of C# and VB.NET Shop. F#’s excellent interoperability with the rest of .NET allows us to use it for components where it’s particular strength’s shine without having to discard or rewrite our existing code.Whether it’s driving the build and continuous integration system (due to scripting being a first class citizen in the F# world) or writing rock solid infrastructure components (due to the easy use of functional paradigms via features such as computational expressions, type inference and discriminated unions) we have found our F# code to be concise, easy to write and reliable to use. It is a perfect fit for many components within our messaging based architecture.We would recommend it as an additional tool in the kit of any company building software on the .NET stack.“Speed. I am speed.” works for F# like a charm.Sync.TodaypermalinkWe felt our C# Sync.Today 2013 started to become a huge monster with all the C# scripting, hooks etc. At the same time it was not really providing us with the flexibility we needed to fulfil our customers’ requirements. Instead of just another round of refactoring we decided to start moving to F# with Sync.Today 2015. Since both languages share the same common CLR, we did not throw everything away. We just started to simplify more and more because the F# code has much less lines (we had 146831x “{ or }”, 56555x “Blank”, 2770x “Null checks”, 56194x “Comments” and finally 223502 “Useful lines” and now we have 30602 lines with an order of magnitude more features and benefits ) Since we are processing a lot of information, but without complex computations etc., Orleans became the distributed computing library we build the solution on. It is using mixed C# + F# code now, which is perfect for us and allow us to run both on-premise and in Azure.Bohdan … shows F#’s use for performing aggregations over large datasets, taking advantage of cpu and io parallelismBohdan SzymanikpermalinkBohdan Szymanik, CTO at Kiwibank, is keen to show how he’s been using F# for analysis tasks within the bank. He’ll provide an intro to the language then show its use for performing aggregations over large datasets, taking advantage of cpu and io parallelism, and data presentation through charting and image generation.I am using F# to develop an API for data encryption using fully homomorphic encryption.Vitor PereirapermalinkI am currently using F# to develop my undergraduate final project. The project consists in developing an Application Programming Interface that allows one to encrypt data using fully homomorphic encryption and I found in F# the ideal programming language to develop it.Besides all the benefits of the functional paradigm for this type of work, F# interoperability with the .NET platform allows the construction of powerful implementations that other functional languages do not allow so easily.I really hope that, in the future, I keep working in Cryptography using F# as the main programming language for my projects. I am also preparing a hands-on presentation about F# and Cryptography to be presented at an event in Microsoft Portugal, which I will surely enjoy!I can tell you, F# really saved us a ton of effort.Giuseppe Maggiorepermalink, sourceI am the lead developer of Galaxy Wars, and I can tell you, F# really saved us a ton of effort. Monadic coroutines alone I believe are the reason why we manage to ship the thing on time…I am using F# to develop an API for data encryption using fully homomorphic encryption.namigop (Erik Araojo)permalink, sourceI’ve written two commercial apps in F#, WcfStorm.Rest and WcfStorm.Server.The UI part was in C# and the library part was in F#. In my experience it is fun language to code in.everyone gets really amazed when they try F# and experience its imense expressive powerMário PereiraMicrosoft Student Partner (MSP)Faculty of Sciences, University of OportopermalinkI have been a Microsoft Student Partner (MSP) for three years, which offered me the opportunity to be in touch with most portuguese faculties and their students, getting the change to be a bit of an evangelist for Microsoft technologies. I chose to spent my MSP experience giving introductory seminars to F# and functional programming using F#. So far, I have given these presentations on most portuguese faculties and also at Microsoft portuguese headquarters. The result is always the same: everyone gets really amazed when they try F# and experience its imense expressive power, its delightful syntax and realize they can do functional programming (which is oftenly taken as something boring and complicated) on a familiar and confortable environment. Currently, along with a fellow portuguese MSP, (following the success of previous presentations and in response to the many requests for new sessions on F#) I’m preparing an hands-on session on the use of F# for Cryptography, to be presented on a future event at Microsoft Portugal.Personally, F# offers me a solid and trustable ground to develop reliable and complex applications on a confortable and succinct way, impossible to achieve with other languages and paradigms. With no doubt, I can say I’m a huge fan of F# and I’m always eager to get in touch with every new feature the language has to offer.…your code is less error-prone…Dariosource, permalinkYou can formulate many problems much easier, closer to their definition and more concise in a functional programming language like F# and your code is less error-prone (immutability, more powerful type system, intuitive recurive algorithms). You can code what you mean instead of what the computer wants you to say ;-) Furthermore you can have F# and C# together in one solution, so you can combine the benefits of both languages and use them where they’re needed.I’d recommend F#… learning another language is one way to become a better programmer.Antonio Hayleysource, permalinkI’d recommend F# to a die hard C# developer just because learning another language is one way a programmer can get out of a local maxima and become a better programmer. And F# isn’t just a different set of semantics on top of the same syntax as most imperative languages are, it’s a totally different programming style. All the more to expand the capabilities and understanding of a programmer.…We use F# in oceanographic research to connect multiple visualizations together in time and space…Rob Fatland, Microsoft ResearchpermalinkWe use F# in oceanographic research to connect multiple visualizations together in time and space, which is map-plane location and depth. We began by building our Narwhal Developers Library for Layerscape in C# with emphasis on visualizing flow lines and understanding drift experiment data. These data are quite complex, involving physical ocean state and measurement of microbial metabolic processes, consolidating remote sensing and passive drifters, and adding to all this current measurements with the tracks of autonomous robots. Our technical term for the visualization challenge is ‘horrible’.To cope with the horrible we began adding F# scripts; and this has been extremely productive, particularly in morphing ideas about data exploration into real tools quickly. Our most interesting achievement to date is to wire a chart into a 4D visual environment. The set-up is like this: The scientist sees two views of the data: First color coded structure in a curtain plot of time versus depth (chlorophyll coded as color for example), and second this same data time-boxed in the dynamic Worldwide Telescope (WWT) visualization engine. F# is used to wire them together: Left click (and drag) in the chart to scroll the WWT clock back and forth. Right-click + drag in the chart to select a subset of the data which is then used to construct a new (small) advection visualization. Because the selected pieces are small and chosen interactively we get around the horrible problem of seeing everything at once. It is like seeing an entire forest and making all but a few curious trees vanish. So F# has been a great way to make rapid progress, and fun to learn as well.…I have to say I love the language…Jared Parsonssource, permalinkOver the last 6 or so months, I’ve been working on a Vim emulation layer. This is the first major project I’ve ever done with F# and I have to say I love the language. In many ways I used this project as a method of learning F# (and this learning curve is very much evident if you look through the history of the project). What I find the most amazing about F# is just how concise of a language it is. The Vim engine comprises the bulk of the logic yet it only comprises 30% of the overall code base.There is a noticeable interest in the developer community in Russia towards F#.Dmitry SoshnikovAssociate Professor, Moscow Aviation Technical UniversitypermalinkI do some samples in F# for the lectures and the book, but all that is within a single-user VS 2010 Pro installation. Right now we have a set of slides on functional programming with F# in Russian in the curriculum repository, and the video-course of functional programming using F# available in the largest Russian Internet-University (Национальный Открытый Университет "ИНТУИТ"). The course is being taught in 2 universities. There is a noticeable interest in the developer community in Russia towards F#.F# rocks… building out various algorithms for DNA processing here and it’s like a drugDarren PlattAmyris Biotechnologysource, permalinkWith F#… we have written a complete genome re-sequencing pipeline with interface, algorithms, reporting in ~5K lines and it has been incredibly reliable, fast and easy to maintain.F# rocks - we’re building out various algorithms for DNA processing here and it’s like a drug. Just implemented a suffix tree in 150 lines that can index 200,000 bases a second ;) We have probably 10-20K lines of code for many scientific applications ranging from a full genome sequencing pipeline that reconstructs and annotated yeast strains, to simulators for various processes and design tools for building DNA sequences/constructs. There are lab located apps that grab robot log files and move them to databases and a tool for viewing a huge collection of DNA sequencing data.F# has been phenomenally useful. I would be writing a lot of this in Python otherwise and F# is more robust, 20x - 100x faster to run and for anything but the most trivial programs, faster to develop.The UI work is especially gratifying, because state of the art for a lot of genomic data display is still PNG images embedded in JavaScript and with F# I can render half a million data points on a web page without jumping through hoops.With Units of Measure I started labelling the coordinates as one or zero based and immediately found a bug where I’d casually mixed the two systems. Yay F#!Many attributes of the F# programming language make it an ideal choice for …the exponentially growing volumes of molecular analysis dataDr. Robert BoissyAssistant ProfessorUniversity of Nebraska Medical CenterpermalinkI am involved in bioinformatics and computational genomics as a faculty member at the University of Nebraska Medical Center (UNMC). In an academic medical center like UNMC there are heavy demands on my time and a wide range of different types of research projects that I can end up working on. I have used the F# programming language on both the .NET and Mono frameworks for several of these projects, including one that involved a very productive collaboration with IntelliFactory and the use of WebSharper.You can visit the resulting web site and read the freely available peer-reviewed scientific publication that describes the importantinfectious disease research that this F# software development project facilitates. I am always interested in opportunities to work with professional software development enterprises whose teams include developers with F# expertise, because I believe that many attributes of the F# programming language make it an ideal choice for the development of software solutions that integrate Electronic Health Record (EHR) data and the exponentially growing volumes of molecular analysis data that can now be obtained from individual patients (e.g., personal genome DNA sequencing data).There’s an exciting future for F# in this huge, emerging, data-rich health care market.I could not recommend F# highly enough – I insist that you try it!Ben LynchThe Doctors LaboratorypermalinkThe Doctors Laboratory is the largest independent provider of clinical laboratory diagnostic services in the UK. We use F# for the majority of our in house development, from ETL tasks, via reporting scripts to full web applications.F#’s idiomatic development style, starting with a script in the REPL, before moving functions into a more structured project, makes it trivial to explore different approaches, refactor &c. before committing to a particular approach. It also makes developing more enjoyable and direct – there’s no need to get all the boiler plate/plumbing in place; you can just create a script and start coding. The compiler’s type inference system also means quicker coding, with less ‘cruft’. Features such as pattern matching and discriminated unions also lead to leaner, more expressive and transparent code.Type providers mean data can be accessed in a few lines, and there are a wealth of community driven OSS projects available here for a heterogeneous range of data sources. If you need to access a data source not supported by existing providers, then the community positively encourages getting involved to provide one yourself, as in fact we did with the MSACCESS provider for the SQLProvider type provider. The community is first rate in terms of providing support in forums like Stack Overflow, gitter, etc. Other community projects such as Paket (dependency management) and FAKE (build too) make build automation a breeze, too.F# terse syntax made the final code look really similar to the algorithm we wrote at firstGreen Eagle SolutionspermalinkAt Green Eagle Solutions, we develop control systems for renewable energy plants. Thus, it’s crucial for us to test our software in a real-time environment where are all the other actors (protocols, weather conditions, legacy software) come into play.Beforehand, we used Python to quickly build simulators to test our components. With F# we have now all the advantages of a dynamic language, while keeping the static typing safety we are used to. The fact that we don’t need to leave Visual Studio and being able to seamlessly use all the APIs we have developed in C# are also a big plus.We have also started to use F# directly in our components to implementing the core logic, while leaving C# to networking tasks. We’ve taking advantage of this language mix to create a dependency injector which recompiles the F# logic at runtime whenever the script changes for quick development iterations, but loads a precompiled .dll when deployed in production. The double nature of F# as a scripting and a compiled language really shines here.F#’s terse syntax made the final code look really similar to the algorithm we wrote at first in formal language. Also, we’ve come to really appreciate the numerous metaprogramming libraries in the F# ecosystem: we particularly like FSharp.Formatting and have started to adopt the literate programming style to integrate as much as possible the code and the documentation and prevent them losing sync.F# makes is easy to spend your time answering interesting questions about the domain and less time answering questions about the language.Jamie DixonCoderCary, North CarolinapermalinkI did a public records request in my town of Cary, North Carolina. The dataset included appx 25,000 traffic stop records for 2012. Using F#, I did some basic statistical calculations to determine that when you are driving is much more important than where you are driving in terms of getting stopped. In fact, the term ‘speed trap’ is a misnomer. In addition, the data supports the notion that there is a monthly quota of tickets being given. You can read the entire analysis hereAlso, I created a KNN classifier using the date/time of the stop and determined that when you get stopped impacts weather you get a verbal warning versus an actual ticket. You can read the entire analysis hereFinally, I did a public records request in the county in which I live: Wake County North Carolina. The dataset included appx 5,000 health inspection scores for 2012. Using F#, I did some basic statistical calculations to determine that there is little variance of when a restaurant gets inspected and their final score. An interesting offshoot is that some particular restaurants scored lower across all inspectors - except when head inspector did the inspection, then they actually scored better. There might an inherent cultural bias by the inspectors. You can read the entire analysis hereF# was great because I spent less time figuring out how to answer my question and more time actually answering the question. The type providers made consuming and integrating hetrogenous datasets a snap and the pattern matching feature reduced the complexity of the code by an order of magnitude (compared to C#). Finally, by using unit tests and immutable data types, I have a bug-resistant code base that can be extended to other scenarios.The power and flexibility of the language lets us ship features faster, with fewer bugs.Marty DillReminder HeropermalinkAll of our back-end data processing and parsing is done in F#. The power and flexibility of the language lets us ship features faster, with fewer bugs. Regressions are virtually nonexistent, and the functional nature of the language makes it easy to ensure that our code is testable.Our first iterations were written in C#, but after switching to F#, we saw a drastic reduction in code size, along with an increase in readability. We’ll definitely be sticking with F# for all of our future projects.With F# I can develop libraries in a fraction of the time.Mauricio SchefferpermalinkI’ve been using F# libraries in otherwise mostly C# / VB.NET Shop web applications. Thanks to the conciseness of F#, I can develop these libraries in a fraction of the time, then I consume them from C# and VB.NET Shop just like any other library.Furthermore, F#’s succint syntax and REPL make it an excellent scripting language and good for data exploration. Thanks to F#’s interoperability the scripts can easily use domains and libraries written in C#. You never need to start from scratch or have to reinvent things.Language features like record types, discriminated unions and type inference also make F# a great language for prototyping. I often prototype new business domains in F# with a few simplified use cases to refine it. The simple syntax allows me to focus on developing the domain and iterate more quickly. Then, when company policy requires it, I translate it to C# which is usually a straightforward process that ends up with many times more lines of code (yet still perfectly maintainable).F# is a powerful language and it is great to do cross platform development with it.Can ErtenCodingday, Vector CodepermalinkVector code is a code generator for iOS and OsX generating code in Objective C, Swift and C#. It works with vector graphics, parses and runs SVG. It is developed with F# on a Mac.F# is a first class language for Mac OsX. Thanks to the open source compiler, Mono and Xamarin, I was able to build a vector drawing, code generator software with F#. It is really amazing experience! The tooling is great and keeps improving. The compiler and the language are basically the same which is fantastic!F# is a powerful language and it is great to do cross platform development with it. I used heavily quotations for generating code in different languages on vector code. Powerful type system and static compilation meant that, once the application compiled without errors and warnings, it will just work and generate complete code. It did, and now at the App Store.F#’s language features not only made it a no-brainer for our project, but allowed us to produce composable, deterministic, and concise code.Stephen KennedyReadifypermalinkI was consulting at engagement for a large multi-national organization that produces financial software where the need to rewrite the component that deals with importing data from various flat-file formats was identified. The component needed to handle complex business logic and user defined mapping.F# was chosen over C# as it provided a large number of language features related to mapping out of the box. Code quotations, discriminated unions, partial application, matching, and active patterns were used extensively. Having objects immutable by default made the logic very deterministic and easy to maintain / follow.I was incredibly happy with the results, particularly with the declarative nature I could use to describe the various mappings, and their relationship with other mappings. This should make it much easier for other developers and the business analysts to figure out what logic is executed when a particular mapping occurs. The core logic saw a big reduction in code size, however, the real saving was in the entity specific mapping logic which saw the lines of code required go down by more than 90 percent!F# is definitely a language I will be recommending to clients going forward.Many languages are evolving to be ready for the future … F# is already there.Alex HardwickeSurgepermalinkWhen starting to work with Microsoft’s “Modern” WinRT apps, I started by taking the obvious route and used C#. This worked, and I wrote good, functional apps. Despite this, modern programming with C# has problems. I encountered these when writing my BitTorrent app, Surge, and eventually rewrote the app using F#. Doing this gave me better performance, fewer bugs and better user satisfaction.Users expect performant software with an always responsive UI, and frequently expect the apps to work with and display large amounts of data. This leads to us, as developers, working with complex data structures, detailed lists, and to use techniques like parallelism and asynchrony. C# has gained support for these over time, through things like Linq and async/await, but these are poor imitations of the original F# implementations and have flaws.Using a modern, functional language that provides first-class support for things we need in modern development is a no-brainer. Immutability-first as a programming technique has fixed more bugs and bad code in my applications than almost anything else I’ve ever looked at, and it’s something C# will never gain.It’s not just C#, either. Many languages are evolving to be ready for the future, adding features that support the needs of a modern programming language, but F# is already there.F# allowed us to mix Domain-Driven Design, Functional Programming and Azure to deliver a high quality web application.Jorge FioranellipermalinkThe site http://amancai.com.au was built combining F#, Domain-Driven Desing, The Official Microsoft ASP.NET Site MVC and Azure. F# was an excellent choice as it allowed us to keep the code lean and very functional while having full access to the BCL, Azure and third party libraries.Using F# Type Providers also helped us to improve our productivity and find problems early during the development process.I personally enjoyed the experience of building the entire system using F#, I believe its “functional-first” approach is excellent for building a wide range of applications.Programming in F# feels like writing out ideas rather than codeMaria GorinovapermalinkWhen I started working on the T2 temporal logic prover, I knew little about termination analysis and formal verification. F# made it easy to dive into these concepts and boosted my productivity by allowing me to write clean, concise, and accurate programs. Its functional nature, clear syntax and type inference is combined with the flexibility to write in an imperative style and use the .NET framework. This combination powerfully bridges the gap between thinking about a concept and implementing it. Programming in F# feels like writing out ideas rather than code.

View Our Customer Reviews

I use Filmora and it is such a foolproof video editing suite! User friendly for novices but has options for the more skilled editors too! The customer service is also excellent! They are efficient and very co-operative!

Justin Miller