cs50 appliance 2014
TRANSCRIPT
-
CS50Appliance2014CS50Manual(/)
TableofContentsNOTICECheatsheetNoticeInstructions
HowtoInstallApplianceHowtoUpdateApplianceHowtoUseAppliance
HowtoChangePasswordHowtoOpenaTerminalHowtoSSHtoApplianceHowtoChangeResolutionHowtoEnableDropbox
HowtoPreventDropboxfromSynchingPersonalFilesintotheApplianceHowtoTransferFilesbetweenApplianceandYourComputer
WindowsMacOS
HowtoTakeaScreenshotHowtoShareControlofYourScreen
ChangelogKnownIssuesFutureWorkAcknowledgements
NOTICEThedocumentationonthispageisforversion2014oftheCS50Appliance.
Youshoulduseversion2014oftheapplianceifyouare:
-
takingCS50x2015throughedX,
takingCSCIE50inSpring2015throughHarvardExtensionSchool,
pursuingaCS50Certificatein2015throughHarvardDivisionofContinuingEducation,or
followingthefall2014offeringofCS50online.
Inanyoftheabovecases,followtheinstructionslateronthispage.
IffollowingFall2013ofCS50(orCSCIE50),youshoulduseversion19(../19)oftheappliance.
IffollowingFall2012ofCS50(orCSCIE52),youshoulduseversion17(../17)oftheappliance.
IffollowingSummer2012ofCSCIS75,youshouldalsouseversion17(../17)oftheappliance.
IffollowingSpring2012ofCS1,CS51,orCS164,youshoulduseversion3(../3)oftheappliance.
IffollowingFall2011(https://www.cs50.net/)ofCS50,youshoulduseversion2.3(../2.3)oftheappliance.
IffollowingFall2010(http://cs50.tv/2010/fall/)ofCS50,youshoulduseversion2.1(../2.1)oftheappliance.
IffollowingFall2009(http://cs50.tv/2009/fall/)ofCS50,youshoulduseversion1.4(../1.4)oftheappliance.
TheCS50Applianceisavirtualmachine(http://en.wikipedia.org/wiki/Virtual_machine)(VM)thatletsyou"take"CS50(andothercourses!),evenifyourenotastudentatHarvard.ItsbasedonUbuntu(http://en.wikipedia.org/wiki/Ubuntu_(operating_system)),aLinux(http://en.wikipedia.org/wiki/Linux)basedoperatingsystem(http://en.wikipedia.org/wiki/Operating_system).Itsanappliance(http://en.wikipedia.org/wiki/Computer_appliance)inthesensethatwevepreconfiguredthisVMforaspecificpurpose:CS50!
Inotherwords,evenifyourenotastudentinCS50,youcanstillplayalongathome.TheCS50Appliancewillletyoucompilesourcecodefromlecturesandimplementproblemsetswithouthavingtofigureouthowtoconfigureclang(http://en.wikipedia.org/wiki/Clang),etc.yourself.Moreover,theCS50ApplianceletsyourunLinuxinsideofawindowonyourowncomputer,evenifyourealreadyrunning(someotherversionof)Linux,MacOS,Solaris,orWindows!
Incidentally,theapplianceisalwaysworkinprogress,sopleaseforgiveanybugs!
-
Incaseyourcomputerisunabletosupportavirtualmachine,oryousimplyprefernottouseone,andyouknowhowtoinstallLinuxfromanISO9660image,weprovideanISOimage(http://mirror.cs50.net/appliance50/2014/releases/29/appliance502014.iso)thatyoucanusetoinstallanUbuntusystemequivalenttotheCS50Applianceon"baremetal".
CheatsheetSeeinstructionsformuchmoredetail.
YourName JohnHarvard
YourUsername
jharvard
YourPassword
crimson
AppliancesIPAddress
anumberoftheformw.x.y.z,whichcanbefoundintheappliancesbottomrightcorner
AppliancesVersion
anumberoftheform 2014 ,(where isaminorversionnumber)whichcanbefoundintheappliancesbottomrightcorner
YourMySQLUsername
jharvard
YourMySQLPassword
crimson
phpMyAdmin http://localhost/phpmyadmin/ fromwithintheappliance
http://*w.x.y.z*/phpmyadmin/ fromyourowncomputer(where*w.x.y.z* istheIPaddressintheappliancesbottomrightcorner)
NoticeForresearchpurposes,theCS50Applianceisdesignedtolog:
-
commandlinecommands(e.g., ls , makehello ,etc.)
theoutputofprogramslike check50 , clang , gdb , style50 ,etc.
gdb commandsand
sourcecodethatyoucreateand/orsaveinsideoftheappliance.ThoselogsarethenperiodicallyuploadedtoCS50sservers.
AmongCS50soverarchingresearchgoalsaretounderstandbetterhowstudentscode,howstudentsrespondtoerrormessages,andhowstudentsprogressfromnonworkingtoworkingcode.Noneofthedatathatsloggedisusedtocomputegrades.
TheCS50Appliancedoesnot(andcannot)loganyactivitiesorfilesonyourownMacorPC(outsideoftheCS50Appliance).ItcanonlylogactivityinsideoftheCS50Appliance(i.e.,insideofitsownwindow).Evenso,youmaydisabletheuploadingoflogstoCS50sserversifyouwouldliketooptoutofthisresearch.Simplyrun no50 inaterminalwindowtooptout.
Instructions
HowtoInstallApplianceInordertoinstalltheCS50Appliance,youfirstneedtoinstallahypervisor(http://en.wikipedia.org/wiki/Hypervisor),whichisaprogramthatwillletyourunvirtualmachines(http://en.wikipedia.org/wiki/Virtual_machine)onyourowncomputer,whetheryourunMacOS,Windows,orLinux.
IfyouhaveaMac,youcancheckwhichversionofOSXitsrunningbyselectingAboutthisMacfromtheApplelogomenuatthetopleftcornerofyourscreen.IfyourversionofOSXis10.8.x("MountainLion")orlater,werecommendthatyoufollowtheseinstructionsfor
VMwareFusion7(fusion/).[1]
IfyouhaveaPCrunninga64biteditionofWindowsorLinux,werecommendthatyou
followtheseinstructionsforVMwareWorkstation11(workstation/).[2]
Alternatively(ifyourcomputerdoesntmeettherequirementsabove,oryourunintotroublewiththeapplicationsdonatedbyVMware),youmightfollowtheseinstructionsforVirtualBox(virtualbox/).
Oncetheapplianceinstalled,itsnotuncommonforittotakeaminuteorsotoboot.Butif,onceatJohnHarvardsdesktop,theappliancestillfeelsunbearablyslowonaPCrunningWindowsorLinux,youmightneedtoenablehardwarevirtualization(/virtualization).(Hardware
-
virtualizationshouldbeenabledbydefaultonanyIntelbasedMacmanufacturedinthepastfewyears.)Evenwithhardwarevirtualizationenabled,though,virtualmachinesmightstillfeelslowifyourcomputerisafewyearsold,hasaCPUthatsrunningatlessthan2GHz,orhasonly1GBorsoofRAM.
HowtoUpdateApplianceTodeterminewhichversionoftheapplianceyouhave,simplylookintheappliancesbottomrightcorner,whereyoushouldsee 2014 inboldface,where isanumber.Alternatively,youcanopenaterminalandexecute
whichshouldreport 2014# aswell.
Toensureyouhavethelatestversionoftheappliance,youcanupdateyoursbyopeningaterminalandexecuting:
Anupdatemaytakeseveralminutes.
Notethatyoucannotupdatefromversion1.4,2.1,2.3,3,17a,17,or19oftheappliancetoversion2014.Youmustinsteaddownload2014,pertheinstructionsabove.
HowtoUseApplianceThefirstthingyoushouldseewhentheappliancebootsupisJohnHarvardsdesktop.(Oh,henceforth,youareJohnHarvard(http://en.wikipedia.org/wiki/John_Harvard_(clergyman)).Yourinitialpasswordiscrimson.Andhereswhatyoulooklike(http://en.wikipedia.org/wiki/File:BostonTrip91.jpg).)EventhoughyoumightthinkofLinuxashavingonlyacommandlineinterface(http://en.wikipedia.org/wiki/Commandline_interface),graphicaluserinterfaces(http://en.wikipedia.org/wiki/Graphical_user_interface)doexist.WeveinstalledXfce(http://en.wikipedia.org/wiki/Xfce),oneofthemostpopular,foryou.However,weinstalledasfewprogramsaspossibletokeeptheappliancesmall.Yourewelcometoinstalladditionalprogramsvia aptget .
HowtoChangePasswordYoucanchangeyourpasswordinanyoftheseways:
SelectMenu>SettingsManager>UsersandGroupsandfollowtheonscreenprompts.
appliance50v
update50
-
Openaterminalandexecute:
Withthatsaid,allowustosuggestthatyounotchangeJohnHarvardspasswordifyourowncomputerisalreadypasswordprotected.(Lifewillbesimplerwithcrimson.)Theappliancehasbeenconfiguredinsuchawaythatonlysomeonewithaccesstoyourcomputer(e.g.,you)canaccesstheappliance.EventhoughtheappliancecanconnecttotheInternet,theInternetcannotconnecttotheappliance.
HowtoOpenaTerminalYoucanopenaterminalinanyoftheseways:
SelectMenu>Accessories>TerminalEmulator.Youllfindyourselfinyourhomedirectory( ~ ).
ClickTerminalsicon(ablacksquare)intheappliancesbottomleftcorner.Youllfindyourselfinyourhomedirectory( ~ ).
RightclickanywhereonyourdesktopandselectOpenTerminalHere.Youllfindyourselfin~/Desktop/ .
SelectMenu>Accessories>gedit.Youllfindyourselfinyourhomedirectory( ~ )ingeditsbottompanel.
Nomattertheapproachyoutake,itsintheterminalwindowthatyoullbeabletotypecommandslike cd , clang , ls ,etc.
HowtoSSHtoApplianceIfyoudliketoSSHtotheappliancefromyourowncomputer(aswithTerminalonMacOSorwithPuTTYonWindows),youcanSSHfromyourcomputertotheappliancesIPaddress(whichisdisplayedintheappliancesbottomrightcorner).
HowtoChangeResolutionYoucanchangetheappliancesresolution(i.e.,widthandheight)ineitheroftheseways:
SelectMenu>SettingsManager>Displaywithintheappliance,selectanewvaluetotherightofResolution,thenclickClose.
Clickanddragtheappliancesbottomrightcorner.
HowtoEnableDropboxThisfeaturerequiresInternetaccess.
passwd
-
Tomakeiteasiertobackupfileswithintheapplianceautomaticallyaswellassharethemwithyourowncomputer(s),youcansynchronizeadirectoryinJohnHarvardsaccountwithDropbox(http://www.dropbox.com/features).
HereshowtoconfiguretheapplianceforDropbox.
1. SelectMenu>Dropbox.
2. Youshouldbepromptedto"downloadtheproprietarydaemon"(i.e.,software)clickOK.Thesoftwareshouldproceedtodownloadandunpack.
3. YoushouldthenbepromptedtosetupDropbox.
IfyoudontalreadyhaveaDropboxaccount,leaveIdonthaveaDropboxaccountchecked,thenclickNext.CreateyourDropboxasprompted.
IfyoualreadyhaveanDropboxaccount,checkIalreadyhaveaDropboxaccount,thenclickOK.Loginasprompted.
4. IfpromptedtoupgradeyourDropbox,simplyleave2GBchecked(whichisfree)thenclickNext,unlessyouwanttoupgradetoapaidaccount.
5. IfpromptedtoChoosesetuptype,leaveTypicalchecked,thenclickInstall.Ifpromptedto"merge",clickMerge.
6. Ifpromptedtotakea5steptour,clickSkipTouritsscreenshotswontmatchwhatyoullseeintheappliance.
7. WheninformedThatsit!,uncheckOpenmyDropboxfoldernow,thenclickFinish.ADropboxiconshouldthenappearintheappliancesbottomrightcorner.
Onlythosefilesandfoldersthatyousavein ~/Dropbox/ willbesynchronizedwithyourDropboxaccount.
HowtoPreventDropboxfromSynchingPersonalFilesintotheAppliance1. CtrlclickontheDropboxiconintheappliancesbottomrightcornerandselect
Preferences.
2. ClickAdvanced.
3. ClickSelectiveSync.
4. Uncheckthefoldersthatyoudontwantsynchedintotheappliance.
5. ClickUpdate.
HowtoTransferFilesbetweenApplianceandYourComputer
-
IfyoudliketoSFTP(http://en.wikipedia.org/wiki/SSH_file_transfer_protocol)totheappliancefromyourowncomputer(aswithCyberduck(http://cyberduck.ch/)onMacOSorwithWinSCP(http://winscp.net/eng/download.php)onWindows),youcanSFTPfromyourcomputertow.x.y.z(wherew.x.y.zistheappliancesIPaddress,whichcanbefoundintheappliancesbottomrightcorner).
Alternatively,youcan"mount"JohnHarvardshomedirectory(viaaprotocolcalledSMB(http://en.wikipedia.org/wiki/Server_Message_Block),otherwiseknownasCIFS(http://en.wikipedia.org/wiki/CIFS))inawindowonyourowndesktop,toandfromwhichyoucandraganddropfiles.Hereshow,whetheryourunLinux,MacOS,orWindows.
Windows1. Openanyfolderonyourharddrive.
2. Clicktheaddressbaratopthefolderswindowandinput\\w.x.y.z\jharvard(wherew.x.y.zistheappliancesIPaddress,whichcanbefoundintheappliancesbottomrightcorner),thenclickEnter.
3. Ifpromptedforyournameandpassword:
1. InputjharvardforUsername.
2. InputcrimsonforPassword.
3. CheckRemembermycredentialsifyoudlike.
4. ClickConnect.
JohnHarvardshomedirectoryshouldthenopeninanewwindow.
MacOS1. SelectConnecttoServerfromtheFindersGomenu.
2. UnderServerAddress:,inputsmb://w.x.y.z(wherew.x.y.zistheappliancesIPaddress,whichcanbefoundintheappliancesbottomrightcorner).(Clickthe+iconifyoudliketoaddtheappliancetoyourFavoriteServers.)ThenclickConnect.
3. Ifpromptedforyournameandpassword:
1. SelectRegisteredUser.
2. InputjharvardforName.
3. InputcrimsonforPassword.
4. ClickConnect.
JohnHarvardshomedirectoryshouldthenopeninanewwindow.
-
HowtoTakeaScreenshotItssometimeshelpfultotakeascreenshotoftheappliancesothatyoucanrememberorsharesomethingyouseeonyourscreen.
Totakeascreenshotinsideoftheappliance:
1. SelectMenu>Accessories>Screenshot.
2. CheckaRegiontocapture.
3. LeaveCapturethemousepointercheckedunlessyoudliketohideit.
4. LeaveDelaybeforecapturingat1,unlessyouneedmoretime.
5. ClickOK.
6. YoushouldthenbepromptedtodecideonanAction.LeaveSavecheckedandthenclickOKifyoudliketosavethescreenshotasafiledecideonadestinationasprompted.Youcanthensharethatscreenshotwithsomeoneifnecessary,asbyopeningGmailinFirefoxandsendingitasanattachment.
Youcanalsosharecontrolofyourscreenifyouneedsomeoneelsetoseemorethanascreenshot.
HowtoShareControlofYourScreenThisfeaturerequiresInternetaccess.
Sothatyoucanhelp(andbehelpedby!)fellowlearnersontheInternet,theappliancecomeswithTeamViewer(http://www.teamviewer.com/),whichletsyoushare(controlof)yourscreenwithsomeoneelse(a"partner")ontheInternet(andviceversa).
Toshareyourscreenwithsomeelse:
1. SelectMenu>TeamViewer.(ClickAcceptifprompted.)Awindowshouldappear.
2. TellyourpartnerYourIDandPasswordthatyousee.Onceyourpartnerinputsthosevalues,yourscreenshouldbeshared.Thoughifyourowncomputerhasafirewall,youmightfirstbepromptedto"allowincomingconnections"orthelike.
Toseesomeoneelsesscreen:
1. AskyourpartnerforaPartnerIDandPassword.
2. SelectMenu>TeamViewer.(ClickAcceptLicenseAgreementifprompted.)Awindowshouldappear.
-
3. InputthePartnerIDintothatwindow,thenclickConnecttopartner.
4. Whenprompted,inputthePassword,atwhichpointyoushouldseeyourpartnersscreen.
Ifyouwouldliketoconnecttosomeoneelsesappliancefromyourowncomputer(ratherthanfromyourownappliance)orfromamobiledevice,youcandownloadTeamViewerforfreeforAndroid,iOS,Linux,MacOS,orWindowsfromhttp://www.teamviewer.com/en/download/(http://www.teamviewer.com/en/download/).
Changelog1.4(../1.4#Changelog)
2.0(../2.0#Changelog)
2.1(../2.1#Changelog)
2.2
2.3(../2.3#Changelog)
3(../3#Changelog)
19(../19#Changelog)
20140
TransitionedtoUbuntu
201424
201426
201429
KnownIssuesNoneatthistime.
FutureWorkBelowarefeaturesthatmaybeincludedinsomefutureversionoftheappliance.
-
AddSelenium.
Add dnsmasq andresolve*.localdomainto127.0.0.1.
AddsupportforstaticIPs.
AcknowledgementsManythankstoeveryonewhoshelpedusimprovetheCS50Appliance,including,butnotlimitedto:
AaronOehlschlaeger
Amir
ChengGong
ChrisGerber
DanArmendariz
DarrinRagsdale
Dotty
FedericoLerner
GabrielGuimaraes
GlennHolloway
JamesLankford
KartikeyaSrivastava
MatthewPolega
MatthewRoknich
MauroBraunstein
NobuKikuchi
PhilipDurbin
R.J.Aquino
RobBowden
RodRuggiero
RolandoCruz
-
RoryOReilly
SergioPrado
ShaunGibson
1.IfyoureusingOSXversion10.7.x("Lion"),[email protected](mailto:[email protected]).
2.IfyourWindowsorLinuxcomputerrunsa32bitOS,[email protected](mailto:[email protected]).
Copyright2015,CS50