Community for F# / F# Community Roundtable

Please RSVP for instructions on how to join the event.

Description

Are you confused about the messaging from Microsoft around F#? Are you wishing a feature would be supported in the language or IDE and not sure why it's not? Join us for our first F# Community Roundtable to discuss what we, the community, can do to advance the use of F#.

Outline

F# Community Roundtable
-----------------------

Attendees
=========

Ryan Riley -> @panesofglass, @c4fsharp
Dave Thomas -> @7sharp9 (muted - eating food :-) )
Onorio Catenacci from Michigan -> @OnorioCatenacci
Cameron Frederick -> @cammcad
Daniel Jackson : @thinkhard, from Texas (apologies my microphone does not exist)
Rick Minerich -> @Rickasaurus (NYC)
Associat0r -> @Associat0r (no mic)
Michael Giagnocavo -Denver - VoIP Software, F# since 2007 or 8 or something like that.
Ramon Snir -> @ramonsnir (Israel)
Phil Trelford -> @ptrelford (London - no mic - on train from London)
Mauricio Scheffer -> @mausch (Buenos Aires, Argentina)
Petr Lepilov -> @plepilov (Boston)
Mike Falanga -> @mfalanga (Cleveland)
Tomas Petricek -> @tomaspetricek (Cambridge, UK)
Dmitri Nesteruk -> @dnesteruk (St. Petersburg Russia)

Major Topics
============

0. Stick to the basics
  a. Most people presenting F# dive too far too fast.
  b. Stick to areas with which more people are familiar.
  c. Depth-first, not breadth-first. Follow the example of SICP and don't try to cover every language feature or syntactic element at the outset.
  d. Follow the Rx team: don't use the word "monad" or other research-y terms unless you know your audience well.
1. Get in front of groups and expose them to F#.
  a. Keep it simple.
  b. Debunk myths such as F# only satisfies certain niches.
  c. Getting people away from their office environment helps.
  d. Host programming contests, e.g. Robocode, with 2-3 person teams is a good strategy.
  e. Exhortations to blog more.
  f. For certain SO questions, offer an answer in F# where F# would provide some advantage over C#.
2. Offer more F# training
  a. Pluralsight is looking for someone to offer F# training.
  b. fpish.net allows you to post free or premium training content.
  c. Fairly good representation on StackOverflow and fpish.net for helping others with questions.
  d. Help out or start a local (or virtual) user group. (List at the bottom.)
  e. 101 examples:
    i. Translate Powershell scripts
    ii. More scripting in general
    iii. Leverage http://fssnip.net/, which also feeds http://tryfsharp.org/
3. Monitor Microsoft Marketing
  a. Pile on the comments when you find F# missing.
  b. Try to drive sales of licenses or subscriptions (Azure) as that speaks the loudest.
  c. Reach out to your local Microsoft representatives and evangelists to talk about F# and help them understand how to introduce it.
5. Missing WinRT Support
  a. Concern that this will stop any real broad adoption of F#.
  b. Use PIT or WebSharper to generate Metro JavaScript applications?
  c. Community-driven compiler refactoring to support WinRT directly?
  d. Use Mono.Cecil to convert .NET F# assemblies to WinRT components?
5. Community extensions:
  a. FSharpx
  b. Dan Mohl's templates
  c. Support for macros - Ramon is working on extending the compiler.
  d. What about offering NuGet packages containing F# assemblies compiled from the source on github?
    i. That would allow us to offer compiler extensions broadly.
    ii. Licensing issues there?
6. Refactoring support for F#
  a. Contact Dmitri with suggestions for ReSharper - he's currently doing this himself.
  b. fsharprefactor.codeplex.com is an option

Full Document Text
==================

Phil> When people get the chance to use F# they typically like it... just need to get it in front of people and have them use it...

Onorio> I agree with you Phil--how do we approach getting it in front of people?  I've done F# koans with people but only the F# people wanted to work through the koans :-(

Koans at F# Tutorials in London earlier in the month worked out really well, even with new peeps. Think you need to get people away from the office, and support them as they go through. Although group is somewhat self selecting.

Phil says -Tricky bit, is that we need to get out to groups that perhaps haven't been exposed to F# yet, say in the C# community, or have been exposed to F# FUD. Fundamentally we have to work outside of the F#/FP community to bring people
In UK, get out to NxtGenUG, DDD (Developer Developer Developer), Canary Wharf User Group, .Net User Group, WP7 & Silverlight UG (London) & of course Skills Matter, and coding dojos/katas, practical programming conferences
Agree with current speaker, KISS, keep it simple when starting, play to your audience, don't expose C# developers to Monads from the start...
Associat0r - just show the C# community stuff like this http://trelford.com/blog/post/LighterCSharp.aspx
Ryan > Are C# programmers really the right target? Not saying they aren't. I've found most are totally fine with their current practices. I think it might indeed take something niche to get them into the language. Maybe a DSL? (Maybe that's what LighterCSharp is?)
Associat0r - that's because they don't know better, F# isn't just a DSL, it's a complete multi-paradigm general purpose language, it even has pointer math and struct representation control.
 
Rick: I've had a lot of luck with contests for learning.  2-3 person teams and try to organize it ahead of time so the experienced members are team leaders.  I've tried a lot of things but this seems to produce the most engagement.

Onorio> Rick--good point about 2-3 people teams.  I was thinking of announcing the contest in one month (say January 2012) and then hold the actual "battle night" the next month.


Phil > Rick - pairing, triples are the win! People can get lost on their own.

Rick: Yeah, you do have to be careful though.  One of my members took over and just did it himself while the others watched.  He ended up derailing two other teams as well.  I sure didn't see that coming.  Overall it was a huge success though.  A team of 3 non-F# users actually finished (with a bit of my help).

Onorio> Rick--did you offer any sort of prize to the winning team?

Rick: Just some Marketing stuff I had from Atalasoft.  More symbolic than anything.  At CUFP I had VS2010 Premium MSDN subscriptions, which was good and bad.  I think it stressed out a lot of the participents to have it high stakes.

Ryan > How do you get to those groups?


Onorio> I had considered trying to sponsor a contest to have people try to write bots for Robocode in F# (as well as other .Net languages) and then have a competition between the bots.

MichaelGG: What about F# Certifications? Might it be a good way to get "business programmers" that are looking to keep their resume fresh with the latest stuff to have an F#-specific cert?

Onorio> MichaelGG--that's an excellent point.  Surprising that Microsoft doesn't have any certification exams for F#.  Bit of a mixed message from MS.
@Onorio, the entire message from MS is mixed. They can't very well recommend F# over C# and VB, even if it's a near superset of functionality.

Rick: I know Intellifactory has been focused on this.  I'm not sure how far they've gotten though.
@Rick focused on creating a certification?
Well, training classes with a certificate.  I think pluralsight is looking to do classes too, I was going to do that at one point but couldn't make the time. I think they're still looking for an F# expert.
MichaelGG: I can't imagine any company you'd want to work for caring about certifications, but it seems to be one of those things folks do for ... enterprisey? ... jobs?

Onorio> @Rick--pluralsight is trying to put together F# classes.

Questions:
1. Onorio - One thing that I found a bit annoying--that one diagram from Build which had C# and VB.Net but not F#. (Tried my mic but it doesn't appear to work.)




2. Rick Minerich - How do we actively monitor Microsoft Marketing to ensure F# is well represented?

Excellent question - drive licenses or subscriptions?
Pile on the comments when F# is not represented in blog posts or C9.



3. Should we "help out" the F# team and implement new features, and then submit the code?
Rick: I'd love to see more work done outside Microsoft with the F# compiler.  One thing I've thought about is that if we could build a macro system as a preprocessor it would allow us to use the MS compiler but also provide robust extensions.
Ramon Snir: Maybe this is a good time to present the macro system I've wrote. Still new, but seems to have potential. I've sent it to some people, but mainly kept it private until now.
Rick: That's very interesting Ramon.  What is the Macro system based on?
Daniel: Ramon, I'd like to see that macro system

