CS50 Appliance 2014

Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

CS50Appliance2014

CS50Manual(/)

TableofContents
NOTICE
Cheatsheet
Notice
Instructions
HowtoInstallAppliance
HowtoUpdateAppliance
HowtoUseAppliance
HowtoChangePassword
HowtoOpenaTerminal
HowtoSSHtoAppliance
HowtoChangeResolution
HowtoEnableDropbox
HowtoPreventDropboxfromSynchingPersonalFilesintotheAppliance
HowtoTransferFilesbetweenApplianceandYourComputer
Windows
MacOS
HowtoTakeaScreenshot
HowtoShareControlofYourScreen
Changelog
KnownIssues
FutureWork
Acknowledgements

NOTICE
Thedocumentationonthispageisforversion2014oftheCS50Appliance.
Youshoulduseversion2014oftheapplianceifyouare:

takingCS50x2015throughedX,
takingCSCIE50inSpring2015throughHarvardExtensionSchool,
pursuingaCS50Certificatein2015throughHarvardDivisionofContinuing
Education,or
followingthefall2014offeringofCS50online.
Inanyoftheabovecases,followtheinstructionslateronthispage.
IffollowingFall2013ofCS50(orCSCIE50),youshoulduseversion19(../19)ofthe
appliance.
IffollowingFall2012ofCS50(orCSCIE52),youshoulduseversion17(../17)ofthe
appliance.
IffollowingSummer2012ofCSCIS75,youshouldalsouseversion17(../17)ofthe
appliance.
IffollowingSpring2012ofCS1,CS51,orCS164,youshoulduseversion3(../3)ofthe
appliance.
IffollowingFall2011(https://www.cs50.net/)ofCS50,youshoulduseversion2.3(../2.3)of
theappliance.
IffollowingFall2010(http://cs50.tv/2010/fall/)ofCS50,youshoulduseversion2.1(../2.1)of
theappliance.
IffollowingFall2009(http://cs50.tv/2009/fall/)ofCS50,youshoulduseversion1.4(../1.4)of
theappliance.
TheCS50Applianceisavirtualmachine(http://en.wikipedia.org/wiki/Virtual_machine)(VM)that
letsyou"take"CS50(andothercourses!),evenifyourenotastudentatHarvard.Itsbasedon
Ubuntu(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)inthesensethatwevepreconfiguredthisVM
foraspecificpurpose:CS50!
Inotherwords,evenifyourenotastudentinCS50,youcanstillplayalongathome.TheCS50
Appliancewillletyoucompilesourcecodefromlecturesandimplementproblemsetswithout
havingtofigureouthowtoconfigureclang(http://en.wikipedia.org/wiki/Clang),etc.yourself.
Moreover,theCS50ApplianceletsyourunLinuxinsideofawindowonyourowncomputer,
evenifyourealreadyrunning(someotherversionof)Linux,MacOS,Solaris,orWindows!
Incidentally,theapplianceisalwaysworkinprogress,sopleaseforgiveanybugs!

Incaseyourcomputerisunabletosupportavirtualmachine,oryousimplyprefernottouse
one,andyouknowhowtoinstallLinuxfromanISO9660image,weprovideanISOimage
(http://mirror.cs50.net/appliance50/2014/releases/29/appliance502014.iso)thatyoucanuseto
installanUbuntusystemequivalenttotheCS50Applianceon"baremetal".

Cheatsheet
Seeinstructionsformuchmoredetail.
YourName

JohnHarvard

Your

jharvard

Username
Your

crimson

Password
Appliances

anumberoftheformw.x.y.z,whichcanbefoundintheappliances

IPAddress

bottomrightcorner

Appliances

anumberoftheform 2014 ,(where isaminorversionnumber)which

Version

canbefoundintheappliancesbottomrightcorner

YourMySQL

jharvard

Username
YourMySQL

crimson

Password
phpMyAdmin

http://localhost/phpmyadmin/ fromwithintheappliance
http://*w.x.y.z*/phpmyadmin/ fromyourowncomputer(where
*w.x.y.z* istheIPaddressintheappliancesbottomrightcorner)

Notice
Forresearchpurposes,theCS50Applianceisdesignedtolog:

commandlinecommands(e.g., ls , makehello ,etc.)


theoutputofprogramslike check50 , clang , gdb , style50 ,etc.
gdb commandsand

sourcecodethatyoucreateand/orsaveinsideoftheappliance.Thoselogsarethen
periodicallyuploadedtoCS50sservers.
AmongCS50soverarchingresearchgoalsaretounderstandbetterhowstudentscode,how
studentsrespondtoerrormessages,andhowstudentsprogressfromnonworkingtoworking
code.Noneofthedatathatsloggedisusedtocomputegrades.
TheCS50Appliancedoesnot(andcannot)loganyactivitiesorfilesonyourownMacorPC
(outsideoftheCS50Appliance).ItcanonlylogactivityinsideoftheCS50Appliance(i.e.,
insideofitsownwindow).Evenso,youmaydisabletheuploadingoflogstoCS50sserversif
youwouldliketooptoutofthisresearch.Simplyrun no50 inaterminalwindowtooptout.

Instructions
HowtoInstallAppliance
InordertoinstalltheCS50Appliance,youfirstneedtoinstallahypervisor
(http://en.wikipedia.org/wiki/Hypervisor),whichisaprogramthatwillletyourunvirtualmachines
(http://en.wikipedia.org/wiki/Virtual_machine)onyourowncomputer,whetheryourunMacOS,
Windows,orLinux.
IfyouhaveaMac,youcancheckwhichversionofOSXitsrunningbyselectingAboutthis
MacfromtheApplelogomenuatthetopleftcornerofyourscreen.IfyourversionofOSX
is10.8.x("MountainLion")orlater,werecommendthatyoufollowtheseinstructionsfor
VMwareFusion7(fusion/).[1]
IfyouhaveaPCrunninga64biteditionofWindowsorLinux,werecommendthatyou
followtheseinstructionsforVMwareWorkstation11(workstation/).[2]
Alternatively(ifyourcomputerdoesntmeettherequirementsabove,oryourunintotroublewith
theapplicationsdonatedbyVMware),youmightfollowtheseinstructionsforVirtualBox
(virtualbox/).
Oncetheapplianceinstalled,itsnotuncommonforittotakeaminuteorsotoboot.Butif,once
atJohnHarvardsdesktop,theappliancestillfeelsunbearablyslowonaPCrunningWindows
orLinux,youmightneedtoenablehardwarevirtualization(/virtualization).(Hardware

virtualizationshouldbeenabledbydefaultonanyIntelbasedMacmanufacturedinthepastfew
years.)Evenwithhardwarevirtualizationenabled,though,virtualmachinesmightstillfeelslow
ifyourcomputerisafewyearsold,hasaCPUthatsrunningatlessthan2GHz,orhasonly
1GBorsoofRAM.

HowtoUpdateAppliance
Todeterminewhichversionoftheapplianceyouhave,simplylookintheappliancesbottom
rightcorner,whereyoushouldsee 2014 inboldface,where isanumber.Alternatively,you
canopenaterminalandexecute
appliance50v
whichshouldreport 2014# aswell.
Toensureyouhavethelatestversionoftheappliance,youcanupdateyoursbyopeninga
terminalandexecuting:
update50
Anupdatemaytakeseveralminutes.
Notethatyoucannotupdatefromversion1.4,2.1,2.3,3,17a,17,or19oftheapplianceto
version2014.Youmustinsteaddownload2014,pertheinstructionsabove.

HowtoUseAppliance
ThefirstthingyoushouldseewhentheappliancebootsupisJohnHarvardsdesktop.(Oh,
henceforth,youareJohnHarvard(http://en.wikipedia.org/wiki/John_Harvard_(clergyman)).Your
initialpasswordiscrimson.Andhereswhatyoulooklike
(http://en.wikipedia.org/wiki/File:BostonTrip91.jpg).)EventhoughyoumightthinkofLinuxas
havingonlyacommandlineinterface(http://en.wikipedia.org/wiki/Commandline_interface),
graphicaluserinterfaces(http://en.wikipedia.org/wiki/Graphical_user_interface)doexist.Weve
installedXfce(http://en.wikipedia.org/wiki/Xfce),oneofthemostpopular,foryou.However,we
installedasfewprogramsaspossibletokeeptheappliancesmall.Yourewelcometoinstall
additionalprogramsvia aptget .

HowtoChangePassword
Youcanchangeyourpasswordinanyoftheseways:
SelectMenu>SettingsManager>UsersandGroupsandfollowtheonscreenprompts.

Openaterminalandexecute:
passwd
Withthatsaid,allowustosuggestthatyounotchangeJohnHarvardspasswordifyourown
computerisalreadypasswordprotected.(Lifewillbesimplerwithcrimson.)Theappliancehas
beenconfiguredinsuchawaythatonlysomeonewithaccesstoyourcomputer(e.g.,you)can
accesstheappliance.EventhoughtheappliancecanconnecttotheInternet,theInternet
cannotconnecttotheappliance.

HowtoOpenaTerminal
Youcanopenaterminalinanyoftheseways:
SelectMenu>Accessories>TerminalEmulator.Youllfindyourselfinyourhome
directory( ~ ).
ClickTerminalsicon(ablacksquare)intheappliancesbottomleftcorner.Youllfind
yourselfinyourhomedirectory( ~ ).
RightclickanywhereonyourdesktopandselectOpenTerminalHere.Youllfindyourselfin
~/Desktop/ .

SelectMenu>Accessories>gedit.Youllfindyourselfinyourhomedirectory( ~ )in
geditsbottompanel.
Nomattertheapproachyoutake,itsintheterminalwindowthatyoullbeabletotype
commandslike cd , clang , ls ,etc.

HowtoSSHtoAppliance
IfyoudliketoSSHtotheappliancefromyourowncomputer(aswithTerminalonMacOSor
withPuTTYonWindows),youcanSSHfromyourcomputertotheappliancesIPaddress
(whichisdisplayedintheappliancesbottomrightcorner).

HowtoChangeResolution
Youcanchangetheappliancesresolution(i.e.,widthandheight)ineitheroftheseways:
SelectMenu>SettingsManager>Displaywithintheappliance,selectanewvaluetothe
rightofResolution,thenclickClose.
Clickanddragtheappliancesbottomrightcorner.

HowtoEnableDropbox
ThisfeaturerequiresInternetaccess.

Tomakeiteasiertobackupfileswithintheapplianceautomaticallyaswellassharethemwith
yourowncomputer(s),youcansynchronizeadirectoryinJohnHarvardsaccountwithDropbox
(http://www.dropbox.com/features).
HereshowtoconfiguretheapplianceforDropbox.
1. SelectMenu>Dropbox.
2. Youshouldbepromptedto"downloadtheproprietarydaemon"(i.e.,software)clickOK.
Thesoftwareshouldproceedtodownloadandunpack.
3. YoushouldthenbepromptedtosetupDropbox.
IfyoudontalreadyhaveaDropboxaccount,leaveIdonthaveaDropboxaccount
checked,thenclickNext.CreateyourDropboxasprompted.
IfyoualreadyhaveanDropboxaccount,checkIalreadyhaveaDropboxaccount,
thenclickOK.Loginasprompted.
4. IfpromptedtoupgradeyourDropbox,simplyleave2GBchecked(whichisfree)thenclick
Next,unlessyouwanttoupgradetoapaidaccount.
5. IfpromptedtoChoosesetuptype,leaveTypicalchecked,thenclickInstall.Ifpromptedto
"merge",clickMerge.
6. Ifpromptedtotakea5steptour,clickSkipTouritsscreenshotswontmatchwhatyoull
seeintheappliance.
7. WheninformedThatsit!,uncheckOpenmyDropboxfoldernow,thenclickFinish.A
Dropboxiconshouldthenappearintheappliancesbottomrightcorner.
Onlythosefilesandfoldersthatyousavein ~/Dropbox/ willbesynchronizedwithyour
Dropboxaccount.

HowtoPreventDropboxfromSynchingPersonalFilesintotheAppliance
1. CtrlclickontheDropboxiconintheappliancesbottomrightcornerandselect
Preferences.
2. ClickAdvanced.
3. ClickSelectiveSync.
4. Uncheckthefoldersthatyoudontwantsynchedintotheappliance.
5. ClickUpdate.

HowtoTransferFilesbetweenApplianceandYourComputer

IfyoudliketoSFTP(http://en.wikipedia.org/wiki/SSH_file_transfer_protocol)totheappliance
fromyourowncomputer(aswithCyberduck(http://cyberduck.ch/)onMacOSorwithWinSCP
(http://winscp.net/eng/download.php)onWindows),youcanSFTPfromyourcomputerto
w.x.y.z(wherew.x.y.zistheappliancesIPaddress,whichcanbefoundintheappliances
bottomrightcorner).
Alternatively,youcan"mount"JohnHarvardshomedirectory(viaaprotocolcalledSMB
(http://en.wikipedia.org/wiki/Server_Message_Block),otherwiseknownasCIFS
(http://en.wikipedia.org/wiki/CIFS))inawindowonyourowndesktop,toandfromwhichyoucan
draganddropfiles.Hereshow,whetheryourunLinux,MacOS,orWindows.

Windows
1. Openanyfolderonyourharddrive.
2. Clicktheaddressbaratopthefolderswindowandinput\\w.x.y.z\jharvard(wherew.x.y.zis
theappliancesIPaddress,whichcanbefoundintheappliancesbottomrightcorner),then
clickEnter.
3. Ifpromptedforyournameandpassword:
1. InputjharvardforUsername.
2. InputcrimsonforPassword.
3. CheckRemembermycredentialsifyoudlike.
4. ClickConnect.
JohnHarvardshomedirectoryshouldthenopeninanewwindow.

MacOS
1. SelectConnecttoServerfromtheFindersGomenu.
2. UnderServerAddress:,inputsmb://w.x.y.z(wherew.x.y.zistheappliancesIPaddress,
whichcanbefoundintheappliancesbottomrightcorner).(Clickthe+iconifyoudliketo
addtheappliancetoyourFavoriteServers.)ThenclickConnect.
3. Ifpromptedforyournameandpassword:
1. SelectRegisteredUser.
2. InputjharvardforName.
3. InputcrimsonforPassword.
4. ClickConnect.
JohnHarvardshomedirectoryshouldthenopeninanewwindow.

HowtoTakeaScreenshot
Itssometimeshelpfultotakeascreenshotoftheappliancesothatyoucanrememberorshare
somethingyouseeonyourscreen.
Totakeascreenshotinsideoftheappliance:
1. SelectMenu>Accessories>Screenshot.
2. CheckaRegiontocapture.
3. LeaveCapturethemousepointercheckedunlessyoudliketohideit.
4. LeaveDelaybeforecapturingat1,unlessyouneedmoretime.
5. ClickOK.
6. YoushouldthenbepromptedtodecideonanAction.LeaveSavecheckedandthenclick
OKifyoudliketosavethescreenshotasafiledecideonadestinationasprompted.You
canthensharethatscreenshotwithsomeoneifnecessary,asbyopeningGmailinFirefox
andsendingitasanattachment.
Youcanalsosharecontrolofyourscreenifyouneedsomeoneelsetoseemorethana
screenshot.

HowtoShareControlofYourScreen
ThisfeaturerequiresInternetaccess.
Sothatyoucanhelp(andbehelpedby!)fellowlearnersontheInternet,theappliancecomes
withTeamViewer(http://www.teamviewer.com/),whichletsyoushare(controlof)yourscreen
withsomeoneelse(a"partner")ontheInternet(andviceversa).
Toshareyourscreenwithsomeelse:
1. SelectMenu>TeamViewer.(ClickAcceptifprompted.)Awindowshouldappear.
2. TellyourpartnerYourIDandPasswordthatyousee.Onceyourpartnerinputsthose
values,yourscreenshouldbeshared.Thoughifyourowncomputerhasafirewall,you
mightfirstbepromptedto"allowincomingconnections"orthelike.
Toseesomeoneelsesscreen:
1. AskyourpartnerforaPartnerIDandPassword.
2. SelectMenu>TeamViewer.(ClickAcceptLicenseAgreementifprompted.)Awindow
shouldappear.

3. InputthePartnerIDintothatwindow,thenclickConnecttopartner.
4. Whenprompted,inputthePassword,atwhichpointyoushouldseeyourpartnersscreen.
Ifyouwouldliketoconnecttosomeoneelsesappliancefromyourowncomputer(ratherthan
fromyourownappliance)orfromamobiledevice,youcandownloadTeamViewerforfreefor
Android,iOS,Linux,MacOS,orWindowsfromhttp://www.teamviewer.com/en/download/
(http://www.teamviewer.com/en/download/).

Changelog
1.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

KnownIssues
Noneatthistime.

FutureWork
Belowarefeaturesthatmaybeincludedinsomefutureversionoftheappliance.

AddSelenium.
Add dnsmasq andresolve*.localdomainto127.0.0.1.
AddsupportforstaticIPs.

Acknowledgements
ManythankstoeveryonewhoshelpedusimprovetheCS50Appliance,including,butnot
limitedto:
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"),pleasedropanotetosysadmins@cs50.harvard.edu
(mailto:sysadmins@cs50.harvard.edu).
2.IfyourWindowsorLinuxcomputerrunsa32bitOS,pleasedropanoteto
sysadmins@cs50.harvard.edu(mailto:sysadmins@cs50.harvard.edu).

Copyright2015,CS50

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy