Found 26 repositories(showing 26)
kiaksarg
Edu-Editor is a basic medium/notion like rich text editor based on Slate.js framework.
fazeelkhalid
Points: 100 Topics: Graphs, topological sort, freedom to decide how to represent data and organize code (while still reading in a graph and performing topological sort) PLAGIARISM/COLLUSION: You should not read any code (solution) that directly solves this problem (e.g. implements DFS, topological sorting or other component needed for the homework). The graph representation provided on the Code page (which you are allowed to use in your solution) and the pseudocode and algorithm discussed in class provide all the information needed. If anything is unclear in the provided materials check with us. You can read materials on how to read from a file, or read a Unix file or how to tokenize a line of code, BUT not in a sample code that deals with graphs or this specific problem. E.g. you can read tutorials about these topics, but not a solution to this problem (or a problem very similar to it). You should not share your code with any classmate or read another classmate's code. Part 1: Main program requirements (100 pts) Given a list of courses and their prerequisites, compute the order in which courses must be taken so that when taking a courses, all its prerequisites have already been taken. All the files that the program would read from are in Unix format (they have the Unix EOL). Provided files: ● Grading Criteria ● cycle0.txt ● data0.txt ● data0_rev.txt ● data1.txt - like data0.txt but the order of the prerequisite courses is modified on line 2. ● slides.txt (graph image) - courses given in such a way that they produce the same graph as in the image. (The last digit in the course number is the same as the vertex corresponding to it in the drawn graph. You can also see this in the vertex-to-course name correspondence in the sample run for this file.) ● run.html● data0_easy.txt - If you cannot handle the above file format, this is an easier file format that you can use, but there will be 15 points lost in this case. More details about this situation are given in Part 3. ● Unix.zip - zipped folder with all data files. ● For your reference: EOL_Mac_Unix_Windows.png - EOL symbols for Unix/Mac/Windows Specifications: 1. You can use structs, macros, typedef. 2. All the code must be in C (not C++, or any other language) 3. Global or static variables are NOT allowed. The exception is using macros to define constants for the size limits (e.g. instead of using 30 for the max course name size). E.g. #define MAX_ARRAY_LENGTH 20 4. You can use static memory (on the frame stack) or dynamic memory. (Do not confuse static memory with static variables.) 5. The program must read from the user a filename. The filename (as given by the user) will include the extension, but NOT the path. E.g.: data0.txt 6. You can open and close the file however many times you want. 7. File format: 1. Unix file. It will have the Unix EOL (end-of-line). 2. Size limits: 1. The file name will be at most 30 characters. 2. A course name will be at most 30 characters 3. A line in the file will be at most 1000 characters. 3. The file ends with an empty new line. 4. Each line (except for the last empty line) has one or more course names. 5. Each course name is a single word (without any spaces). E.g. CSE1310 (with no space between CSE and 1310). 6. There is no empty space at the end of the line. 7. There is exactly one empty space between any two consecutive courses on the same line. (You do not need to worry about having tabs or more than one empty space between 2 courses.) The first course name on each line is the course being described and the following courses are the prerequisites for it. E.g. CSE2315 CSE1310 MATH1426 ENGL13018. The first line describes course CSE2315 and it indicates that CSE2315 has 2 prerequisite courses, namely: CSE1310 and MATH1426. The second line describes course ENG1301 and it indicates that ENG1301 has no prerequisites. 9. You can assume that there is exactly one line for every course, even for those that do not have prerequisites (see ENGL1301 above). Therefore you can count the number of lines in the file to get the total number of courses. 10.The courses are not given in any specific order in the file. 8. You must create a directed graph corresponding to the data in the file. 1. The graph will have as many vertices as different courses listed in the file. 2. You can represent the vertices and edges however you want. 3. You do NOT have to use a graph struct. If you can do all the work with just the 2D table (the adjacency matrix) that is fine. You HAVE TO implement the topological sorting covered in class (as this assignment is on Graphs), but you can organize, represent and store the data however you want. 4. For the edges, you can use either the adjacency matrix representation or the adjacency list. If you use the adjacency list, keep the nodes in the list sorted in increasing order. 5. For each course that has prerequisites, there is an edge, from each prerequisite to that course. Thus the direction of the edge indicates the dependency. The actual edge will be between the vertices in the graph corresponding to these courses. E.g. file data0.txt has: c100 c300 c200 c100 c200 c100 Meaning: c100-----> c200 \ | \ | \ | \ | \ | \ | V V c300(The above drawing is provided here to give a picture of how the data in the file should be interpreted and the graph that represents this data. Your program should *NOT* print this drawing. See the sample run for expected program output.) From this data you should create the correspondence: vertex 0 - c100 vertex 1 - c300 vertex 2 - c200 and you can represent the graph using adjacency matrix (the row and column indexes are provided for convenience): | 0 1 2 ----------------- 0| 0 1 1 1| 0 0 0 2| 0 1 0 e.g. E[0][1] is 1 because vertex 0 corresponds to c100 and vertex 1 corresponds to c300 and c300 has c100 as a prerequisite. Notice that E[1][0] is not 1. If you use the adjacency list representation, then you can print the adjacency list. The list must be sorted in increasing order (e.g. see the list for 0). It should show the corresponding node numbers. E.g. for the above example the adjacency list will be: 0: 1, 2, 1: 2: 1, 6. 7. In order for the output to look the same for everyone, use the correspondence given here: vertex 0 for the course on the first line, vertex 1 for the course on the second line, etc. 1. Print the courses in topological sorted order. This should be done using the DFS (Depth First Search) algorithm that we covered in class and the topological sorting based on DFS discussed in class. There is no topological order if there is a cycle in the graph; in this case print an error message. If in DFV-visit when looking at the (u,v) edge, if the color of v is GRAY then there is a cycle in the graph (and therefore topological sorting is not possible). See the Lecture on topological sorting (You can find the date based on the table on the Scans page and then watch the video from that day. I have also updated the pseudocodein the slides to show that. Refresh the slides and check the date on the first page. If it is 11/26/2020, then you have the most recent version.) 8. (6 points) create and submit 1 test file. It must cover a special case. Indicate what special case you are covering (e.g. no course has any prerequisite). At the top of the file indicate what makes it a special case. Save this file as special.txt. It should be in Unix EOL format. Part 2: Suggestions for improvements (not for grade) 1. CSE Advisors also are mindful and point out to students the "longest path through the degree". That is longest chain of course prerequisites (e.g. CSE1310 ---> CSE1320 --> CSE3318 -->...) as this gives a lower bound on the number of semesters needed until graduation. Can you calculate for each course the LONGEST chain ending with it? E.g. in the above example, there are 2 chains ending with c300 (size 2: just c100-->c300, size 3: c100-->c200-->c300) and you want to show longest path 3 for c300. Can you calculate this number for each course? 2. Allow the user the enter a list of courses taken so far (from the user or from file) and print a list of the courses they can take (they have all the prerequisites for). 3. Ask the user to enter a desired number of courses per semester and suggest a schedule (by semester). Part 3: Implementation suggestions 1. Reading from file: (15 points) For each line in the file, the code can extract the first course and the prerequisites for it. If you cannot process each line in the file correctly, you can use a modified input file that shows on each line, the number of courses, but you would lose the 15 points dedicated to line processing. If your program works with the "easy files", in order to make it easy for the TAs to know which file to provide, please name your C program courses_graph_easy.c. Here is the modification shown for a new example. Instead of c100 c300 c200 c100 c200 the file would have: 1 c1003 c300 c200 c100 1 c200 1. that way the first data on each line is a number that tells how many courses (strings) follow after it on that line. Everything is separated by exactly one space. All the other specifications are the same as for the original file (empty line at the end, no space at the end of any line, length of words, etc). Here is data0_easy.txt Make a direct correspondence between vertex numbers and course names. E.g. the **first** course name on the first line corresponds to vertex 0, the **first** course name on the second line corresponds to vertex 1, etc... 2. 3. The vertex numbers are used to refer to vertices. 4. In order to add an edge in the graph you will need to find the vertex number corresponding to a given course name. E.g. find that c300 corresponds to vertex 1 and c200 corresponds to vertex 2. Now you can set E[2][1] to be 1. (With the adjacency list, add node 1 in the adjacency list for 2 keeping the list sorted.) To help with this, write a function that takes as arguments the list/array of [unique] course names and one course name and returns the index of that course in the list. You can use that index as the vertex number. (This is similar to the indexOf method in Java.) 5. To see all the non-printable characters that may be in a file, find an editor that shows them. E.g. in Notepad++ : open the file, go to View -> Show symbol -> Show all characters. YOU SHOULD TRY THIS! In general, not necessarily for this homework, if you make the text editor show the white spaces, you will know if what you see as 4 empty spaces comes from 4 spaces or from one tab or show other hidden characters. This can help when you tokenize. E.g. here I am using Notepad++ to see the EOL for files saved with Unix/Mac/Windows EOL (see the CR/LF/CRLF at the end of each line): EOL_Mac_Unix_Windows.png How to submit Submit courses_graph.c (or courses_graph_easy.c) and special.txt (the special test case you created) in Canvas . (For courses_graph_easy.c you can submit the "easy" files that you created.)Your program should be named courses_graph.c if it reads from the normal/original files. If instead it reads from the 'easy' files, name it courses_graph_easy.c As stated on the course syllabus, programs must be in C, and must run on omega.uta.edu or the VM. IMPORTANT: Pay close attention to all specifications on this page, including file names and submission format. Even in cases where your answers are correct, points will be taken off liberally for non-compliance with the instructions given on this page (such as wrong file names, wrong compression format for the submitted code, and so on). The reason is that non-compliance with the instructions makes the grading process significantly (and unnecessarily) more time consuming. Contact the instructor or TA if you have any questions
thewebdeveloper2017
<!DOCTYPE html> <html dir="ltr" lang="en" xml:lang="en"> <head> <!-- front --> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>iLearn: Log in to the site</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><script type="text/javascript">window.NREUM||(NREUM={}),__nr_require=function(e,t,n){function r(n){if(!t[n]){var o=t[n]={exports:{}};e[n][0].call(o.exports,function(t){var o=e[n][1][t];return r(o||t)},o,o.exports)}return t[n].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o<n.length;o++)r(n[o]);return r}({1:[function(e,t,n){function r(){}function o(e,t,n){return function(){return i(e,[(new Date).getTime()].concat(u(arguments)),t?null:this,n),t?void 0:this}}var i=e("handle"),a=e(2),u=e(3),c=e("ee").get("tracer"),f=NREUM;"undefined"==typeof window.newrelic&&(newrelic=f);var s=["setPageViewName","setCustomAttribute","setErrorHandler","finished","addToTrace","inlineHit","addRelease"],l="api-",p=l+"ixn-";a(s,function(e,t){f[t]=o(l+t,!0,"api")}),f.addPageAction=o(l+"addPageAction",!0),f.setCurrentRouteName=o(l+"routeName",!0),t.exports=newrelic,f.interaction=function(){return(new r).get()};var d=r.prototype={createTracer:function(e,t){var n={},r=this,o="function"==typeof t;return i(p+"tracer",[Date.now(),e,n],r),function(){if(c.emit((o?"":"no-")+"fn-start",[Date.now(),r,o],n),o)try{return t.apply(this,arguments)}finally{c.emit("fn-end",[Date.now()],n)}}}};a("setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","),function(e,t){d[t]=o(p+t)}),newrelic.noticeError=function(e){"string"==typeof e&&(e=new Error(e)),i("err",[e,(new Date).getTime()])}},{}],2:[function(e,t,n){function r(e,t){var n=[],r="",i=0;for(r in e)o.call(e,r)&&(n[i]=t(r,e[r]),i+=1);return n}var o=Object.prototype.hasOwnProperty;t.exports=r},{}],3:[function(e,t,n){function r(e,t,n){t||(t=0),"undefined"==typeof n&&(n=e?e.length:0);for(var r=-1,o=n-t||0,i=Array(o<0?0:o);++r<o;)i[r]=e[t+r];return i}t.exports=r},{}],ee:[function(e,t,n){function r(){}function o(e){function t(e){return e&&e instanceof r?e:e?c(e,u,i):i()}function n(n,r,o){if(!p.aborted){e&&e(n,r,o);for(var i=t(o),a=v(n),u=a.length,c=0;c<u;c++)a[c].apply(i,r);var f=s[w[n]];return f&&f.push([y,n,r,i]),i}}function d(e,t){b[e]=v(e).concat(t)}function v(e){return b[e]||[]}function g(e){return l[e]=l[e]||o(n)}function m(e,t){f(e,function(e,n){t=t||"feature",w[n]=t,t in s||(s[t]=[])})}var b={},w={},y={on:d,emit:n,get:g,listeners:v,context:t,buffer:m,abort:a,aborted:!1};return y}function i(){return new r}function a(){(s.api||s.feature)&&(p.aborted=!0,s=p.backlog={})}var u="nr@context",c=e("gos"),f=e(2),s={},l={},p=t.exports=o();p.backlog=s},{}],gos:[function(e,t,n){function r(e,t,n){if(o.call(e,t))return e[t];var r=n();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!1}),r}catch(i){}return e[t]=r,r}var o=Object.prototype.hasOwnProperty;t.exports=r},{}],handle:[function(e,t,n){function r(e,t,n,r){o.buffer([e],r),o.emit(e,t,n)}var o=e("ee").get("handle");t.exports=r,r.ee=o},{}],id:[function(e,t,n){function r(e){var t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===window?0:a(e,i,function(){return o++})}var o=1,i="nr@id",a=e("gos");t.exports=r},{}],loader:[function(e,t,n){function r(){if(!h++){var e=y.info=NREUM.info,t=l.getElementsByTagName("script")[0];if(setTimeout(f.abort,3e4),!(e&&e.licenseKey&&e.applicationID&&t))return f.abort();c(b,function(t,n){e[t]||(e[t]=n)}),u("mark",["onload",a()],null,"api");var n=l.createElement("script");n.src="https://"+e.agent,t.parentNode.insertBefore(n,t)}}function o(){"complete"===l.readyState&&i()}function i(){u("mark",["domContent",a()],null,"api")}function a(){return(new Date).getTime()}var u=e("handle"),c=e(2),f=e("ee"),s=window,l=s.document,p="addEventListener",d="attachEvent",v=s.XMLHttpRequest,g=v&&v.prototype;NREUM.o={ST:setTimeout,CT:clearTimeout,XHR:v,REQ:s.Request,EV:s.Event,PR:s.Promise,MO:s.MutationObserver},e(1);var m=""+location,b={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",agent:"js-agent.newrelic.com/nr-1016.min.js"},w=v&&g&&g[p]&&!/CriOS/.test(navigator.userAgent),y=t.exports={offset:a(),origin:m,features:{},xhrWrappable:w};l[p]?(l[p]("DOMContentLoaded",i,!1),s[p]("load",r,!1)):(l[d]("onreadystatechange",o),s[d]("onload",r)),u("mark",["firstbyte",a()],null,"api");var h=0},{}]},{},["loader"]);</script> <meta name="keywords" content="moodle, iLearn: Log in to the site" /> <link rel="stylesheet" type="text/css" href="https://ilearn.mq.edu.au/theme/yui_combo.php?r1487942275&rollup/3.17.2/yui-moodlesimple-min.css" /><script id="firstthemesheet" type="text/css">/** Required in order to fix style inclusion problems in IE with YUI **/</script><link rel="stylesheet" type="text/css" href="https://ilearn.mq.edu.au/theme/styles.php/mqu/1487942275/all" /> <script type="text/javascript"> //<![CDATA[ var M = {}; M.yui = {}; M.pageloadstarttime = new Date(); M.cfg = {"wwwroot":"https:\/\/ilearn.mq.edu.au","sesskey":"mDL5SddUvA","loadingicon":"https:\/\/ilearn.mq.edu.au\/theme\/image.php\/mqu\/core\/1487942275\/i\/loading_small","themerev":"1487942275","slasharguments":1,"theme":"mqu","jsrev":"1487942275","admin":"admin","svgicons":true};var yui1ConfigFn = function(me) {if(/-skin|reset|fonts|grids|base/.test(me.name)){me.type='css';me.path=me.path.replace(/\.js/,'.css');me.path=me.path.replace(/\/yui2-skin/,'/assets/skins/sam/yui2-skin')}}; var yui2ConfigFn = function(me) {var parts=me.name.replace(/^moodle-/,'').split('-'),component=parts.shift(),module=parts[0],min='-min';if(/-(skin|core)$/.test(me.name)){parts.pop();me.type='css';min=''};if(module){var filename=parts.join('-');me.path=component+'/'+module+'/'+filename+min+'.'+me.type}else me.path=component+'/'+component+'.'+me.type}; YUI_config = {"debug":false,"base":"https:\/\/ilearn.mq.edu.au\/lib\/yuilib\/3.17.2\/","comboBase":"https:\/\/ilearn.mq.edu.au\/theme\/yui_combo.php?r1487942275&","combine":true,"filter":null,"insertBefore":"firstthemesheet","groups":{"yui2":{"base":"https:\/\/ilearn.mq.edu.au\/lib\/yuilib\/2in3\/2.9.0\/build\/","comboBase":"https:\/\/ilearn.mq.edu.au\/theme\/yui_combo.php?r1487942275&","combine":true,"ext":false,"root":"2in3\/2.9.0\/build\/","patterns":{"yui2-":{"group":"yui2","configFn":yui1ConfigFn}}},"moodle":{"name":"moodle","base":"https:\/\/ilearn.mq.edu.au\/theme\/yui_combo.php?m\/1487942275\/","combine":true,"comboBase":"https:\/\/ilearn.mq.edu.au\/theme\/yui_combo.php?r1487942275&","ext":false,"root":"m\/1487942275\/","patterns":{"moodle-":{"group":"moodle","configFn":yui2ConfigFn}},"filter":null,"modules":{"moodle-core-actionmenu":{"requires":["base","event","node-event-simulate"]},"moodle-core-blocks":{"requires":["base","node","io","dom","dd","dd-scroll","moodle-core-dragdrop","moodle-core-notification"]},"moodle-core-checknet":{"requires":["base-base","moodle-core-notification-alert","io-base"]},"moodle-core-chooserdialogue":{"requires":["base","panel","moodle-core-notification"]},"moodle-core-dock":{"requires":["base","node","event-custom","event-mouseenter","event-resize","escape","moodle-core-dock-loader","moodle-core-event"]},"moodle-core-dock-loader":{"requires":["escape"]},"moodle-core-dragdrop":{"requires":["base","node","io","dom","dd","event-key","event-focus","moodle-core-notification"]},"moodle-core-event":{"requires":["event-custom"]},"moodle-core-formautosubmit":{"requires":["base","event-key"]},"moodle-core-formchangechecker":{"requires":["base","event-focus","moodle-core-event"]},"moodle-core-handlebars":{"condition":{"trigger":"handlebars","when":"after"}},"moodle-core-languninstallconfirm":{"requires":["base","node","moodle-core-notification-confirm","moodle-core-notification-alert"]},"moodle-core-lockscroll":{"requires":["plugin","base-build"]},"moodle-core-maintenancemodetimer":{"requires":["base","node"]},"moodle-core-notification":{"requires":["moodle-core-notification-dialogue","moodle-core-notification-alert","moodle-core-notification-confirm","moodle-core-notification-exception","moodle-core-notification-ajaxexception"]},"moodle-core-notification-dialogue":{"requires":["base","node","panel","escape","event-key","dd-plugin","moodle-core-widget-focusafterclose","moodle-core-lockscroll"]},"moodle-core-notification-alert":{"requires":["moodle-core-notification-dialogue"]},"moodle-core-notification-confirm":{"requires":["moodle-core-notification-dialogue"]},"moodle-core-notification-exception":{"requires":["moodle-core-notification-dialogue"]},"moodle-core-notification-ajaxexception":{"requires":["moodle-core-notification-dialogue"]},"moodle-core-popuphelp":{"requires":["moodle-core-tooltip"]},"moodle-core-session-extend":{"requires":["base","node","io-base","panel","dd-plugin"]},"moodle-core-tooltip":{"requires":["base","node","io-base","moodle-core-notification-dialogue","json-parse","widget-position","widget-position-align","event-outside","cache-base"]},"moodle-core_availability-form":{"requires":["base","node","event","panel","moodle-core-notification-dialogue","json"]},"moodle-backup-backupselectall":{"requires":["node","event","node-event-simulate","anim"]},"moodle-backup-confirmcancel":{"requires":["node","node-event-simulate","moodle-core-notification-confirm"]},"moodle-calendar-info":{"requires":["base","node","event-mouseenter","event-key","overlay","moodle-calendar-info-skin"]},"moodle-course-categoryexpander":{"requires":["node","event-key"]},"moodle-course-dragdrop":{"requires":["base","node","io","dom","dd","dd-scroll","moodle-core-dragdrop","moodle-core-notification","moodle-course-coursebase","moodle-course-util"]},"moodle-course-formatchooser":{"requires":["base","node","node-event-simulate"]},"moodle-course-management":{"requires":["base","node","io-base","moodle-core-notification-exception","json-parse","dd-constrain","dd-proxy","dd-drop","dd-delegate","node-event-delegate"]},"moodle-course-modchooser":{"requires":["moodle-core-chooserdialogue","moodle-course-coursebase"]},"moodle-course-toolboxes":{"requires":["node","base","event-key","node","io","moodle-course-coursebase","moodle-course-util"]},"moodle-course-util":{"requires":["node"],"use":["moodle-course-util-base"],"submodules":{"moodle-course-util-base":{},"moodle-course-util-section":{"requires":["node","moodle-course-util-base"]},"moodle-course-util-cm":{"requires":["node","moodle-course-util-base"]}}},"moodle-form-dateselector":{"requires":["base","node","overlay","calendar"]},"moodle-form-passwordunmask":{"requires":["node","base"]},"moodle-form-shortforms":{"requires":["node","base","selector-css3","moodle-core-event"]},"moodle-form-showadvanced":{"requires":["node","base","selector-css3"]},"moodle-core_message-messenger":{"requires":["escape","handlebars","io-base","moodle-core-notification-ajaxexception","moodle-core-notification-alert","moodle-core-notification-dialogue","moodle-core-notification-exception"]},"moodle-core_message-deletemessage":{"requires":["node","event"]},"moodle-question-chooser":{"requires":["moodle-core-chooserdialogue"]},"moodle-question-preview":{"requires":["base","dom","event-delegate","event-key","core_question_engine"]},"moodle-question-qbankmanager":{"requires":["node","selector-css3"]},"moodle-question-searchform":{"requires":["base","node"]},"moodle-availability_completion-form":{"requires":["base","node","event","moodle-core_availability-form"]},"moodle-availability_date-form":{"requires":["base","node","event","io","moodle-core_availability-form"]},"moodle-availability_grade-form":{"requires":["base","node","event","moodle-core_availability-form"]},"moodle-availability_group-form":{"requires":["base","node","event","moodle-core_availability-form"]},"moodle-availability_grouping-form":{"requires":["base","node","event","moodle-core_availability-form"]},"moodle-availability_profile-form":{"requires":["base","node","event","moodle-core_availability-form"]},"moodle-qtype_ddimageortext-dd":{"requires":["node","dd","dd-drop","dd-constrain"]},"moodle-qtype_ddimageortext-form":{"requires":["moodle-qtype_ddimageortext-dd","form_filepicker"]},"moodle-qtype_ddmarker-dd":{"requires":["node","event-resize","dd","dd-drop","dd-constrain","graphics"]},"moodle-qtype_ddmarker-form":{"requires":["moodle-qtype_ddmarker-dd","form_filepicker","graphics","escape"]},"moodle-qtype_ddwtos-dd":{"requires":["node","dd","dd-drop","dd-constrain"]},"moodle-mod_assign-history":{"requires":["node","transition"]},"moodle-mod_attendance-groupfilter":{"requires":["base","node"]},"moodle-mod_dialogue-autocomplete":{"requires":["base","node","json-parse","autocomplete","autocomplete-filters","autocomplete-highlighters","event","event-key"]},"moodle-mod_dialogue-clickredirector":{"requires":["base","node","json-parse","clickredirector","clickredirector-filters","clickredirector-highlighters","event","event-key"]},"moodle-mod_dialogue-userpreference":{"requires":["base","node","json-parse","userpreference","userpreference-filters","userpreference-highlighters","event","event-key"]},"moodle-mod_forum-subscriptiontoggle":{"requires":["base-base","io-base"]},"moodle-mod_oublog-savecheck":{"requires":["base","node","io","panel","moodle-core-notification-alert"]},"moodle-mod_oublog-tagselector":{"requires":["base","node","autocomplete","autocomplete-filters","autocomplete-highlighters"]},"moodle-mod_quiz-autosave":{"requires":["base","node","event","event-valuechange","node-event-delegate","io-form"]},"moodle-mod_quiz-dragdrop":{"requires":["base","node","io","dom","dd","dd-scroll","moodle-core-dragdrop","moodle-core-notification","moodle-mod_quiz-quizbase","moodle-mod_quiz-util-base","moodle-mod_quiz-util-page","moodle-mod_quiz-util-slot","moodle-course-util"]},"moodle-mod_quiz-modform":{"requires":["base","node","event"]},"moodle-mod_quiz-questionchooser":{"requires":["moodle-core-chooserdialogue","moodle-mod_quiz-util","querystring-parse"]},"moodle-mod_quiz-quizbase":{"requires":["base","node"]},"moodle-mod_quiz-quizquestionbank":{"requires":["base","event","node","io","io-form","yui-later","moodle-question-qbankmanager","moodle-core-notification-dialogue"]},"moodle-mod_quiz-randomquestion":{"requires":["base","event","node","io","moodle-core-notification-dialogue"]},"moodle-mod_quiz-repaginate":{"requires":["base","event","node","io","moodle-core-notification-dialogue"]},"moodle-mod_quiz-toolboxes":{"requires":["base","node","event","event-key","io","moodle-mod_quiz-quizbase","moodle-mod_quiz-util-slot","moodle-core-notification-ajaxexception"]},"moodle-mod_quiz-util":{"requires":["node"],"use":["moodle-mod_quiz-util-base"],"submodules":{"moodle-mod_quiz-util-base":{},"moodle-mod_quiz-util-slot":{"requires":["node","moodle-mod_quiz-util-base"]},"moodle-mod_quiz-util-page":{"requires":["node","moodle-mod_quiz-util-base"]}}},"moodle-message_airnotifier-toolboxes":{"requires":["base","node","io"]},"moodle-filter_glossary-autolinker":{"requires":["base","node","io-base","json-parse","event-delegate","overlay","moodle-core-event","moodle-core-notification-alert","moodle-core-notification-exception","moodle-core-notification-ajaxexception"]},"moodle-filter_mathjaxloader-loader":{"requires":["moodle-core-event"]},"moodle-editor_atto-editor":{"requires":["node","transition","io","overlay","escape","event","event-simulate","event-custom","node-event-html5","node-event-simulate","yui-throttle","moodle-core-notification-dialogue","moodle-core-notification-confirm","moodle-editor_atto-rangy","handlebars","timers","querystring-stringify"]},"moodle-editor_atto-plugin":{"requires":["node","base","escape","event","event-outside","handlebars","event-custom","timers","moodle-editor_atto-menu"]},"moodle-editor_atto-menu":{"requires":["moodle-core-notification-dialogue","node","event","event-custom"]},"moodle-editor_atto-rangy":{"requires":[]},"moodle-report_eventlist-eventfilter":{"requires":["base","event","node","node-event-delegate","datatable","autocomplete","autocomplete-filters"]},"moodle-report_loglive-fetchlogs":{"requires":["base","event","node","io","node-event-delegate"]},"moodle-gradereport_grader-gradereporttable":{"requires":["base","node","event","handlebars","overlay","event-hover"]},"moodle-gradereport_history-userselector":{"requires":["escape","event-delegate","event-key","handlebars","io-base","json-parse","moodle-core-notification-dialogue"]},"moodle-tool_capability-search":{"requires":["base","node"]},"moodle-tool_lp-dragdrop-reorder":{"requires":["moodle-core-dragdrop"]},"moodle-assignfeedback_editpdf-editor":{"requires":["base","event","node","io","graphics","json","event-move","event-resize","transition","querystring-stringify-simple","moodle-core-notification-dialog","moodle-core-notification-exception","moodle-core-notification-ajaxexception"]},"moodle-atto_accessibilitychecker-button":{"requires":["color-base","moodle-editor_atto-plugin"]},"moodle-atto_accessibilityhelper-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_align-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_bold-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_charmap-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_chemistry-button":{"requires":["moodle-editor_atto-plugin","moodle-core-event","io","event-valuechange","tabview","array-extras"]},"moodle-atto_clear-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_collapse-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_emoticon-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_equation-button":{"requires":["moodle-editor_atto-plugin","moodle-core-event","io","event-valuechange","tabview","array-extras"]},"moodle-atto_html-button":{"requires":["moodle-editor_atto-plugin","event-valuechange"]},"moodle-atto_image-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_indent-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_italic-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_link-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_managefiles-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_managefiles-usedfiles":{"requires":["node","escape"]},"moodle-atto_media-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_noautolink-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_orderedlist-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_rtl-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_strike-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_subscript-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_superscript-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_table-button":{"requires":["moodle-editor_atto-plugin","moodle-editor_atto-menu","event","event-valuechange"]},"moodle-atto_title-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_underline-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_undo-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_unorderedlist-button":{"requires":["moodle-editor_atto-plugin"]}}},"gallery":{"name":"gallery","base":"https:\/\/ilearn.mq.edu.au\/lib\/yuilib\/gallery\/","combine":true,"comboBase":"https:\/\/ilearn.mq.edu.au\/theme\/yui_combo.php?","ext":false,"root":"gallery\/1487942275\/","patterns":{"gallery-":{"group":"gallery"}}}},"modules":{"core_filepicker":{"name":"core_filepicker","fullpath":"https:\/\/ilearn.mq.edu.au\/lib\/javascript.php\/1487942275\/repository\/filepicker.js","requires":["base","node","node-event-simulate","json","async-queue","io-base","io-upload-iframe","io-form","yui2-treeview","panel","cookie","datatable","datatable-sort","resize-plugin","dd-plugin","escape","moodle-core_filepicker"]},"core_comment":{"name":"core_comment","fullpath":"https:\/\/ilearn.mq.edu.au\/lib\/javascript.php\/1487942275\/comment\/comment.js","requires":["base","io-base","node","json","yui2-animation","overlay"]}}}; M.yui.loader = {modules: {}}; //]]> </script> <meta name="robots" content="noindex" /> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script> <![endif]--> <link rel="apple-touch-icon-precomposed" href="https://ilearn.mq.edu.au/theme/image.php/mqu/theme/1487942275/apple-touch-icon-144-precomposed" sizes="144x144"> <link rel="shortcut icon" href="https://ilearn.mq.edu.au/theme/image.php/mqu/theme/1487942275/favicon"> </head> <body id="page-login-index" class="format-site path-login gecko dir-ltr lang-en yui-skin-sam yui3-skin-sam ilearn-mq-edu-au pagelayout-login course-1 context-1 notloggedin content-only layout-option-noblocks layout-option-nocourseheaderfooter layout-option-nocustommenu layout-option-nofooter layout-option-nonavbar"> <div class="skiplinks"><a class="skip" href="#maincontent">Skip to main content</a></div> <script type="text/javascript" src="https://ilearn.mq.edu.au/theme/yui_combo.php?r1487942275&rollup/3.17.2/yui-moodlesimple-min.js&rollup/1487942275/mcore-min.js"></script><script type="text/javascript" src="https://ilearn.mq.edu.au/theme/jquery.php/r1487942275/core/jquery-1.12.1.min.js"></script> <script type="text/javascript" src="https://ilearn.mq.edu.au/lib/javascript.php/1487942275/lib/javascript-static.js"></script> <script type="text/javascript"> //<![CDATA[ document.body.className += ' jsenabled'; //]]> </script> <div id="nice_debug_area"></div> <header id="page-header"> <div class="container"> <div class="login-logos"> <div class="mq-logo"> <a class="login-logo" href="http://ilearn.mq.edu.au"><img alt="Macquarie University" src="https://ilearn.mq.edu.au/theme/image.php/mqu/theme/1487942275/login-logo"></a> </div><!-- /.mq-logo --> <div class="ilearn-logo"> <a class="login-logo-ilearn" href="http://ilearn.mq.edu.au"><img alt="iLearn" src="https://ilearn.mq.edu.au/theme/image.php/mqu/theme/1487942275/ilearn-logo"></a> </div><!-- /.ilearn-logo --> </div><!-- /.login-logos --> </div><!-- /.container --> </header><!-- #page-header --> <div id="page"> <div class="container" id="page-content"> <div class="login-wing login-wing-left"></div> <div class="login-wing login-wing-right"></div> <h1 class="login-h1">iLearn Login</h1> <span class="notifications" id="user-notifications"></span><div role="main"><span id="maincontent"></span><div class="loginbox clearfix twocolumns"> <div class="loginpanel"> <h2>Log in</h2> <div class="subcontent loginsub"> <form action="https://ilearn.mq.edu.au/login/index.php" method="post" id="login" > <div class="loginform"> <div class="form-label"><label for="username">Username</label></div> <div class="form-input"> <input type="text" name="username" id="username" size="15" tabindex="1" value="" /> </div> <div class="clearer"><!-- --></div> <div class="form-label"><label for="password">Password</label></div> <div class="form-input"> <input type="password" name="password" id="password" size="15" tabindex="2" value="" /> </div> </div> <div class="clearer"><!-- --></div> <div class="clearer"><!-- --></div> <input id="anchor" type="hidden" name="anchor" value="" /> <script>document.getElementById('anchor').value = location.hash</script> <input type="submit" id="loginbtn" value="Log in" /> <div class="forgetpass"><a href="forgot_password.php">Forgotten your username or password?</a></div> </form> <script type="text/javascript"> $(document).ready(function(){ var input = document.getElementById ("username"); input.focus(); }); </script> <div class="desc"> Cookies must be enabled in your browser<span class="helptooltip"><a href="https://ilearn.mq.edu.au/help.php?component=moodle&identifier=cookiesenabled&lang=en" title="Help with Cookies must be enabled in your browser" aria-haspopup="true" target="_blank"><img src="https://ilearn.mq.edu.au/theme/image.php/mqu/core/1487942275/help" alt="Help with Cookies must be enabled in your browser" class="iconhelp" /></a></span> </div> </div> </div> <div class="signuppanel"> <h2>Is this your first time here?</h2> <div class="subcontent"> </div> </div> <script> dataLayer = []; </script> <!-- Google Tag Manager --> <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-MQZTHB" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-MQZTHB');</script> <!-- End Google Tag Manager --> </div> </div><!-- /.container #page-content --> </div><!-- /#page --> <footer id="page-footer"> <div class="container"> <ul class="page-footer-ul"> <li><a href="http://help.ilearn.mq.edu.au/" target="_blank">iLearn Help and FAQ</a></li> <li><a href="https://oneid.mq.edu.au/" target="_blank">Forgotten your password?</a></li> <li><a href="http://status.ilearn.mq.edu.au/" target="_blank">iLearn Status</a></li> </ul><!-- /.page-footer-ul --> <div class="login-footer-info"> <p>If you are having trouble accessing your online unit due to a disability or health condition, please go to the <a href="http://www.students.mq.edu.au/support/accessibility_services" target="_blank">Student Services Website</a> for information on how to get assistance</p> <p>All material available on iLearn belongs to Macquarie University or has been copied and communicated to Macquarie staff and students under statutory licences and educational exceptions under Australian copyright law. This material is provided for the educational purposes of Macquarie students and staff. It is illegal to copy and distribute this material beyond iLearn except in very limited circumstances and as provided by specific copyright exceptions.</p> </div><!-- /.login-footer-info --> <div class="login-footer-link"> <div class="bootstrap-row"> <div class="col-md-7"> <p>© Copyright Macquarie University | <a href="http://www.mq.edu.au/privacy/privacy.html" target="_blank">Privacy</a> | <a href="http://www.mq.edu.au/accessibility.html" target="_blank">Accessibility Information</a></p> </div><!-- /.col-md-7 --> <div class="col-md-5"> <p>ABN 90 952 801 237 | CRICOS Provider 00002J</p> </div><!-- /.col-md-5 --> </div><!-- /.bootstrap-row --> </div><!-- /.login-footer-link --> </div><!-- /.container --> </footer><!-- /#page-footer --> <script type="text/javascript"> //<![CDATA[ var require = { baseUrl : 'https://ilearn.mq.edu.au/lib/requirejs.php/1487942275/', // We only support AMD modules with an explicit define() statement. enforceDefine: true, skipDataMain: true, waitSeconds : 0, paths: { jquery: 'https://ilearn.mq.edu.au/lib/javascript.php/1487942275/lib/jquery/jquery-1.12.1.min', jqueryui: 'https://ilearn.mq.edu.au/lib/javascript.php/1487942275/lib/jquery/ui-1.11.4/jquery-ui.min', jqueryprivate: 'https://ilearn.mq.edu.au/lib/javascript.php/1487942275/lib/requirejs/jquery-private' }, // Custom jquery config map. map: { // '*' means all modules will get 'jqueryprivate' // for their 'jquery' dependency. '*': { jquery: 'jqueryprivate' }, // 'jquery-private' wants the real jQuery module // though. If this line was not here, there would // be an unresolvable cyclic dependency. jqueryprivate: { jquery: 'jquery' } } }; //]]> </script> <script type="text/javascript" src="https://ilearn.mq.edu.au/lib/javascript.php/1487942275/lib/requirejs/require.min.js"></script> <script type="text/javascript"> //<![CDATA[ require(['core/first'], function() { ; require(["core/notification"], function(amd) { amd.init(1, [], false); });; require(["core/log"], function(amd) { amd.setConfig({"level":"warn"}); }); }); //]]> </script> <script type="text/javascript"> //<![CDATA[ M.yui.add_module({"mathjax":{"name":"mathjax","fullpath":"https:\/\/cdn.mathjax.org\/mathjax\/2.6-latest\/MathJax.js?delayStartupUntil=configured"}}); //]]> </script> <script type="text/javascript" src="https://ilearn.mq.edu.au/theme/javascript.php/mqu/1487942275/footer"></script> <script type="text/javascript"> //<![CDATA[ M.str = {"moodle":{"lastmodified":"Last modified","name":"Name","error":"Error","info":"Information","namedfiletoolarge":"The file '{$a->filename}' is too large and cannot be uploaded","yes":"Yes","no":"No","morehelp":"More help","loadinghelp":"Loading...","cancel":"Cancel","ok":"OK","confirm":"Confirm","areyousure":"Are you sure?","closebuttontitle":"Close","unknownerror":"Unknown error"},"repository":{"type":"Type","size":"Size","invalidjson":"Invalid JSON string","nofilesattached":"No files attached","filepicker":"File picker","logout":"Logout","nofilesavailable":"No files available","norepositoriesavailable":"Sorry, none of your current repositories can return files in the required format.","fileexistsdialogheader":"File exists","fileexistsdialog_editor":"A file with that name has already been attached to the text you are editing.","fileexistsdialog_filemanager":"A file with that name has already been attached","renameto":"Rename to \"{$a}\"","referencesexist":"There are {$a} alias\/shortcut files that use this file as their source","select":"Select"},"admin":{"confirmdeletecomments":"You are about to delete comments, are you sure?","confirmation":"Confirmation"},"block":{"addtodock":"Move this to the dock","undockitem":"Undock this item","dockblock":"Dock {$a} block","undockblock":"Undock {$a} block","undockall":"Undock all","hidedockpanel":"Hide the dock panel","hidepanel":"Hide panel"},"langconfig":{"thisdirectionvertical":"btt"}}; //]]> </script> <script type="text/javascript"> //<![CDATA[ (function() {M.util.load_flowplayer(); setTimeout("fix_column_widths()", 20); Y.use("moodle-core-dock-loader",function() {M.core.dock.loader.initLoader(); }); M.util.help_popups.setup(Y); Y.use("moodle-core-popuphelp",function() {M.core.init_popuphelp(); }); M.util.js_pending('random58b8dd8d3abcf2'); Y.on('domready', function() { M.util.move_debug_messages(Y); M.util.js_complete('random58b8dd8d3abcf2'); }); M.util.js_pending('random58b8dd8d3abcf3'); Y.on('domready', function() { M.util.netspot_perf_info(Y, "00000000:0423_00000000:0050_58B8DD8D_30F8F6D:3B0C", 1488510349.1968); M.util.js_complete('random58b8dd8d3abcf3'); }); M.util.init_skiplink(Y); Y.use("moodle-filter_glossary-autolinker",function() {M.filter_glossary.init_filter_autolinking({"courseid":0}); }); Y.use("moodle-filter_mathjaxloader-loader",function() {M.filter_mathjaxloader.configure({"mathjaxconfig":"\nMathJax.Hub.Config({\n config: [\"Accessible.js\", \"Safe.js\"],\n errorSettings: { message: [\"!\"] },\n skipStartupTypeset: true,\n messageStyle: \"none\",\n TeX: {\n extensions: [\"mhchem.js\",\"color.js\",\"AMSmath.js\",\"AMSsymbols.js\",\"noErrors.js\",\"noUndefined.js\"]\n }\n});\n ","lang":"en"}); }); M.util.js_pending('random58b8dd8d3abcf5'); Y.on('domready', function() { M.util.js_complete("init"); M.util.js_complete('random58b8dd8d3abcf5'); }); })(); //]]> </script> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"d6bb71fb66","applicationID":"3373525,3377726","transactionName":"YVMHYkVQWkIAUERQDFgZMEReHlheBlpeFgpYUgBOGUFcQQ==","queueTime":0,"applicationTime":48,"atts":"TRQEFA1KSUw=","errorBeacon":"bam.nr-data.net","agent":""}</script></body> </html>
Vechus
No description available
Haoranli802
This C++ project is based on uci ics ICS45C project #4(stop here and do not look at any part of the project if you are enrolled in this course). It is a fully working text editor that can save your edit into a special file on your computer. The inputs will be Key-pressing on your keyboard, and no outputs will be shown. The only thing you can see if the changes in the text editor. Here is what you can do with the editor and how you do it. Any printable character = Insert Character Inserts a character where the cursor is currently positioned. Any characters at or beyond the cursor on the same line are shifted to the right. The cursor moves one cell to the right afterward. Ctrl+I = Cursor Up Moves the cursor up one cell (i.e., to the same column on the previous line). If the previous line is so short that this would place the cursor beyond the end of the previous line, the cursor is placed in the column just beyond the end of the previous line instead. If the cursor is already on line 1, there is no cell above, so this command fails and an error message is displayed. Ctrl+K = Cursor Down Moves the cursor down one cell (i.e., to the same column on the next line). If the previous line is so long that this would place the cursor beyond the end of the next line, the cursor is placed in the column just beyond the end of the next line instead. If the cursor is already on the last line, there is no cell below, so this command fails and an error message is displayed. Ctrl+U = Cursor Left Moves the cursor left one cell (i.e., to the previous column on the same line). If the cursor is at the beginning of a line already, it instead moves just beyond the end of the previous line instead. If the cursor is at the beginning of line 1, this command fails and an error message is displayed. Ctrl+O = Cursor Right Moves the cursor right one cell (i.e., to the next column on the same line). If the cursor is just beyond the end of a line already, it instead moves to the beginning of the next line instead. If the cursor is just beyond the end of the last line, this command fails and an error message is displayed. Ctrl+Y = Cursor Home Moves the cursor to the beginning of the current line. No error message is shown if the cursor is already at the beginning of the current line. Ctrl+P = Cursor End Moves the cursor just beyond the end of the current line. No error message is shown if the cursor is already at the end of the current line. Ctrl+J = Ctrl+M = New Line Creates a new line just under the current line. Any text at or after the cursor on the current line is moved to the beginning of the new line. The cursor is moved to the beginning of the new line. (Note that there are two different keys that are interpreted the same way; either Ctrl+J or Ctrl+M behaves this way.) Ctrl+H = Backspace Deletes the character to the left of the current cursor position, sliding subsqeuent characters backward to fill the empty space. Moves the cursor one character to the left. If the cursor is already in column 1, the entire current line of text is instead moved to the end of the previous line and the cursor is placed at the beginning of that moved text. If the cursor is already on line 1 column 1, this command fails and an error message is displayed. Ctrl+D = Delete Line Deletes the entire current line of text, with all subsequent lines moving up to fill the empty space. The cursor remains in its current location unless the cursor would be beyond the end of the line of text that now occupies the cursor's line number, in which case the cursor is placed just beyond the end of that line of text instead. If there is only one line of text, it is cleared and the cursor is placed at line 1 column 1. (In other words, the editor must always have at least one line of text, even if it's empty.) Ctrl+Z = Undo Reverts the previously-executed command, putting the editor back into the state it was in before that command was executed. All commands listed above are "undoable", including cursor movements and text changes, and individual commands are undone individually (i.e., each "undo" command undoes a single cursor movement, a single character inserted, a single line deleted, etc.). Ctrl+A = Redo Re-executes the most-recently-undone command. Note that Undo/Redo work the way that Back and Forward buttons have traditionally worked in a web browser; once you execute a command other than Undo or Redo successfully, there are no commands available to be redone until a command is subsequently undone. Ctrl+X = Quit/Exit Exits BooEdit immediately. source from (https://www.ics.uci.edu/~thornton/ics45c/ProjectGuide/) Luckily, this project also contains automatic tests provided by both the professor and me, which are the gtests (Unit testings). Implementation instructions: The project files are in the app folder. As always, the main.cpp is the execution file. The gtests files are in the gtest folder.
Awertol
TextEditor Lite
garebareDA
No description available
Time (ms) and space (RAM usage) optimized command line text editor with multiple undo/redo feature
aks2161989
Alphatk text editor's source code repo for Windows (originally taken from ftp://ftp.ucsd.edu/pub/alpha/tcl/alphatk )
aks2161989
Compressed source code distribution of Alphatk text editor for all platforms (taken from ftp://ftp.ucsd.edu/pub/alpha/tcl/alphatk)
samerrkhann
# Natural-Language-Processing SMS Spam Collection v.1 ------------------------- 1. DESCRIPTION -------------- The SMS Spam Collection v.1 (hereafter the corpus) is a set of SMS tagged messages that have been collected for SMS Spam research. It contains one set of SMS messages in English of 5,574 messages, tagged acording being ham (legitimate) or spam. 1.1. Compilation ---------------- This corpus has been collected from free or free for research sources at the Web: - A collection of between 425 SMS spam messages extracted manually from the Grumbletext Web site. This is a UK forum in which cell phone users make public claims about SMS spam messages, most of them without reporting the very spam message received. The identification of the text of spam messages in the claims is a very hard and time-consuming task, and it involved carefully scanning hundreds of web pages. The Grumbletext Web site is: http://www.grumbletext.co.uk/ - A list of 450 SMS ham messages collected from Caroline Tag's PhD Theses available at http://etheses.bham.ac.uk/253/1/Tagg09PhD.pdf - A subset of 3,375 SMS ham messages of the NUS SMS Corpus (NSC), which is a corpus of about 10,000 legitimate messages collected for research at the Department of Computer Science at the National University of Singapore. The messages largely originate from Singaporeans and mostly from students attending the University. These messages were collected from volunteers who were made aware that their contributions were going to be made publicly available. The NUS SMS Corpus is avalaible at: http://www.comp.nus.edu.sg/~rpnlpir/downloads/corpora/smsCorpus/ - The amount of 1,002 SMS ham messages and 322 spam messages extracted from the SMS Spam Corpus v.0.1 Big created by José María Gómez Hidalgo and public available at: http://www.esp.uem.es/jmgomez/smsspamcorpus/ 1.2. Statistics --------------- There is one collection: - The SMS Spam Collection v.1 (text file: smsspamcollection) has a total of 4,827 SMS legitimate messages (86.6%) and a total of 747 (13.4%) spam messages. 1.3. Format ----------- The files contain one message per line. Each line is composed by two columns: one with label (ham or spam) and other with the raw text. Here are some examples: ham What you doing?how are you? ham Ok lar... Joking wif u oni... ham dun say so early hor... U c already then say... ham MY NO. IN LUTON 0125698789 RING ME IF UR AROUND! H* ham Siva is in hostel aha:-. ham Cos i was out shopping wif darren jus now n i called him 2 ask wat present he wan lor. Then he started guessing who i was wif n he finally guessed darren lor. spam FreeMsg: Txt: CALL to No: 86888 & claim your reward of 3 hours talk time to use from your phone now! ubscribe6GBP/ mnth inc 3hrs 16 stop?txtStop spam Sunshine Quiz! Win a super Sony DVD recorder if you canname the capital of Australia? Text MQUIZ to 82277. B spam URGENT! Your Mobile No 07808726822 was awarded a L2,000 Bonus Caller Prize on 02/09/03! This is our 2nd attempt to contact YOU! Call 0871-872-9758 BOX95QU Note: messages are not chronologically sorted. 2. USAGE -------- We offer a comprehensive study of this corpus in the following paper that is under review. This work presents a number of statistics, studies and baseline results for several machine learning methods. [1] Almeida, T.A., Gómez Hidalgo, J.M., Yamakami, A. Contributions to the study of SMS Spam Filtering: New Collection and Results. Proceedings of the 2011 ACM Symposium on Document Engineering (ACM DOCENG'11), Mountain View, CA, USA, 2011. (Under review) 3. ABOUT -------- The corpus has been collected by Tiago Agostinho de Almeida (http://www.dt.fee.unicamp.br/~tiago) and José María Gómez Hidalgo (http://www.esp.uem.es/jmgomez). We would like to thank Dr. Min-Yen Kan (http://www.comp.nus.edu.sg/~kanmy/) and his team for making the NUS SMS Corpus available. See: http://www.comp.nus.edu.sg/~rpnlpir/downloads/corpora/smsCorpus/. He is currently collecting a bigger SMS corpus at: http://wing.comp.nus.edu.sg:8080/SMSCorpus/ 4. LICENSE/DISCLAIMER --------------------- We would appreciate if: - In case you find this corpus useful, please make a reference to previous paper and the web page: http://www.dt.fee.unicamp.br/~tiago/smsspamcollection/ in your papers, research, etc. - Send us a message to tiago@dt.fee.unicamp.br in case you make use of the corpus. The SMS Spam Collection v.1 is provided for free and with no limitations excepting: 1. Tiago Agostinho de Almeida and José María Gómez Hidalgo hold the copyrigth (c) for the SMS Spam Collection v.1. 2. No Warranty/Use At Your Risk. THE CORPUS IS MADE AT NO CHARGE. ACCORDINGLY, THE CORPUS IS PROVIDED `AS IS,' WITHOUT WARRANTY OF ANY KIND, INCLUDING WITHOUT LIMITATION THE WARRANTIES THAT THEY ARE MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. YOU ARE SOLELY RESPONSIBLE FOR YOUR USE, DISTRIBUTION, MODIFICATION, REPRODUCTION AND PUBLICATION OF THE CORPUS AND ANY DERIVATIVE WORKS THEREOF BY YOU AND ANY OF YOUR SUBLICENSEES (COLLECTIVELY, `YOUR CORPUS USE'). THE ENTIRE RISK AS TO YOUR CORPUS USE IS BORNE BY YOU. YOU AGREE TO INDEMNIFY AND HOLD THE COPYRIGHT HOLDERS, AND THEIR AFFILIATES HARMLESS FROM ANY CLAIMS ARISING FROM OR RELATING TO YOUR CORPUS USE. 3. Limitation of Liability. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR THEIR AFFILIATES, OR THE CORPUS CONTRIBUTING EDITORS, BE LIABLE FOR ANY INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF ADVISED OF THE POSSIBILITY THEREOF, AND REGARDLESS OF WHETHER ANY CLAIM IS BASED UPON ANY CONTRACT, TORT OR OTHER LEGAL OR EQUITABLE THEORY, RELATING OR ARISING FROM THE CORPUS, YOUR CORPUS USE OR THIS LICENSE AGREEMENT.
EduGonO
No description available
AlexFerras
No description available
GerunNik
No description available
EduGonO
No description available
sonsonson110
No description available
Amilaeduhelp
No description available
avishkaJSPshehan
Custom Text Pad
ducnguyenedu
FPT University Lab Project
TommasoBrumani
Basic optimized CLI text editor with 'undo' and 'redo'.
RCapolungo
No description available
GeTtygreen
(for Edu purpose only) built w/ REACTjs, TailwindCSS,Firebase , NEXTAUTH, Draftjs, and Rich TEXT editor
sofia100
https://missing.csail.mit.edu/ teaches how to master the command-line, use a powerful text editor, use fancy features of version control systems, and much more!
nema-oss
edU (ed with multiple undos) is a simple command line text editor, which allows to manipulate sequences of strings by insertion and deletion. Moreover, it allows to undo actions and re do them. This work has been assigned as a project in the course Algoritmi e Principi dell'Informatica at Politecnico di Milano, A.Y. 2019/2020.
APLz4
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="never"> <info> <title>Format FTIE-2020</title> <title-short>APA-6-FTIE-2020</title-short> <id> https://csl.mendeley.com/styles/19316541/Format-FTIE-2020 </id> <link href="http://www.zotero.org/styles/format-uty-2016-by-dr-600" rel="self"/> <link href="http://owl.english.purdue.edu/owl/resource/560/01/" rel="documentation"/> <author> <name>Sutarman</name> <email>sutarman@utya.c.id</email> </author> <contributor> <name>Bruce D'Arcus</name> </contributor> <contributor> <name>Curtis M. Humphrey</name> </contributor> <contributor> <name>Richard Karnesky</name> <email>karnesky+zotero@gmail.com</email> <uri> http://arc.nucapt.northwestern.edu/Richard_Karnesky </uri> </contributor> <contributor> <name>Sebastian Karcher</name> </contributor> <contributor> <name>Sutarman UTY</name> <uri>http://www.mendeley.com/profiles/sutarman-mkom/</uri> </contributor> <contributor> <name>sutarman PhD</name> <uri>http://www.mendeley.com/profiles/sutarman-mkom3/</uri> </contributor> <category citation-format="author-date"/> <category field="psychology"/> <category field="generic-base"/> <updated>2020-04-03T16:10:43+00:00</updated> <rights license="http://creativecommons.org/licenses/by-sa/3.0/"> This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License </rights> </info> <locale xml:lang="en"> <terms> <term name="editortranslator" form="short"> <single>ed. & trans.</single> <multiple>eds. & trans.</multiple> </term> <term name="translator" form="short"> <single>trans.</single> <multiple>trans.</multiple> </term> </terms> </locale> <macro name="container-contributors"> <choose> <if type="chapter paper-conference entry-dictionary entry-encyclopedia" match="any"> <group delimiter=", " suffix=", "> <names variable="container-author" delimiter=", "> <name and="symbol" initialize-with=". " delimiter=", "/> <label form="short" text-case="title" prefix=" "/> </names> <names variable="editor translator" delimiter=", "> <name and="symbol" initialize-with=". " delimiter=", "/> <label form="short" text-case="title" prefix=""/> </names> </group> </if> </choose> </macro> <macro name="secondary-contributors"> <choose> <if type="article-journal chapter paper-conference entry-dictionary entry-encyclopedia" match="none"> <group delimiter=", " prefix=" " suffix=""> <names variable="container-author" delimiter=", "> <name and="symbol" initialize-with=". " delimiter=", "/> <label form="short" prefix=", " text-case="title"/> </names> <names variable="editor translator" delimiter=", "> <name and="symbol" initialize-with=". " delimiter=", "/> <label form="short" prefix=", " text-case="title"/> </names> </group> </if> </choose> </macro> <macro name="author"> <names variable="author" delimiter=","> <name and="text" delimiter-precedes-last="never" initialize-with="." name-as-sort-order="all" sort-separator=", "/> <label form="short" text-case="capitalize-first" prefix="(" suffix=")"/> <substitute> <names variable="editor"/> <names variable="translator" delimiter=","/> <choose> <if type="report"> <text variable="publisher"/> <text macro="title"/> </if> <else> <text macro="title"/> </else> </choose> </substitute> </names> </macro> <macro name="author-short"> <names variable="author"> <name delimiter=" " and="text" delimiter-precedes-last="always" et-al-min="2" et-al-use-first="1" et-al-subsequent-min="3" initialize-with=". " name-as-sort-order="all"/> <substitute> <names variable="editor"/> <names variable="translator"/> <choose> <if type="report"> <text variable="publisher"/> <text variable="title" form="short" font-style="italic"/> </if> <else-if type="legal_case"> <text variable="title" font-style="italic"/> </else-if> <else-if type="bill book graphic legislation motion_picture song" match="any"> <text variable="title" form="short" font-style="italic"/> </else-if> <else-if variable="reviewed-author"> <choose> <if variable="reviewed-title" match="none"> <text variable="title" form="short" font-style="italic" prefix="Review of "/> </if> <else> <text variable="title" form="short" quotes="false"/> </else> </choose> </else-if> <else> <text variable="title" form="short" quotes="false"/> </else> </choose> </substitute> </names> </macro> <macro name="access"> <choose> <if type="thesis report" match="any"> <choose> <if variable="archive" match="any"> <group> <text term="retrieved" text-case="capitalize-first" suffix=" "/> <text term="from" suffix=" "/> <text variable="archive"/> <text variable="archive_location" prefix=" (" suffix=")"/> </group> </if> <else> <group> <text term="retrieved" text-case="capitalize-first" suffix=" "/> <text term="from" suffix=" "/> <text variable="URL"/> </group> </else> </choose> </if> <else> <choose> <if variable="DOI"/> <else> <choose> <if type="webpage"> <group> <text prefix="(" suffix=") "/> <text term="retrieved" text-case="capitalize-first" prefix=" " suffix=" "/> <text term="from" suffix=" "/> <text variable="URL" prefix="(" suffix=")"/> <group> <date form="text" variable="accessed" prefix=" akses "/> </group> </group> </if> <else> <group> <text term="accessed" text-case="capitalize-first" suffix=" "/> <text term="from" suffix=" "/> <text variable="URL"/> </group> </else> </choose> </else> </choose> </else> </choose> </macro> <macro name="title"> <choose> <if type="book graphic manuscript motion_picture report song speech thesis" match="any"> <choose> <if variable="version" type="book" match="all"> <text variable="title" text-case="capitalize-all" font-style="normal" prefix=" "/> </if> <else> <text variable="title" text-case="capitalize-all" font-style="italic" font-weight="normal"/> </else> </choose> </if> <else-if variable="reviewed-author"> <choose> <if variable="reviewed-title"> <group delimiter=" "> <text variable="title" suffix=" "/> <group delimiter=", " prefix="[" suffix="]"> <text variable="reviewed-title" font-style="italic" prefix="Review of "/> <names variable="reviewed-author" delimiter=", "> <label form="verb-short" suffix=" "/> <name and="symbol" initialize-with="."/> </names> </group> </group> </if> <else> <group delimiter=", " prefix="[" suffix="]"> <text variable="title" font-style="italic" prefix="Review of "/> <names variable="reviewed-author" delimiter=", "> <label form="verb-short" suffix=" "/> <name and="symbol" initialize-with=". "/> </names> </group> </else> </choose> </else-if> <else> <text variable="title" text-case="capitalize-all" font-style="italic"/> </else> </choose> </macro> <macro name="title-plus-extra"> <text macro="title" suffix=","/> <choose> <if type="report thesis" match="any"> <group prefix=" (" suffix=")" delimiter=", "> <group delimiter=" "> <text variable="genre"/> <text variable="number" prefix="No. "/> </group> <group delimiter=" "> <text term="version" text-case="capitalize-first"/> <text variable="version"/> </group> <text macro="edition"/> </group> </if> <else-if type="post-weblog webpage" match="any"> <text variable="genre" prefix=" [" suffix="]"/> </else-if> <else-if variable="version"> <group delimiter=" " prefix=" (" suffix=")"> <text term="version" text-case="capitalize-first"/> <text variable="version"/> </group> </else-if> </choose> <text macro="format"/> </macro> <macro name="format"> <text variable="medium" text-case="capitalize-first" prefix=" [" suffix="]"/> </macro> <macro name="publisher"> <choose> <if type="report" match="any"> <group delimiter=": "> <text variable="publisher-place"/> <text variable="publisher"/> </group> </if> <else-if type="thesis" match="any"> <group> <text variable="abstract" suffix=", "/> </group> <group delimiter=", "> <text variable="publisher"/> <text variable="publisher-place"/> </group> </else-if> <else-if type="post-weblog webpage" match="none"> <group delimiter=", "> <choose> <if variable="event version" type="speech" match="none"> <text variable="genre"/> </if> </choose> <choose> <if type="article-journal article-magazine paper-conference" match="none"> <group delimiter=": "> <choose> <if variable="publisher-place"> <text variable="publisher-place"/> </if> <else> <text variable="event-place"/> </else> </choose> <text variable="publisher"/> </group> </if> </choose> </group> </else-if> </choose> </macro> <macro name="event"> <choose> <if variable="container-title" match="none"> <choose> <if variable="event"> <choose> <if variable="genre" match="none"> <text term="presented at" text-case="capitalize-first" suffix=" "/> <text variable="event"/> </if> <else> <group delimiter=" "> <text variable="genre" text-case="capitalize-first"/> <text term="presented at"/> <text variable="event"/> </group> </else> </choose> </if> <else-if type="speech"> <text variable="genre" text-case="capitalize-first"/> </else-if> </choose> </if> </choose> </macro> <macro name="issued"> <choose> <if type="bill legal_case legislation" match="none"> <choose> <if variable="issued"> <group prefix=" "> <date variable="issued" prefix="(" suffix="), "> <date-part name="year"/> </date> <text variable="year-suffix"/> <choose> <if type="speech" match="any"> <date variable="issued"> <date-part prefix=", " name="month"/> </date> </if> <else-if type="article-journal bill book chapter graphic legal_case legislation motion_picture paper-conference report song" match="none"> <date variable="issued"> <date-part prefix=", " name="month"/> <date-part prefix=" " name="day"/> </date> </else-if> </choose> </group> </if> <else-if variable="status"> <group prefix=" (" suffix=")"> <text variable="status"/> <text variable="year-suffix" prefix="-"/> </group> </else-if> <else> <group prefix=" " suffix=""> <text variable="year-suffix" prefix="-"/> </group> </else> </choose> </if> </choose> </macro> <macro name="issued-sort"> <choose> <if type="article-journal bill book chapter graphic legal_case legislation motion_picture paper-conference report song" match="none"> <date variable="issued"> <date-part name="day"/> <date-part name="month"/> <date-part name="year"/> </date> </if> <else> <date variable="issued"> <date-part name="year"/> </date> </else> </choose> </macro> <macro name="issued-year"> <choose> <if variable="issued"> <group delimiter="/"> <date variable="original-date" form="text"/> <group> <date variable="issued"> <date-part name="year"/> </date> <text variable="year-suffix"/> </group> </group> </if> <else-if variable="status"> <text variable="status"/> <text variable="year-suffix" prefix="-"/> </else-if> <else> <text term="no date" form="short"/> <text variable="year-suffix" prefix="-"/> </else> </choose> </macro> <macro name="edition"> <choose> <if is-numeric="edition"> <group delimiter=" "> <text term="edition" form="short" prefix=" "/> <number variable="edition"/> </group> </if> <else> <text variable="edition" prefix=" "/> </else> </choose> </macro> <macro name="locators"> <choose> <if type="article-journal article-magazine" match="any"> <group prefix=", " delimiter=", "> <group> <text variable="volume" font-style="italic"/> <text variable="issue" prefix="(" suffix=")"/> </group> <text variable="page"/> </group> <choose> <if variable="issued"> <choose> <if variable="page issue" match="none"> <text variable="status" prefix=". "/> </if> </choose> </if> </choose> </if> <else-if type="article-newspaper"> <group delimiter=" " prefix=", "> <label variable="page" form="short"/> <text variable="page"/> </group> </else-if> <else-if type="book graphic motion_picture report song chapter paper-conference entry-encyclopedia entry-dictionary" match="any"> <group prefix=" " suffix="" delimiter=", "> <choose> <if type="report" match="none"> <text macro="edition"/> </if> </choose> <choose> <if variable="volume" match="any"> <group> <text term="volume" form="short" text-case="capitalize-first" suffix=" "/> <number variable="volume" form="numeric"/> </group> </if> <else> <group> <text term="volume" form="short" plural="true" text-case="capitalize-first" suffix=" "/> <number variable="number-of-volumes" form="numeric" prefix="1–"/> </group> </else> </choose> <group> <label prefix="" suffix="" variable="page" form="short"/> <text variable="page"/> </group> </group> </else-if> <else-if type="legal_case"> <group prefix=" (" suffix=")" delimiter=" "> <text variable="authority"/> <date variable="issued" form="text"/> </group> </else-if> <else-if type="bill legislation" match="any"> <date variable="issued" prefix=" (" suffix=")"> <date-part name="year"/> </date> </else-if> </choose> </macro> <macro name="citation-locator"> <group> <choose> <if locator="chapter"> <label variable="locator" form="long" text-case="capitalize-first"/> </if> <else> <label variable="locator" form="short"/> </else> </choose> <text variable="locator" prefix=" "/> </group> </macro> <macro name="container"> <choose> <if type="post-weblog webpage" match="none"> <group> <choose> <if type="chapter paper-conference entry-encyclopedia" match="any"/> </choose> <text macro="container-contributors"/> <text macro="secondary-contributors"/> <text macro="container-title"/> </group> </if> </choose> </macro> <macro name="container-title"> <choose> <if type="article article-journal article-magazine article-newspaper" match="any"> <text variable="container-title" text-case="title" font-style="italic" font-weight="normal" prefix=" "/> </if> <else-if type="bill legal_case legislation" match="none"> <text variable="container-title" font-style="italic" font-weight="normal" prefix=" "/> </else-if> </choose> </macro> <macro name="legal-cites"> <choose> <if type="bill legal_case legislation" match="any"> <group delimiter=" " prefix=", "> <choose> <if variable="container-title"> <text variable="volume"/> <text variable="container-title"/> <group delimiter=" "> <text term="section" form="symbol"/> <text variable="section"/> </group> <text variable="page"/> </if> <else> <choose> <if type="legal_case"> <text variable="number" prefix="No. "/> </if> <else> <text variable="number" prefix="Pub. L. No. "/> <group delimiter=" "> <text term="section" form="symbol"/> <text variable="section"/> </group> </else> </choose> </else> </choose> </group> </if> </choose> </macro> <macro name="original-date"> <choose> <if variable="original-date"> <group prefix="(" suffix=")" delimiter=" "> <text value="Original work published"/> <date variable="original-date" form="text"/> </group> </if> </choose> </macro> <citation et-al-min="6" et-al-use-first="1" et-al-subsequent-min="3" et-al-subsequent-use-first="1" disambiguate-add-year-suffix="true" disambiguate-add-names="true" disambiguate-add-givenname="true" collapse="year" givenname-disambiguation-rule="primary-name"> <sort> <key macro="author"/> <key macro="issued-sort"/> </sort> <layout prefix="(" suffix=")" delimiter="; "> <group delimiter=", "> <text macro="author-short"/> <text macro="issued-year"/> <text macro="citation-locator"/> </group> </layout> </citation> <bibliography et-al-min="8" et-al-use-first="6" et-al-use-last="true" entry-spacing="0" line-spacing="2" hanging-indent="true"> <sort> <key macro="author"/> <key macro="issued-sort" sort="ascending"/> <key macro="title"/> </sort> <layout suffix="."> <group> <group> <text macro="author"/> <text macro="issued"/> <text macro="title-plus-extra" suffix=" "/> <text macro="container"/> </group> <text macro="legal-cites"/> <text macro="locators"/> <group delimiter=", " prefix=" "> <text macro="event"/> <text macro="publisher"/> </group> </group> <text macro="access"/> <text macro="original-date" prefix=" "/> </layout> </bibliography> </style>
# My Little Rainbow This repo is a remediation to "no access permission" given to clone and complete this lab. ______________________________ ..We're going to make a rainbow with HTML `<div>` elements. .We're going to learn about HTML elements, CSS styling, CSS selectors, how color works in CSS, and importing stylesheets. That might sound like a lot but it isn't. Before we start, here's some basic info about HTML and CSS. Skip to [Making a Rainbow](#making-a-rainbow) if you feel comfortable enough with HTML and CSS. ## HTML Basics Hyper Text Markup Language, or HTML, is a way to demarcate a document into different parts. Each part is _marked_ by elements (using tags). Each element has its own special connotation that the browser uses to _render_ the HTML document. Use this [cheat sheet](https://web.stanford.edu/group/csp/cs21/htmlcheatsheet.pdf) on HTML elements for guidance. ### Elements - All begin with `<` and end with `>`, e.g., `<div>` (this last part is a tag). - Most have an opening tag such as `<div>` and a closing tag `</div>`. + The `/` indicates to the browser that that tag is a closing tag. + The element is everything between the tags and the tags themselves. - Some tags are self closing like the line break element `<br>`. - Elements can have IDs and classes to aid the browser in finding specific tags. + Must begin with a letter A-Z or a-z. + Can be followed by: letters (`A-Za-z`), digits (`0-9`), hyphens (`-`), and underscores (`_`). + IDs **can** only be used once per page. E.g.: `<div id="this-special-div"></div>`. + Classes can be used as many times as you want. E.g.: `<div class="a-less-special-div"></div>`. - Elements nested inside other elements are called children. + Children inherit attributes from their parents. + Don't nest everything. - Elements next to one another are siblings. + Siblings do not inherit from one another, but are important for selecting in CSS. Here is an example of element relations: ```html <div> <!-- the parent element --> <p></p> <!-- the first sibling element/the first child--> <p></p> <!-- the second sibling element/the second child --> </div> ``` ## CSS Basics Cascading Style Sheets, or CSS, is a language created to style an HTML document by telling the browser how specific elements should look. CSS does this by selecting elements based on their tag, ids, classes, or all of the above. The reason for CSS is the separation of concerns. We want HTML only to be concerned with how it displays and demarcates information, and we let CSS worry about how to make that information look pretty. ### CSS selectors - They select elements to assign them styles. - `*` (wildcard) selects every element. - An element, such as `div`, will select all elements of that type. - They select an id like `#some-id` - Classes are selected like this `.some-class` - To select all children elements of a parent do something like this `div p` - To select multiple different elements separate them by commas like this `div, p, a` Here's an example of CSS styling: ```css * { color: red; /* color in CSS refers to font color */ } /* all elements will have red font */ ``` ## Making a Rainbow First off make sure you have [forked](https://github.com/learn-co-students/my-little-rainbow-v-000) and cloned this repo. Next, create a new branch, and switch to it; it's `git checkout -b your_solution_branch_name` in case you forgot. In that directory you'll see three files. `index.html`, `main.css`, and this `README.md`. Open them in your text editor via your command line. Also open `index.html` in your browser; if everything is working correctly you should see a white page. Good job! ### Making the Divs Visible If you use the inspector or look at the file in your text editor, you'll see that the basic file stucture is there. So why can't we see anything?!?!? That's because the divs have no styling on them right now. And that's because we never told the browser to include a CSS file that would apply any styles. Let's fix this by adding the stylesheet to the `head` like so, ```html <head> ... <link rel="stylesheet" type="text/css" href="main.css"> ... </head> ``` Link is a self closing tag that will create a relative path with the `href` attribute. A relative path means the browser knows that the `main.css` file is in the same place as `index.html`. The `head` is a hidden part of the page that tells the browser where to find any other files it needs to display the page correctly, the `title` for the tab, and any other possible important information. Now if you refresh the `index.html` page in your browser you should see an ugly black rainbow. Gerd Jerb! Okay so we got the basic outline because in the `main.css` all the `div` elements were selected and styled, but the colors are wrong because the default border color is black. To fix this we need to learn a little bit more about colors, because while we could just set `color: red;` we should learn how to make colors without words. We should just use numbers, and not just any set of numbers, but numbers with base pair of 16 rather than base pair of 10 like we use everyday. These numbers are called hexadecimals and we can use them to make colors. #### Some Stuff You Should Know About Hex Colors (and Web Colors in General). Hex colors begin with `#` and are followed by, generally, 6 numbers, but some of these numbers are actually letters. The lowest single digit number in hex is 0 and the highest single digit number is f. This table might help to visualize what we mean by this. ``` Decimal Numbers: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 Hexadecimal Numbers: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, 10 ``` Hex colors work by creating Red, Green, Blue (RGB) values. Traditional RGB colors are on a scale of 0 to 255 for each of the three colors in the spectrum. Hex colors are considered true colors since it can represent ~16 million colors, but your eye can only see 10 million of those. So `#000000` translates to black since 0 reds, 0 green, 0 blues represents the absence of all colors, and `#ffffff` makes white since 255 reds, 255 greens, and 255 blues is the maximum of each of the colors. Hex colors can be shortened to just three numbers when each RGB value is the same for each digit. So `#11dd99` can be written as `#1d9`. #### Coloring the Rainbow To get roygbiv onto our rainbow we'll need seven hex colors. Red: `#f00`; Orange: `#ffa500`; Yellow: `#ff0`; Green: `#00bc3f`; Blue: `#06f`; Indigo: `#8a2be2`; Violet: `#d300c9` With those colors all we have to do next is select each div individually. That is a perfect use for ids since they're meant to style one specific element only. So that means we'll need to add an id for each div, so a logical name for each div would be the color that they have to be. It could be something random, but good names make for semantic code. So let's give the outermost div the id red. We'll do this like so. ```html <div id="red"> ... </div> ``` And to give that id some CSS attributes we'll go into `main.css`, select the id, and mark its color as red like this. ```css #red { /* this selects any elements with the red id */ border-top-color: #f00; } ``` So to make sure the rainbow isn't so monochromatic you now need to repeat the above steps with the final six colors of the rainbow, and when you do you should have something like [this](http://i0.kym-cdn.com/photos/images/original/000/118/087/2468904593_6a7c692ab6.jpg). <p class='util--hide'>View <a href='https://learn.co/lessons/my-little-rainbow'>My Little Rainbow</a> on Learn.co and start learning to code for free.</p>
All 26 repositories loaded