Ramon: I added a compiler feature for macro usage, you can type macro-name {{free-text code}} and on compile time the pre-compiled function (from a different assembly) called macro-name is called and asked to give code to replace the <macro-name {{free-text code}}>.
Rick: Ahh, so it's like the C Macro system, non-hygenic but still useful.
MichaelGG: So the macro called is passed an AST or something like that?
Ramon: I have considered using Quotations, but I think it is easy enough to write a quotation printer, and for simple macros I've found it easy just to work with text. Clarification: right now it is text-based.

Rick: I've been looking at MacroML and MetaOCaml as examples, and I know a few people in the ICFP community that might be interested in helping.

@Ramon from MGG :P - Text based - is it something that you could plug in via type providers in a limited fashion? like type Bla = MacroProvider<Lots of data here>?
Ramon: Yes - but you couldn't have in-line macros (like <? {{xy.x}} 4 5>), you'd have to predefine all usage of the macros.
MGG: Right. So, where's the .patch file? :)
Ramon: You compile your macros as function in module (both functions and modules marked with attributes) and then reference them in a special way (-m, instead of -r). The compiler searches the assemlies and enables the macros. It is also possible to macros to create new macros (so you don't actually have to compile two assemblies).
@Ramon: Have you emailed the F# team?
Ramon: there were plans, but a formal mail wasn't sent yet.
Ramon: I have a mic, need to find how to plug it.
Rick: That's a really cool way to do it actually, and fits with the rest of the F# design well.
Ramon: If anyone will be interested, I have found my mic.

4. Dmitri Nesteruk - is there enough interest out there for F# support in ReSharper?
Mauricio: definitely, though it would require a very different set of refactoring operations. << can you give a few examples?
For example: one operation could be "refactor to pointfree", or the inverse "expand to pointful". Haskell's lambdabot does pointfree refactoring.
Dmitri: Type inferencing plays a part here b/c a plug-in basically needs to implement it in order to decorate types.
There's also a project on codeplex working on implementing refactoring operations for F# / VS2010: http://fsharprefactor.codeplex.com/
Yes, but refactorings are just a part of the overall service. You need lexer, parser, resolve and type inference, and then you need daemons, analyzers, quick-fixes, context actions, yes-refactorings, structural search & replace, and a million other things.
Mauricio: hehe, I'm just talking about high-level features here :). F# refactor already seems to have a lexer and parser.
Rick: It would be great to have a meeting with the F# Refactor creator to help us get up to speed on how it works.  It needs improvement and I'd love to jump in and make changes, but I don't want to spend the time learning it's source code base from scratch without any guidance.
Dave Thomas: Even simple support such as find all usages would help.  More code navigation than refactoring.
Dmitri: IIRC, fsharprefactor Lexer&Parser are those that are included in the F# compiler(since it's open-source), right?
@Dave Thomas: there is FSharpJump, quite immature but a good start.
Dave T: I think I have tried that but it didnt like empty spaces at the start of a fs file.  Will have to try again...

Opinions:

1. Daniel Jackson -  I think one of the most counter-productive things is for F# users to publicly deride Microsoft for their marketing message.  I think it’s a turn-off for new comers to do that. They are in an interesting predicament with competing languages in the same tool chain.  If you look at http://therighttool.hammerprinciple.com/items/f  the #4 “ranked low in” has to do with the language being around for a long time…  Another issue has to do with F# tooling.  I believe and really want to emphasize it would be most effective for the community to create tools that simply aren’t available from the other language projects as opposed to putting ourselves in the strategic position of always duplicating functionality. (I really like FractureIO and Iterees – Dave Thomas’ project and I think he has some very interesting ideas for visualization and tooling in that area.   I also think that there is room for creating designers for, say Computation Expressions)
MGG: Agree with you Daniel. Don Syme and others have done an amazing amount of political work in addition to the technical work in getting Microsoft to accept generics, F# and so on...
Dave T: There is a bit more work to do on fracture but we are aiming for a push to cloud based network agents.  I was hoping to get some sort of cloud adoption using mono with Amazon cloud etc too.

Associat0r - Full First-Class Metro Support out of the box and should be marketed as a general-purpose language
          Petr - totally agree. If MS will continue position F# as 'niche' lang - it will remain 'niche'

MichaelGG - Is it accurate that metro support consists mainly of porting the F# core lib to WinRT's BCL?
 - So it's different IL? A different CLR?
Dave T - I think the c#/VB compilers are having work done on them but not the F# one
Petr - yes there should be F# portable library
Rick: You certainly make a good point.  It seems like criticisms should be kept private with the F# team and others at MS.
Phil: Would be nice to have Metro support for HTML 5 apps via Pit...
MGG: Well I'd just love to find some solid information on what "Metro support is". If it's like Silverlight then it's still a normal .NET assembly. But if it has other magic...
Rick: a little bird told me that WinRT requires changes to the import/export logic in the compiler.  From what I understand WinRT is really a COM API.
Petr Yes, there are some changes in metadata format
Rick: Would be nice if someone adapted Cicel to convert from native .NET to WinRT
MichaelGG: Is there a document on this showing why such a step was needed?

 tom mallard>Consider that F#'s events are first-class values so you can send them info, a concept is "intelligent events", it's a new way to consider event driven work and should be able to solve the MVVM hassles with events. MS doesn't have a clue how powerful F# is here in Redmond, it's hot in the UK ... also found that I can paste VB into F# and get it running pretty fast, great for avoiding legacy traps.
Syntax similarity with VB (and also a bit with C#) is a great advantage. Yup, substitute Dim with let ... objects are harder but straightforward. C# is way harder seems to me for conversion. I want to use it for complex debugging nightmares in C# by lazy coders that don't have a clue!! ... but it's hard to be allowed to use it on large projects because nobody else knows it so they say it's not maintainable.
Maybe we can create a tool for auto-conversion, shouldn't be too hard.<- Thought about it, for VB shops it's a winner ...
How many people use Tuples daily?? ... very handy for federation, the built-in data structures like list especially handy ...
Dave T: me! <- right on!!
Using stackoverflow ... it'd be instructional to answer a C# in F#, then show how to use C# to do the same thing!!
OK, I did a small program that computed every major part of a cyclist, their frame, h-bars, wheels and all then constrained it with Eddie Merckx's hour record to predict performance for cyclists that took 400-lines of F# & 400-lines of VB ... no way I could've done it with either in less code.

Onorio> One thing regarding promoting F#--we need to recognize there's a lot of issues with FP beyond simply learning new syntax.  In order to be effective with F# (or Haskell or whatever) it's a big change in thinking as well as learning new syntax. [took me 6-months to get how to think in a declarative-functional style, still find it hard to author C# this way]
@Onorio - yea. Until your mind clicks and "gets" functional, it all looks hopelessly confusing.
Onorio> _Looks_ hopelessly confusing?  It _is_ confusing :-P
mallard>took me about 6-months to get it ... can recommend Petricek & Skeet's "Real-World Functional Programming with examples in F# and C#", isbn1-933988-92-4

Rick: This is so true.  I've seen several well respected C# MVPs try to write C# code in F# and fail miserably.  We need a better path for learning than "Stuff all the features into your head and make something".  Sure, it worked for us, but we're a small %.
Sam: the best example of people picking up F# who didn't use it before, is amongst my ex-Fortran and Lisp friends. For some reason, they got it faster than many other people I know.
Ramon: Aren't those people usually more academic, thus more FP-oriented?
Sam: yeah, I guess that's more indicative of who my friends are than anything else. Yet - I can see how you could do a branch-evolve from something like APL to F#/Haskell/... etc. for purposes of education (i.e., CSci courses)



MichaelGG: OK Rick, on that subject, is it feasible to teach F# "from the bottom up"? That is, explain the basics and let the higher level functionality emerge? F#'s tons of stdlib operators looks really confusing, but once you realise none of them are "built-in", then you see that F# is probably even simpler than C#.
Rick: I think the best teaching method is DFS not BFS.  Find a small subset of features you can do something great with and then show how to build something with them.  I had a lot of success teaching computation expressions to a room full of C# users by starting with 3rd grade math (associativity/commutativity), then applying it to types, then with fold, then with CEs.  All advanced topics, but it got great reviews and I think a good proportion of the audience got it.
Rick: Most F# intro talks I've seen are BFS though, and never get past the syntax and features.  They never get to anything compelling.
Dave T: Along the lines of some of the node.js tutorials would be of benefit, showing the power of async workflows in a network envronment.
Onorio> @Rick--100% agree on that.  We need to put together some sort of F# demo that really shows something compelling.

Onorio> Actually @Rick, that was part of what lead me to the idea of trying to do a robocode contest--pit the C# guys vs. the F# guys to see who can write a better bot but also discuss how the bot is built in the two languages.

Rick: That sounds like fun, and could be carefully contrived to be amenable to a functional approach ;)

MichaelGG: Do folks think that introducing F# as a "super C#" worthwhile? That is, even downplay the FP aspect, and just focus on less code, type inference, etc.? I've written heavily pointer-based code (networking stuff), and F# works just great there. It's nothing super-special, but it's still more concise than C#.

Assocat0r >  The F# Wikipedia page could use some overhaul too, showing OOP and imperative programming in addition to FP, also a mention that Python was an influence like Don Syme said in some interviews.

Tomas P> In a course we did with Phil in London, we focused quite a lot on doing realistic real-world examples and hoping that people would pick the syntax up along the way. It worked reasonably well (people were quite interested in the topic), but some people found the syntax a bit challenging.... I think it is necessary to combine both, but perhaps use only the simple syntax where possible.
Tomas P> For some C# programmers, the significant whitespace and the syntax of pattern matching was a bit confusing initially...

Rick: That is a great approach.  I personally stuggle with live coding, wish I was better at it :).

