[{"data":1,"prerenderedAt":416},["ShallowReactive",2],{"article-installing-node-js-on-a-mac":3},{"article":4,"tags":146,"previous":161,"next":321},{"id":5,"title":6,"author":7,"body":8,"createdAt":135,"description":136,"extension":137,"img":90,"meta":138,"navigation":139,"path":140,"seo":141,"stem":142,"tags":143,"updatedAt":135,"__hash__":145},"articles\u002Farticles\u002Finstalling-node-js-on-a-mac.md","Installing Node.js on a Mac","[object Object]",{"type":9,"value":10,"toc":129},"minimark",[11,16,20,24,78,93,125],[12,13,15],"h3",{"id":14},"setting-up-nodejs-on-mac-for-cordovaphonegap-development","Setting Up Node.js on Mac for Cordova\u002FPhonegap Development",[17,18,19],"p",{},"I recently found myself exploring new Cordova\u002FPhonegap options within Visual Studio 2015. As part of the setup process, I needed to install Node.js. This blog post will guide you through the installation process and set the stage for the next tutorial, where we'll get a Hybrid\u002FJavaScript application running on the iOS simulator.",[12,21,23],{"id":22},"installing-nodejs-with-homebrew","Installing Node.js with Homebrew",[25,26,27,31],"ol",{},[28,29,30],"li",{},"Open Terminal from the Finder application.",[28,32,33,34,41,42],{},"Install ",[35,36,40],"a",{"href":37,"rel":38},"http:\u002F\u002Fbrew.sh\u002F",[39],"nofollow","Homebrew"," using the following command:",[43,44,49],"pre",{"className":45,"code":46,"language":47,"meta":48,"style":48},"language-bash shiki shiki-themes github-light github-dark","ruby -e \"$(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FHomebrew\u002Finstall\u002Fmaster\u002Finstall)\"\n","bash","",[50,51,52],"code",{"__ignoreMap":48},[53,54,57,61,65,69,72,75],"span",{"class":55,"line":56},"line",1,[53,58,60],{"class":59},"sScJk","ruby",[53,62,64],{"class":63},"sj4cs"," -e",[53,66,68],{"class":67},"sZZnC"," \"$(",[53,70,71],{"class":59},"curl",[53,73,74],{"class":63}," -fsSL",[53,76,77],{"class":67}," https:\u002F\u002Fraw.githubusercontent.com\u002FHomebrew\u002Finstall\u002Fmaster\u002Finstall)\"\n",[17,79,80],{},[35,81,84],{"href":82,"target":83},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-593d533b5cf5_e4a7-image_6.png","_blank",[85,86],"img",{"title":87,"style":88,"border":89,"alt":87,"src":90,"width":91,"height":92},"image","border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px",0,"\u002Farticles\u002Fimages\u002Fwindows-live-writer-593d533b5cf5_e4a7-image_thumb_2.png",430,165,[25,94,95,114],{},[28,96,97,98],{},"Once Homebrew is installed, you can easily get Node.js by typing the following command in the Terminal window:",[43,99,101],{"className":45,"code":100,"language":47,"meta":48,"style":48},"brew install node\n",[50,102,103],{"__ignoreMap":48},[53,104,105,108,111],{"class":55,"line":56},[53,106,107],{"class":59},"brew",[53,109,110],{"class":67}," install",[53,112,113],{"class":67}," node\n",[28,115,116,117,120,121],{},"Verify Your Node.js Installation",[118,119],"br",{},"For information about running Node.js, you can check out this How To Node resource: ",[35,122,123],{"href":123,"rel":124},"http:\u002F\u002Fhowtonode.org\u002Fhello-node",[39],[126,127,128],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":48,"searchDepth":130,"depth":130,"links":131},2,[132,134],{"id":14,"depth":133,"text":15},3,{"id":22,"depth":133,"text":23},"2015-08-12","Learn how to set up Node.js on your Mac for Cordova\u002FPhonegap development. This step-by-step guide covers the installation process using Homebrew, a package manager for macOS. Discover why Node.js is essential for building Hybrid\u002FJavaScript applications within Visual Studio 2015, and follow along as we install Node.js and prepare for the next tutorial, where we'll get a Hybrid\u002FJavaScript application running on the iOS simulator. Whether you're new to Node.js or looking for a quick refresher, this article provides clear instructions and valuable resources for a smooth setup. Start your journey into Node.js development on Mac today!","md",{},true,"\u002Farticles\u002Finstalling-node-js-on-a-mac",{"title":6,"description":136},"articles\u002Finstalling-node-js-on-a-mac",[144],"apple","BABFo9yiTOA-YMMm5pqJtUbkH8f9uC5sevDrF7-CxwM",[147],{"id":148,"title":149,"body":150,"description":154,"extension":137,"img":155,"meta":156,"name":144,"navigation":139,"path":157,"seo":158,"stem":159,"__hash__":160},"tags\u002Ftags\u002Fapple.md","Apple",{"type":9,"value":151,"toc":152},[],{"title":48,"searchDepth":130,"depth":130,"links":153},[],"Apple\u002FIOS","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1598313183973-4effcded8d5e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=675&q=80",{},"\u002Ftags\u002Fapple",{"description":154},"tags\u002Fapple","0Exim4CeOLkVQz9UtqDk0o6ShWgVpP1WWmim9P8S3AY",{"id":162,"title":163,"author":7,"body":164,"createdAt":312,"description":313,"extension":137,"img":198,"meta":314,"navigation":139,"path":315,"seo":316,"stem":317,"tags":318,"updatedAt":312,"__hash__":320},"articles\u002Farticles\u002Fvisual-studio-2015-installing-remote-agent-on-a-mac.md","Visual Studio 2015–Installing Remote Agent on a Mac",{"type":9,"value":165,"toc":310},[166,169,188,201,204,214,227,239,294],[17,167,168],{},"  Why….you need to install Remote Agent on a Mac in order to build\u002Fdeploy Visual Studio Apps that are targeted to the IOS environment.",[170,171,172,175,178,181],"ul",{},[28,173,174],{},"Install Node on a Mac (see prior post)",[28,176,177],{},"To download and install remote agent, from a Terminal app on Mac type",[28,179,180],{},"sudo npm install –g npm  * sudo npm install –g remotebuild",[28,182,183,184],{},"sudo npm install –g ios ",[35,185,187],{"href":186},"mailto:–sim@3.1.1","–sim@3.1.1",[189,190,191,192],"blockquote",{}," ",[35,193,195],{"href":194},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-visual-studio-2015install-remote-agent-o_e784-image_2.png",[85,196],{"title":87,"style":197,"border":89,"alt":87,"src":198,"width":199,"height":200},"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: \n0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px","\u002Farticles\u002Fimages\u002Fwindows-live-writer-visual-studio-2015install-remote-agent-o_e784-image_thumb.png",448,241,[17,202,203],{},"The first command updates npm, the second command installs the remote agent, and the third command is only required if you will be using the iOS Simulator\nfrom Visual Studio.",[17,205,206,207,210,213],{},"Reference ",[35,208],{"title":209,"href":209},"https:\u002F\u002Fmsdn.microsoft.com\u002Flibrary\u002Fdn757054.aspx#ios",[35,211,209],{"href":209,"rel":212},[39],"    * To start the remote agent, from the Terminal app on your Mac type: remotebuild",[170,215,216,224],{},[28,217,218,219,223],{},"this will start the agent with the default build directory ~\u002F.taco_home\u002Fremote_builds\u002Ftaco-remote\u002Fbuilds  * additional configurations\u002Foptions for the agent are described ",[35,220,222],{"href":221,"target":83},"https:\u002F\u002Fmsdn.microsoft.com\u002Flibrary\u002Fdn771551%20(v=vs.140).aspx#IosConfig","Configure the remote agent"," * The first time you start the agent, you will be provided with\nthe required information to configure the agent in Visual Studio, including the host, the port, and the security PIN.",[28,225,226],{},"In fact, the first time\nI ran remote build, it asked me about installing Homebrew – I said continue, then I got a notification that Homebrew is already installed,\nI re-ran this time saying I didn’t want to continue with the install for Homebrew",[17,228,229,238],{},[35,230,232],{"href":231,"target":83},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-visual-studio-2015install-remote-agent-o_e784-image_4.png",[85,233],{"title":87,"style":234,"border":89,"alt":87,"src":235,"width":236,"height":237},"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px","\u002Farticles\u002Fimages\u002Fwindows-live-writer-visual-studio-2015install-remote-agent-o_e784-image_thumb_1.png",344,136,"  ",[170,240,241,258,283,286],{},[28,242,243,244,191,246,256],{},"For some reason, I did not get a security PIN for my Visual Studio configuration.  At this point, I ran the remotebuild –secure false (this will disable secure mode and enable http-based connections, choosing False as the Secure mode. ",[189,245],{},[189,247,191,248],{},[35,249,251],{"href":250,"target":83},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-visual-studio-2015install-remote-agent-o_e784-image_6.png",[85,252],{"title":87,"style":234,"border":89,"alt":87,"src":253,"width":254,"height":255},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-visual-studio-2015install-remote-agent-o_e784-image_thumb_2.png",333,293,[118,257],{},[28,259,260,261,238,281],{},"Stopping the agent on the mac, Ctrl+C  * Running my first IOS Cordova application (from Visual Studio 2015) ",[189,262,263,264,272,273],{},"   \n",[35,265,267],{"href":266,"target":83},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-visual-studio-2015install-remote-agent-o_e784-image_8.png",[85,268],{"title":87,"style":234,"border":89,"alt":87,"src":269,"width":270,"height":271},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-visual-studio-2015install-remote-agent-o_e784-image_thumb_3.png",195,357," ",[35,274,276],{"href":275,"target":83},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-visual-studio-2015install-remote-agent-o_e784-image_10.png",[85,277],{"title":87,"style":234,"border":89,"alt":87,"src":278,"width":279,"height":280},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-visual-studio-2015install-remote-agent-o_e784-image_thumb_4.png",192,352,[118,282],{},[28,284,285],{},"While this worked, I wanted to revisit the issue about my missing Security PIN",[28,287,288,289,293],{},"To ",[35,290,292],{"href":291,"target":83},"https:\u002F\u002Fmsdn.microsoft.com\u002Flibrary\u002Fdn771551%20(v=vs.140).aspx#IosPin","generate"," a new security PIN, type remote build generateClientCert  * Doing this I was able to get my Security PIN, enter it within Visual Studio and all things",[17,295,296,304,305,307],{},[35,297,299],{"href":298},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-visual-studio-2015install-remote-agent-o_e784-image_12.png",[85,300],{"title":87,"style":234,"border":89,"alt":87,"src":301,"width":302,"height":303},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-visual-studio-2015install-remote-agent-o_e784-image_thumb_5.png",404,268,"         ",[35,306],{"title":209,"href":209},[35,308,209],{"href":209,"rel":309},[39],{"title":48,"searchDepth":130,"depth":130,"links":311},[],"2015-08-12T10:48:58.1300000-04:00",null,{},"\u002Farticles\u002Fvisual-studio-2015-installing-remote-agent-on-a-mac",{"title":163,"description":313},"articles\u002Fvisual-studio-2015-installing-remote-agent-on-a-mac",[319],"visualstudio","NQN3PYuMPvYD-UZPG66fDRCJTeDwodVXQmx5fbhj0pE",{"id":322,"title":323,"author":7,"body":324,"createdAt":407,"description":408,"extension":137,"img":401,"meta":409,"navigation":139,"path":410,"seo":411,"stem":412,"tags":413,"updatedAt":407,"__hash__":415},"articles\u002Farticles\u002Fvarchar-vs-nvarchar.md","Varchar vs NVarchar",{"type":9,"value":325,"toc":405},[326,344,353,375],[17,327,328,329,331,332,336,337,340,341,343],{},"So let’s talk about this to better understand some differences and benefits of using each of these data types.",[118,330],{},"\nNVarchar – the ‘N’ in varchar means u",[333,334,335],"strong",{},"N","icode",[333,338,339],{},".  ","The column can store any Unicode data.  The column is a varchar that supports two-byte\ncharacters.  The most common use for this sort of thing is to store character data that is a mixture of English and non-English symbols.",[118,342],{},"\nVarchar – is an abbreviation for variable-length character string. ",[17,345,346,347,349,352],{},"It’s a string of text characters that can be as large as the page size for the database table holding the column.  The size for a table page is 8,196 bytes, and no one\nrow in a table can be more than 8060 characters.  This in turn limits the maximum size of a varchar to 8000 bytes.",[118,348],{},[333,350,351],{},"So we used the term unicode data",".  What does this mean?  Computers store letters and other characters by assigning a number for each one. ",[17,354,355,356,359,360,362,365,366,368,371,372,374],{},"Before unicode was invented there were hundreds of different encoding systems for assigning these numbers. No single encoding could contain enough characters: for example,\nthe European Union alone requires several different encodings to cover all its languages. Even for a single language like English no single encoding was adequate for all the\nletters, punctuation, and technical symbols in common use. These encoding systems also conflict with another, for instance two encodings could use the same number for two\ndifferent characters. ",[333,357,358],{},"Unicode ","to the rescue.  Unicode provides a unique number for every character, no matter what the platform, no matter what the program,\nno matter what the language.  The unicode standard has widespread adoption across systems, platforms, languages etc.  It solves most of the encoding issues.",[118,361],{},[333,363,364],{},"The primary difference between these two column types is how they are stored.","  Varchar is stored as 8-bit data.  Nvarchar strings are stored in the\ndatabase as UTF-16, 16 bits or two bytes per character, and converted on output (typically UTF-8).  That said, Nvarchar strings have the same length restrictions as varchar\n8000 bytes.  Since Nvarchar use two bytes instead of one nvarchar can only hold 4000 characters maximum.",[118,367],{},[333,369,370],{},"What is UTF-8 and UTF-16?","   UTF stands for Unicode Transformation Format.  It is a family of standards for encoding the Unicode character set into\nits equivalent binary value.  UTF was developed so that users have a standardized means of encoding the characters with the minimal amount of space.UTF-8 and UTF 16 are\nonly two of the established standards for encoding.  The main advantage of UTF-8 is that it is backwards compatible with ASCII. The ASCII character set is fixed width and\nonly uses one byte.  When encoding a file that uses only ASCII characters with UTF-8, the resulting file would be identical to a file encoded with ASCII. This is not\npossible when using UTF-16 as each character would be two bytes long.",[118,373],{},"\nOkay, we have covered a few technical topics here. ",[17,376,377,378,381,382,385,386,388,389,392,393,395],{},"So in the end you can store more string data in a varchar than nvarchar fields, however if you are working with multiple cultures, languages etc.\nyou will ",[333,379,380],{},"NEED ","to store those character sets in fields that are of type ",[333,383,384],{},"NVARCHAR",".  Due to the widespread usage of web applications\naround the globe I believe you will rarely go wrong by selecting\u002Fusing nvarchar over varchar. If you are concerned about storage space you can use a combination of field\ntypes (using nvarchar for user-entered data and varchar for system generated) but this may just add complexity and one day just be a limitation\u002Fhurdle you will need to\novercome in the future when globalizing your application.",[118,387],{},"\nJust use ",[333,390,391],{},"nvarchar"," and you will be safe.",[118,394],{},[35,396,398],{"href":397},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-varchar-vs-nvarchar_11973-choice2_4.png",[85,399],{"style":400,"src":401,"border":89,"alt":402,"title":402,"width":403,"height":404},"background-image: none; padding-top: 0px; padding-left: 0px; \ndisplay: inline; padding-right: 0px; border: 0px;","\u002Farticles\u002Fimages\u002Fwindows-live-writer-varchar-vs-nvarchar_11973-choice2_thumb_1.png","choice2",240,143,{"title":48,"searchDepth":130,"depth":130,"links":406},[],"2015-06-26T09:36:26.9300000-04:00","Let’s talk about this to better understand some differences and benefits of using each.",{},"\u002Farticles\u002Fvarchar-vs-nvarchar",{"title":323,"description":408},"articles\u002Fvarchar-vs-nvarchar",[414],"sqlserver","SXeJ9MvXofV764d8HuiIQXhx1ejjfpqsDzHGIdBnfls",1781574761308]