{"action":"created","comment":{"url":"https://api.github.com/repos/sparrell/sFractals/pulls/comments/47114957","id":47114957,"diff_hunk":"@@ -0,0 +1,406 @@\n+%%%-------------------------------------------------------------------\n+%%% @author Duncan Sparrell\n+%%% @copyright (C) 2015, sFractal Consulting LLC\n+%%%\n+%%%-------------------------------------------------------------------\n+\n+-module(compute_fractal_data).\n+-author(\"Duncan Sparrell\").\n+%% try to make simple fractal data and then turn into color data and then make image\n+\n+%% public API\n+-export([\n+          compute_fractal_data/1,           % create a block of fractal data\n+          compute_fractal_data_file/1,   % create a block of fractal data and write to file\n+          compute_fractal_data_file2/1,   % create a block of fractal data and write to file\n+          make_png_from_data/2,              % create a Png from block of fractal data\n+          make_png_from_file/1           % create a Png from block of fractal data in a file\n+          ]).\n+\n+%% expose functions for test\n+-export([ compute_fractal_data/11 ]).\n+\n+%% public API for making fractal\n+make_png_from_file(ConfigMap) ->       % create a Png from file of fractal data\n+    %% get the data\n+    {ok, Rows} = file:consult( maps:get( dataFileName, ConfigMap) ),\n+\n+    %% make the png\n+    make_png_from_data(Rows, ConfigMap).\n+\n+\n+make_png_from_data(Rows, ConfigMap) ->       % create a Png from block of fractal data\n+    %% initialize the png\n+    ThisPng = imagelib:startPng( ConfigMap ),\n+\n+    %% add all the rows, one at a time, to the image\n+    addRows(ThisPng, Rows),\n+\n+    %% finalize the png\n+    imagelib:finishPng( ThisPng ),\n+\n+    ok.\n+\n+addRows(_ThisPng, []) ->\n+    %% no rows left so done\n+    ok;\n+\n+addRows(ThisPng, [ThisRow | RestOfRows ] ) ->\n+    %% add row to png\n+    imagelib:addRow( ThisRow, ThisPng ),\n+\n+    %%recurse\n+    addRows(ThisPng, RestOfRows).\n+\n+%%%%%%%%\n+%% compute_fractal_data/1 API\n+%%        ConfigMap    - config info\n+%%        returns Rows (list of rows where each row is list of counts, 1 per pixel)\n+%%%%%%%%\n+compute_fractal_data(ConfigMap) ->\n+    %% get config needed\n+    %% create height rows of width columns of pixels\n+    Width           = maps:get(width, ConfigMap),\n+    Height          = maps:get(height, ConfigMap),\n+    %% each pixel has a corresonding complex number defined by corners of the box\n+    XRealRight      = maps:get(xRealRight, ConfigMap),\n+    XRealLeft       = maps:get(xRealLeft, ConfigMap),\n+    YImaginaryLow   = maps:get(yImaginaryLow, ConfigMap),\n+    YImaginaryHigh  = maps:get(yImaginaryHigh, ConfigMap),\n+    %% box is bounded on left by x > XRealLeft\n+    %%      and bounded on right by x < XRealRight\n+    %% box is bounded on top by y > YImaginaryHigh \n+    %%      and bounded on bottom by y > YImaginaryLow\n+    %% box is width pixels wide and height pixels high\n+\n+    %% step is floating range divided by number of pixels\n+    DeltaX = (XRealRight - XRealLeft) / Width,\n+    DeltaY = (YImaginaryHigh - YImaginaryLow) / Height,\n+\n+    %% call compute_fractal_data/11\n+    % return Rows from compute_fractal_data/11\n+    compute_fractal_data( [],             % Rows starts empty\n+                        [],             % ThisRow starts empty\n+                        Width,          % XPix starts width and decrements to 1\n+                        XRealRight,     %% XR starts at right and decrements to by deltaX\n+                        DeltaX,\n+                        Width,          % width\n+                        Height,         % YPix starts height and decrements to 1\n+                        YImaginaryHigh, % YI starts at top and decrements by delta y\n+                        DeltaY,\n+                        Height,         % height\n+                        ConfigMap).    % map of parameters\n+\n+\n+\n+%%%%%%%%\n+%% compute_fractal_data/11 API\n+%%        Rows         - a list of the rows(lines) of data, starts empty \n+%%                         and builds until height reached, built top down\n+%%        ThisRow      - a list of the points(count value) in a row/line, \n+%%                         starts empty and builds R->L until width reached\n+%%        XPix         - the integer X value of the pixel\n+%%        XR           - the real component of the floating point number\n+%%                         for computing fractal for this XPix\n+%%        DeltaX       - for each pixel, XR increases by this amount\n+%%        Width        - width of fractal in pixels\n+%%        YPix         - the integer Y value of the pixel\n+%%        YI           - the imaginary component of the floating point number\n+%%                         for computing fractal for this YPix\n+%%        DeltaY       - for each pixel, YI increases by this amount\n+%%        Height       - height(intger) of image = number of rows\n+%%        ConfigMap    - config info\n+%%%%%%%%\n+% clause when height is reached, return the rows of data\n+compute_fractal_data( Rows, _ThisRow,\n+               _XPix, _XR, _DeltaX, _Width,\n+               YPix, _YI, _DeltaY, _Height,  % only height matters\n+               _ConfigMap)\n+        when YPix =< 0 ->\n+\n+    %% pixels all made already so done\n+    Rows;\n+\n+% clause when row is complete  but height not reached - process row and recurse\n+compute_fractal_data( Rows, ThisRow,        % row data computed so far\n+               XPix, _XR, DeltaX, Width,  % info for points in a row\n+               YPix, YI, DeltaY, Height,  % info for rows\n+               ConfigMap)\n+        when XPix =< 0, YPix >= 0 ->\n+\n+    % add row\n+    NewRows = [ ThisRow | Rows ],\n+\n+    % reset to begining of next row\n+    NewRowData = [],                                 % reset data for row to empty\n+    NewXPix    = Width,                              % reset to end of line\n+    NewXR      = maps:get(xRealRight, ConfigMap),     % reset to end of line\n+    NewYPix    = YPix - 1,                           % increment row\n+    NewYI      = YI - DeltaY,                          % increment row\n+    compute_fractal_data( NewRows, NewRowData,\n+                   NewXPix, NewXR, DeltaX, Width,\n+                   NewYPix, NewYI, DeltaY, Height,\n+                   ConfigMap);\n+\n+compute_fractal_data( Rows, RowData,       % row data computed so far\n+               XPix, XR, DeltaX, Width,   % info for points in a row\n+               YPix, YI, DeltaY, Height,  % info for rows\n+               ConfigMap)\n+        when XPix > 0, YPix > 0 ->\n+\n+    %% get iteration count for this point\n+    NewPoint = compute_points:compute_iteration_value( maps:get(fractalAlg, ConfigMap),\n+                                      maps:get(cReal, ConfigMap),\n+                                      maps:get(cImaginary, ConfigMap),\n+                                      XR,\n+                                      YI,\n+                                      0,          %iteration count starts at zero\n+                                      maps:get(maxIterationThreshold, ConfigMap),\n+                                      maps:get(bailoutThreshold, ConfigMap)\n+                                      ),\n+\n+    NewRowData = [ NewPoint | RowData ],\n+    NewXPix    = XPix - 1,                           % decrement moving left building row\n+    NewXR      = XR - DeltaX,                        % decrease XR to the left\n+    compute_fractal_data( Rows, NewRowData,\n+                   NewXPix, NewXR, DeltaX, Width,\n+                   YPix, YI, DeltaY, Height,\n+                   ConfigMap).\n+\n+\n+%%%%%%%%\n+%% compute_fractal_data_file/1 API\n+%%        ConfigMap    - config info\n+%%        creates file with list of rows (where each row is list of counts, 1 per pixel)\n+%%                     suitable to be read with file:consult\n+%%%%%%%%\n+compute_fractal_data_file(ConfigMap) ->\n+    %% get config needed\n+    DataFileName  = maps:get(dataFileName, ConfigMap),\n+    %% create height rows of width columns of pixels\n+    Width           = maps:get(width, ConfigMap),\n+    Height          = maps:get(height, ConfigMap),\n+    %% each pixel has a corresonding complex number defined by corners of the box\n+    XRealRight      = maps:get(xRealRight, ConfigMap),\n+    XRealLeft       = maps:get(xRealLeft, ConfigMap),\n+    YImaginaryLow   = maps:get(yImaginaryLow, ConfigMap),\n+    YImaginaryHigh  = maps:get(yImaginaryHigh, ConfigMap),\n+    %% box is bounded on left by x > XRealLeft and bounded on right by x < XRealRight\n+    %% box is bounded on top by y > YImaginaryHigh and bounded on bottom by y > YImaginaryLow\n+    %% box is width pixels wide and height pixels high\n+\n+    %% step is floating range divided by number of pixels\n+    DeltaX = (XRealRight - XRealLeft) / Width,\n+    DeltaY = (YImaginaryHigh - YImaginaryLow) / Height,\n+\n+    %% open file\n+    {ok, DataFile} = file:open(DataFileName, [write]),\n+\n+    %% call compute_fractal_data_file/11\n+    %% writing rows one at a time\n+    compute_fractal_data_file( DataFile,       % file where data is written\n+                        [],             % ThisRow starts empty\n+                        Width,          % XPix starts width and decrements to 1\n+                        XRealRight,     %% XR starts at right and decrements to by deltaX\n+                        DeltaX,\n+                        Width,          % width\n+                        Height,         % YPix starts height and decrements to 1\n+                        YImaginaryHigh, % YI starts at top and decrements by delta y\n+                        DeltaY,\n+                        Height,         % height\n+                        ConfigMap).    % map of parameters\n+\n+\n+\n+%%%%%%%%\n+%% compute_fractal_data_file/11 API\n+%%        DataFile     - file already opened for writing\n+%%        ThisRow      - a list of the points(count value) in a row/line, starts empty and builds R->L until width reached\n+%%        XPix         - the integer X value of the pixel\n+%%        XR           - the real component of the floating point number for computing fractal for this XPix\n+%%        DeltaX       - for each pixel, XR increases by this amount\n+%%        Width        - width of fractal in pixels\n+%%        YPix         - the integer Y value of the pixel\n+%%        YI           - the imaginary component of the floating point number for computing fractal for this YPix\n+%%        DeltaY       - for each pixel, YI increases by this amount\n+%%        Height       - height(intger) of image = number of rows\n+%%        ConfigMap    - config info\n+%%%%%%%%\n+% clause when height is reached, return the rows of data\n+compute_fractal_data_file( DataFile, _ThisRow,\n+               _XPix, _XR, _DeltaX, _Width,\n+               YPix, _YI, _DeltaY, _Height,  % only height matters\n+               _ConfigMap)\n+        when YPix =< 0 ->\n+\n+    %% pixels all made already, therefore work is finished so close file and end\n+    file:close(DataFile);\n+\n+% clause when row is complete  but height not reached - process row and recurse\n+compute_fractal_data_file( DataFile, ThisRow,        % row data computed so far\n+               XPix, _XR, DeltaX, Width,  % info for points in a row\n+               YPix, YI, DeltaY, Height,  % info for rows\n+               ConfigMap)\n+        when XPix =< 0, YPix >= 0 ->\n+\n+    % add row to file\n+    io:format(DataFile,\"~w.~n\",[ThisRow]),\n+\n+    % reset to begining of next row\n+    NewRowData = [],                                 % reset data for row to empty\n+    NewXPix    = Width,                              % reset to end of line\n+    NewXR      = maps:get(xRealRight, ConfigMap),     % reset to end of line\n+    NewYPix    = YPix - 1,                           % increment row\n+    NewYI      = YI - DeltaY,                          % increment row\n+    compute_fractal_data_file( DataFile, NewRowData,\n+                   NewXPix, NewXR, DeltaX, Width,\n+                   NewYPix, NewYI, DeltaY, Height,\n+                   ConfigMap);\n+\n+compute_fractal_data_file( DataFile, RowData,       % row data computed so far\n+               XPix, XR, DeltaX, Width,   % info for points in a row\n+               YPix, YI, DeltaY, Height,  % info for rows\n+               ConfigMap)\n+        when XPix > 0, YPix > 0 ->\n+\n+    %% get iteration count for this point\n+    NewPoint = compute_points:compute_iteration_value( maps:get(fractalAlg, ConfigMap),\n+                                      maps:get(cReal, ConfigMap),\n+                                      maps:get(cImaginary, ConfigMap),\n+                                      XR,\n+                                      YI,\n+                                      0,          %iteration count starts at zero","path":"src/compute_fractal_data.erl","position":null,"original_position":272,"commit_id":"6c6dc55e78bce13cff63d97bce63df90efe81925","original_commit_id":"b0afb6f82db1b83b9f9632cc58e34f2d1b624782","user":{"login":"gadgetci","id":10134338,"avatar_url":"https://avatars.githubusercontent.com/u/10134338?v=3","gravatar_id":"","url":"https://api.github.com/users/gadgetci","html_url":"https://github.com/gadgetci","followers_url":"https://api.github.com/users/gadgetci/followers","following_url":"https://api.github.com/users/gadgetci/following{/other_user}","gists_url":"https://api.github.com/users/gadgetci/gists{/gist_id}","starred_url":"https://api.github.com/users/gadgetci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gadgetci/subscriptions","organizations_url":"https://api.github.com/users/gadgetci/orgs","repos_url":"https://api.github.com/users/gadgetci/repos","events_url":"https://api.github.com/users/gadgetci/events{/privacy}","received_events_url":"https://api.github.com/users/gadgetci/received_events","type":"User","site_admin":false},"body":"According to **Elvis**:\n> Line 272 is too long:                                       0,          %iteration count starts at zero.","created_at":"2015-12-09T16:35:15Z","updated_at":"2015-12-09T16:35:15Z","html_url":"https://github.com/sparrell/sFractals/pull/65#discussion_r47114957","pull_request_url":"https://api.github.com/repos/sparrell/sFractals/pulls/65","_links":{"self":{"href":"https://api.github.com/repos/sparrell/sFractals/pulls/comments/47114957"},"html":{"href":"https://github.com/sparrell/sFractals/pull/65#discussion_r47114957"},"pull_request":{"href":"https://api.github.com/repos/sparrell/sFractals/pulls/65"}}},"pull_request":{"url":"https://api.github.com/repos/sparrell/sFractals/pulls/65","id":53126806,"html_url":"https://github.com/sparrell/sFractals/pull/65","diff_url":"https://github.com/sparrell/sFractals/pull/65.diff","patch_url":"https://github.com/sparrell/sFractals/pull/65.patch","issue_url":"https://api.github.com/repos/sparrell/sFractals/issues/65","number":65,"state":"open","locked":false,"title":"Issue 64 151207","user":{"login":"sparrell","id":1723279,"avatar_url":"https://avatars.githubusercontent.com/u/1723279?v=3","gravatar_id":"","url":"https://api.github.com/users/sparrell","html_url":"https://github.com/sparrell","followers_url":"https://api.github.com/users/sparrell/followers","following_url":"https://api.github.com/users/sparrell/following{/other_user}","gists_url":"https://api.github.com/users/sparrell/gists{/gist_id}","starred_url":"https://api.github.com/users/sparrell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sparrell/subscriptions","organizations_url":"https://api.github.com/users/sparrell/orgs","repos_url":"https://api.github.com/users/sparrell/repos","events_url":"https://api.github.com/users/sparrell/events{/privacy}","received_events_url":"https://api.github.com/users/sparrell/received_events","type":"User","site_admin":false},"body":"get these into master to clean up cruft (but still need to do real is 64 work)\n","created_at":"2015-12-09T14:40:40Z","updated_at":"2015-12-09T16:35:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2f92a5b528deea53fd09c7114563e00030b35b2a","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/sparrell/sFractals/pulls/65/commits","review_comments_url":"https://api.github.com/repos/sparrell/sFractals/pulls/65/comments","review_comment_url":"https://api.github.com/repos/sparrell/sFractals/pulls/comments{/number}","comments_url":"https://api.github.com/repos/sparrell/sFractals/issues/65/comments","statuses_url":"https://api.github.com/repos/sparrell/sFractals/statuses/6c6dc55e78bce13cff63d97bce63df90efe81925","head":{"label":"sparrell:issue-64-151207","ref":"issue-64-151207","sha":"6c6dc55e78bce13cff63d97bce63df90efe81925","user":{"login":"sparrell","id":1723279,"avatar_url":"https://avatars.githubusercontent.com/u/1723279?v=3","gravatar_id":"","url":"https://api.github.com/users/sparrell","html_url":"https://github.com/sparrell","followers_url":"https://api.github.com/users/sparrell/followers","following_url":"https://api.github.com/users/sparrell/following{/other_user}","gists_url":"https://api.github.com/users/sparrell/gists{/gist_id}","starred_url":"https://api.github.com/users/sparrell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sparrell/subscriptions","organizations_url":"https://api.github.com/users/sparrell/orgs","repos_url":"https://api.github.com/users/sparrell/repos","events_url":"https://api.github.com/users/sparrell/events{/privacy}","received_events_url":"https://api.github.com/users/sparrell/received_events","type":"User","site_admin":false},"repo":{"id":41819741,"name":"sFractals","full_name":"sparrell/sFractals","owner":{"login":"sparrell","id":1723279,"avatar_url":"https://avatars.githubusercontent.com/u/1723279?v=3","gravatar_id":"","url":"https://api.github.com/users/sparrell","html_url":"https://github.com/sparrell","followers_url":"https://api.github.com/users/sparrell/followers","following_url":"https://api.github.com/users/sparrell/following{/other_user}","gists_url":"https://api.github.com/users/sparrell/gists{/gist_id}","starred_url":"https://api.github.com/users/sparrell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sparrell/subscriptions","organizations_url":"https://api.github.com/users/sparrell/orgs","repos_url":"https://api.github.com/users/sparrell/repos","events_url":"https://api.github.com/users/sparrell/events{/privacy}","received_events_url":"https://api.github.com/users/sparrell/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/sparrell/sFractals","description":"play with erlang, rebar3, and fractals","fork":false,"url":"https://api.github.com/repos/sparrell/sFractals","forks_url":"https://api.github.com/repos/sparrell/sFractals/forks","keys_url":"https://api.github.com/repos/sparrell/sFractals/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sparrell/sFractals/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sparrell/sFractals/teams","hooks_url":"https://api.github.com/repos/sparrell/sFractals/hooks","issue_events_url":"https://api.github.com/repos/sparrell/sFractals/issues/events{/number}","events_url":"https://api.github.com/repos/sparrell/sFractals/events","assignees_url":"https://api.github.com/repos/sparrell/sFractals/assignees{/user}","branches_url":"https://api.github.com/repos/sparrell/sFractals/branches{/branch}","tags_url":"https://api.github.com/repos/sparrell/sFractals/tags","blobs_url":"https://api.github.com/repos/sparrell/sFractals/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sparrell/sFractals/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sparrell/sFractals/git/refs{/sha}","trees_url":"https://api.github.com/repos/sparrell/sFractals/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sparrell/sFractals/statuses/{sha}","languages_url":"https://api.github.com/repos/sparrell/sFractals/languages","stargazers_url":"https://api.github.com/repos/sparrell/sFractals/stargazers","contributors_url":"https://api.github.com/repos/sparrell/sFractals/contributors","subscribers_url":"https://api.github.com/repos/sparrell/sFractals/subscribers","subscription_url":"https://api.github.com/repos/sparrell/sFractals/subscription","commits_url":"https://api.github.com/repos/sparrell/sFractals/commits{/sha}","git_commits_url":"https://api.github.com/repos/sparrell/sFractals/git/commits{/sha}","comments_url":"https://api.github.com/repos/sparrell/sFractals/comments{/number}","issue_comment_url":"https://api.github.com/repos/sparrell/sFractals/issues/comments{/number}","contents_url":"https://api.github.com/repos/sparrell/sFractals/contents/{+path}","compare_url":"https://api.github.com/repos/sparrell/sFractals/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sparrell/sFractals/merges","archive_url":"https://api.github.com/repos/sparrell/sFractals/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sparrell/sFractals/downloads","issues_url":"https://api.github.com/repos/sparrell/sFractals/issues{/number}","pulls_url":"https://api.github.com/repos/sparrell/sFractals/pulls{/number}","milestones_url":"https://api.github.com/repos/sparrell/sFractals/milestones{/number}","notifications_url":"https://api.github.com/repos/sparrell/sFractals/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sparrell/sFractals/labels{/name}","releases_url":"https://api.github.com/repos/sparrell/sFractals/releases{/id}","created_at":"2015-09-02T18:31:21Z","updated_at":"2015-10-21T14:12:26Z","pushed_at":"2015-12-09T16:08:19Z","git_url":"git://github.com/sparrell/sFractals.git","ssh_url":"git@github.com:sparrell/sFractals.git","clone_url":"https://github.com/sparrell/sFractals.git","svn_url":"https://github.com/sparrell/sFractals","homepage":null,"size":3692,"stargazers_count":1,"watchers_count":1,"language":"Erlang","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":21,"forks":0,"open_issues":21,"watchers":1,"default_branch":"master"}},"base":{"label":"sparrell:master","ref":"master","sha":"0eabb070322538787bcea3dfa31dc6432d302c3b","user":{"login":"sparrell","id":1723279,"avatar_url":"https://avatars.githubusercontent.com/u/1723279?v=3","gravatar_id":"","url":"https://api.github.com/users/sparrell","html_url":"https://github.com/sparrell","followers_url":"https://api.github.com/users/sparrell/followers","following_url":"https://api.github.com/users/sparrell/following{/other_user}","gists_url":"https://api.github.com/users/sparrell/gists{/gist_id}","starred_url":"https://api.github.com/users/sparrell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sparrell/subscriptions","organizations_url":"https://api.github.com/users/sparrell/orgs","repos_url":"https://api.github.com/users/sparrell/repos","events_url":"https://api.github.com/users/sparrell/events{/privacy}","received_events_url":"https://api.github.com/users/sparrell/received_events","type":"User","site_admin":false},"repo":{"id":41819741,"name":"sFractals","full_name":"sparrell/sFractals","owner":{"login":"sparrell","id":1723279,"avatar_url":"https://avatars.githubusercontent.com/u/1723279?v=3","gravatar_id":"","url":"https://api.github.com/users/sparrell","html_url":"https://github.com/sparrell","followers_url":"https://api.github.com/users/sparrell/followers","following_url":"https://api.github.com/users/sparrell/following{/other_user}","gists_url":"https://api.github.com/users/sparrell/gists{/gist_id}","starred_url":"https://api.github.com/users/sparrell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sparrell/subscriptions","organizations_url":"https://api.github.com/users/sparrell/orgs","repos_url":"https://api.github.com/users/sparrell/repos","events_url":"https://api.github.com/users/sparrell/events{/privacy}","received_events_url":"https://api.github.com/users/sparrell/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/sparrell/sFractals","description":"play with erlang, rebar3, and fractals","fork":false,"url":"https://api.github.com/repos/sparrell/sFractals","forks_url":"https://api.github.com/repos/sparrell/sFractals/forks","keys_url":"https://api.github.com/repos/sparrell/sFractals/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sparrell/sFractals/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sparrell/sFractals/teams","hooks_url":"https://api.github.com/repos/sparrell/sFractals/hooks","issue_events_url":"https://api.github.com/repos/sparrell/sFractals/issues/events{/number}","events_url":"https://api.github.com/repos/sparrell/sFractals/events","assignees_url":"https://api.github.com/repos/sparrell/sFractals/assignees{/user}","branches_url":"https://api.github.com/repos/sparrell/sFractals/branches{/branch}","tags_url":"https://api.github.com/repos/sparrell/sFractals/tags","blobs_url":"https://api.github.com/repos/sparrell/sFractals/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sparrell/sFractals/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sparrell/sFractals/git/refs{/sha}","trees_url":"https://api.github.com/repos/sparrell/sFractals/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sparrell/sFractals/statuses/{sha}","languages_url":"https://api.github.com/repos/sparrell/sFractals/languages","stargazers_url":"https://api.github.com/repos/sparrell/sFractals/stargazers","contributors_url":"https://api.github.com/repos/sparrell/sFractals/contributors","subscribers_url":"https://api.github.com/repos/sparrell/sFractals/subscribers","subscription_url":"https://api.github.com/repos/sparrell/sFractals/subscription","commits_url":"https://api.github.com/repos/sparrell/sFractals/commits{/sha}","git_commits_url":"https://api.github.com/repos/sparrell/sFractals/git/commits{/sha}","comments_url":"https://api.github.com/repos/sparrell/sFractals/comments{/number}","issue_comment_url":"https://api.github.com/repos/sparrell/sFractals/issues/comments{/number}","contents_url":"https://api.github.com/repos/sparrell/sFractals/contents/{+path}","compare_url":"https://api.github.com/repos/sparrell/sFractals/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sparrell/sFractals/merges","archive_url":"https://api.github.com/repos/sparrell/sFractals/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sparrell/sFractals/downloads","issues_url":"https://api.github.com/repos/sparrell/sFractals/issues{/number}","pulls_url":"https://api.github.com/repos/sparrell/sFractals/pulls{/number}","milestones_url":"https://api.github.com/repos/sparrell/sFractals/milestones{/number}","notifications_url":"https://api.github.com/repos/sparrell/sFractals/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sparrell/sFractals/labels{/name}","releases_url":"https://api.github.com/repos/sparrell/sFractals/releases{/id}","created_at":"2015-09-02T18:31:21Z","updated_at":"2015-10-21T14:12:26Z","pushed_at":"2015-12-09T16:08:19Z","git_url":"git://github.com/sparrell/sFractals.git","ssh_url":"git@github.com:sparrell/sFractals.git","clone_url":"https://github.com/sparrell/sFractals.git","svn_url":"https://github.com/sparrell/sFractals","homepage":null,"size":3692,"stargazers_count":1,"watchers_count":1,"language":"Erlang","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":21,"forks":0,"open_issues":21,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/sparrell/sFractals/pulls/65"},"html":{"href":"https://github.com/sparrell/sFractals/pull/65"},"issue":{"href":"https://api.github.com/repos/sparrell/sFractals/issues/65"},"comments":{"href":"https://api.github.com/repos/sparrell/sFractals/issues/65/comments"},"review_comments":{"href":"https://api.github.com/repos/sparrell/sFractals/pulls/65/comments"},"review_comment":{"href":"https://api.github.com/repos/sparrell/sFractals/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/sparrell/sFractals/pulls/65/commits"},"statuses":{"href":"https://api.github.com/repos/sparrell/sFractals/statuses/6c6dc55e78bce13cff63d97bce63df90efe81925"}}}}