Associat0r > the thing is you don't need to use FP to be effective in F# isn't like Haskell at all, it shouldn't be compared to it.
Daniel: Associat0r, F# really is a general purpose language, but I think to convince organizations to use it, you have to masquerade it as a niche language so they have a compelling reason to adopt it.  I think anyone using it seriously would find that they prefer using it over the alternatives.
Dave T: @Daniel thats the way I see F# too, just a general good server side language.  
Associat0r > F# reduces boilerplate and accidental complexity even if you don't do FP with it, the class ctors with autoproperties with initial values and type inference are an excellent example, see it like a statically typed Python.
Onorio> Excellent point Associat0r.
Daniel> @DaveT, thats why I really think we need tooling and designers available from F# projects that absolutely are not the same as those available from other language projects.  When you show F# to someone from the angle that they are already adept and able to do those things from C#, then they have no compelling reason to invest the time to switch
Dave T> @Daniel, I planned on buiding a pipeline visualiser for Fracture, thats helpful for debugging multi-threaded apps that lack stack trace etc.
Mauricio> I fully agree with associat0r too, I think we need more blog posts about F# as a scripting language or as an imperative language.
Daniel> @DaveT, I heard about that a couple weeks ago and I'm looking forward to it.  Another example of what I'm talking about re F# tooling is Tomasp's Quotation Visualizer.... It's really cool, but it's also really "off on the side"... it should be stuff that is in the VS tooling.
Dave T> @Daniel if you have comment on usage of the fracture lib, please post any suggestions, we are doing a fair bit of work on the branches at the moment.
@DaveT: I want distributed pipelets out of the box
@associat0r : do you have a blog?
Associat0r > not yet.
@associat0r : well, now's a good time to start blogging! :) I bet you have a lot of interesting insights to share.
Daniel has a blog, but its mostly dormant.  I believe the question was directed at Associat0r
Mauricio> sorry, yes, I was addressing associat0r.
Mauricio> honestly, I think EVERYONE here should blog about F# :)
Dave T: its finding time too :-)  Maybe a performance profiling one soon.

@rick, I don't use fpish very much... i prefer aggregators like http://www.fpound.net
Who manages FPound? Why doesn't it collect from FPish?
Daniel manages fpound along with Dan Finch, right now it runs on a drupal backend but we will port it to the Pound library ... at that time I suppose we can discuss collecting from FPish
I'm not 100% sure, but I think FPish has an RSS feed for recent topics.
Adam - yes, most of the stuff on FPish can be consumed via RSS/Atom - blogs, topics, events, etc.
Onorio> Adam--I need to start writing up blog entries on F#--same problem as others--rather be writing code than writing about code :-)
Adam> @onorio - absolutely, the FPish blog support is getting quite good

Onorio> That's an interesting thought--converting PS scripts to F# scripting.  I did this with some PS scripts I'd written but they're really pretty specific to my work here.
Rick: fpound makes for a great F# landing page.  Always good to make sure you don't miss an important blog post.
Onorio> @Rick Didn't know about Fpound--glad you mentioned it.
@onorio spread the word :)

Ryan > I would still like to host a virtual conference for learning more about practical uses of functional programming. Is anyone interested in presenting? What topics would best highlight the strengths of F#? ryan.riley@panesofglass.org
Ramon: I had a talk about F# for a class of very smart highschool physicists, and they found it really impressive (especially with the LaTeX macro :) ).
Rick: I'd be interested for sure.  I've been looking for an excuse to talk about my work on Barb with an audience that might actually care :).
Onorio> Ryan, I don't want to volunteer someone who's not here but . . . :-) Daniel Mohl did a great talk for us on WP7 apps with F#.  You might ask him if he'd be willing to give that talk again.
Dmitri> I could demo my app (MathSharp), which is a commercial app written partly in F#.
Ramon: I'm not sure I'm ready to present, but I'd love to help out with other details.

Rick: Question: Has anyone used the latest F# 2.0 compiler drop for application integration/scripting?  It's supposed to have the tryfsharp stuff inside.
Onorio> I've  been meaning to hack together a quick fsx to elevate my privileges for certain tasks.  I'm one of the few developers in the world who typically runs from a limited user account. :-)

I thought Pit did something with it?
Ramon: is this what you meant: http://pitfw.posterous.com/ ?

Rick: The expr compiler in the PowerPack generates godawful slow IL.  So, it's not really a good solution for DSL building.  I do love the idea of application accessable in language DSLs written in F# though.

* Just a side note, if you speak and find yourself near NYC please let me know.  We always need F# speakers out here. -Rick :)

** Can we cover some tooling topics?  There is a lot of fuss over Metro tooling, but what about ideas for tooling in the vein of Tomas Petricek's quotation visualizer, or other tools/designers that aren't available from the other .NET languages?


------------------------------
FPish/HubFS Users
------------------------------
Ramon Snir
Petr Lepilov (not very active :) )
Loic Denuziere
Joel Bjornson
Mauricio Scheffer (not very active)
Associat0r
Adam Granicz
Onorio Catenacci
Dave Thomas
Rick Minerich
Ryan Riley

Note: Why do they need my Phone #, Address, Zip code... I think this prevents people from registering.
Adam - good point, we will relax that - it's mostly for historical reasons from back when FPish was more about registering for events and courses

For some reason, fpish does not remember me when I log in... is this just me?
Ramon: This bug was fixed a while ago. There is a bug with the "last login date", but it sure does remember me.

--------------
SO users
--------------
Ramon Snir
Tomas P
Daniel ?
kvb (Keith)
Brian (F# team)
Rick Minerich
Sam [Felton]
Mauricio Scheffer
Paks (Cesar Mendoza)
Onorio Catenacci
Dave Thomas (7sharp9)(not very active)
Ryan Riley (not very active)

RE: answering C# questions
TomasP> I don't generally try to answer C# questions in F#, but it is sometimes possible to show functional solution in C# (even if it looks really crazy) and mention that you can use F# to make it nicer :-)
Dave T: I dont even look for C# questions...
Mauricio> I don't look for C# questions either... they get answered too fast. But maybe it would be interesting to see what happens if someones answers with a functional-style question (one that's not trivial of course).
Tom M: Good book for this idea: Petricek & Skeet's "Real-World Functional Programming with examples in F# and C#", isbn1-933988-92-4

I believe there is MSDN forum for F# but it is not active so maybe it's worth to boost activity there because it is definetly monitored by MS
There is, it's pretty dead.

-------------------
User Groups
-------------------
 * Community for F#
 * F#unctional Londoners (SkillsMatter)
 * New York F# UG
 * MIGANG F# Special Interest Group
 * Cleveland F# (about 10-12)
 * NewEngland F# UG
 * ??...

I should start one here in Redmond!! <mallard>

learn powershell through scripts!   http://technet.microsoft.com/en-us/scriptcenter/dd793612
It would be nice to see more scripting snippets on www.fssnip.net :-)  hoepfuly, I'll have more time to make categorization better & add some search   (Tomas P.)
@Tomas: yes, please!
@cammcad ( Import csv files into sql server )
http://bit.ly/s3OnVS -> powershell

Onorio> @Ryan Thanks for kind of leading the meeting!  See you either in December or January :-

NYC F# Meetup (with videos):  meetup.com/nyc-fsharp/

Ryan Riley (ryan.riley)

113.2k
Zone AdminGroup AdminAuthorDeveloper

Ryan is an Engineer at Tachyus and leads the Community for F#.

Tweets

Skills

Experience

Senior Lead Consultant, App Dev Corporate Practice Lead
Catapult Systems (Houston, TX)
2012 - 2014

Engineer
Tachyus (Houston, TX)
2014 - Present

F# and JavaScript engineer

Education

M.S. Management Information Systems
Texas A&M University
2001 - 2002

B.B.A. Accounting
Texas A&M University
1997 - 2001

Ryan's upcoming trainings

No events

Ryan's past online trainings

Ryan's blog posts

0
comment
on 10/24/2016 10:14 PM
タバコをやめるために禁煙に挑戦している人は多いですが、無事に成功できた人もあれば、途中で挫折してしまう人もあります。 電子タバコなどのグッズを利用しても、物足りなさを感じている人も多いのではないでしょうか。 禁煙に成功で...続きを読む 投稿ニコチン依存と効果的な禁煙の手段は禁煙を開始して体を健康に!の最初に登場しました。
.
0
comment
on 9/23/2016 6:51 PM
世界保健機関は毎年5月31日を世界禁煙デーとしています。最近は喫煙できるスペースが減り、特に公共の施設内では禁煙のところが多くなっています。昔はオフィス内でもデスクでタバコを吸うのが当たり前でしたし、役所などでも休憩スペ...続きを読む 投稿世界禁煙デーの認知により施設内では禁煙が当たり前には禁煙を開始して体を健康に!の最初に登場しました。
.
0
comment
on 8/12/2016 10:22 PM
家に喫煙者がいると、子どもにまで受動喫煙の被害が出る可能性があります。 例えば、気管支炎や肺炎などの呼吸器感染症になったり、喘息を起こしたり悪化させてしまうこともあります。 喫煙者本人と同様に、子どもに喘鳴、咳、息切れ、...続きを読む 投稿子どもの健康を守るためにも禁煙・胃がんのリスクは禁煙を開始して体を健康に!の最初に登場しました。
.
0
comment
on 7/12/2016 9:04 PM
禁煙を始めて2か月が過ぎると、禁断症状も抜け様々な体調の変化を感じる人が多くなっていくと言われています。発がん性があるタールや血流悪化の原因にもなるニコチンなど、タバコにはたくさんの毒物が含まれていますから、それを止める...続きを読む 投稿2か月の禁煙で息が爽やかになる等のメリットは禁煙を開始して体を健康に!の最初に登場しました。
.
0
comment
on 5/29/2016 5:03 PM
現代社会では、禁煙が強く叫ばれています。 タバコを吸うことでもたらされる健康被害は、本人のみならず、周囲の人も受動喫煙の形で及んでいくのですから、まさにゆゆしき事態です。 タバコの煙には400種以上の化学物質が含まれてい...続きを読む 投稿タバコ代のランニングコストは高い、禁煙が得策は禁煙を開始して体を健康に!の最初に登場しました。
.

Ryan's popular questions

IntelliFactory Offices Copyright (c) 2011-2012 IntelliFactory. All rights reserved.
Home | Products | Consulting | Trainings | Blogs | Jobs | Contact Us
Built with WebSharper