Skip to content

Commit a63217b

Browse files
author
Michael
authored
Merge pull request #12 from mldangelo/about
About
2 parents dc4550f + 5e8b1be commit a63217b

37 files changed

+801
-457
lines changed

README.md

+12-11
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,19 @@ My personal website. Built using Node.js, React, Express, React-Router, Hot Modu
44
### Tests:
55
[![Code Climate](https://codeclimate.com/github/mldangelo/mldangelo/badges/gpa.svg)](https://codeclimate.com/github/mldangelo/mldangelo)
66
[![Build Status](https://travis-ci.org/mldangelo/mldangelo.svg?branch=master)](https://travis-ci.org/mldangelo/mldangelo)
7+
[![Dependency Tracking](https://david-dm.org/mldangelo/mldangelo.svg)](https://david-dm.org/)
78

8-
### Requirements:
9-
* node >= v6.0
9+
### Dependencies:
10+
* node >= v6.0.0
11+
* yarn >= v0.18.
1012

1113
### Installation:
1214

1315
1. Run the following commands:
1416
```bash
1517
git clone git://github.com/mldangelo/mldangelo.git
1618
cd mldangelo
17-
npm install
19+
yarn
1820
```
1921

2022
2. Optionally configure nginx. Run:
@@ -23,7 +25,8 @@ My personal website. Built using Node.js, React, Express, React-Router, Hot Modu
2325
sudo ln [root directory]/nginx/mldangelo.conf [nginx directory]/sites-enabled/mldangelo.conf
2426
sudo service nginx restart
2527
```
26-
Note: HTTPS block should be removed if step 2 (below is not followed)
28+
Note: HTTPS block should be removed if step 3 (below) is not followed.
29+
2730
3. Optionally configure a SSL certificate using Certbot. See [here](https://certbot.eff.org/#ubuntutrusty-nginx)
2831
for installation and setup instructions. A cronjob such as:
2932

@@ -38,17 +41,15 @@ for installation and setup instructions. A cronjob such as:
3841

3942
1. ``` cp sample.env .env ``` and set values as appropriate.
4043

41-
2. cd into [root directory] and run:
44+
2. Run `npm run forever-start` and navigate to `<ip>:<port> (default=7999)`.
4245

43-
```bash
44-
npm run build
45-
npm start
46-
```
47-
If running in background, use nohup or screen.
48-
3. Navigate to `<ip>:<port> (default=7999)` and enjoy.
46+
### Developing:
47+
1. Set `NODE_ENV=development` in `.env`.
48+
2. Run `npm run dev`
4949

5050
### Contributors
5151
- [@mldangelo](https://github.com/mldangelo)
52+
- [@typpo](https://github/typpo)
5253

5354
### Acknowlegements
5455
- Special thanks to [@typpo](https://github.com/typpo) for tirelessly answering all of my node.js and react questions.

app/components/Resume.js

-33
This file was deleted.

app/components/Resume/Courses.js

+8-9
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,15 @@ const getRows = () => courses.sort((a, b) => {
1919
));
2020

2121
const Courses = () => (
22-
<article>
23-
<div className="courses">
24-
<div className="title">
25-
<h3>Selected Courses</h3>
26-
</div>
27-
<ul className="course-list">
28-
{getRows()}
29-
</ul>
22+
<div className="courses">
23+
<div className="link-to" id="courses" />
24+
<div className="title">
25+
<h3>Selected Courses</h3>
3026
</div>
31-
</article>
27+
<ul className="course-list">
28+
{getRows()}
29+
</ul>
30+
</div>
3231
);
3332

3433
export default Courses;

app/components/Resume/Education.js

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ const getRows = () => degrees.map(degree => (
1212

1313
const Education = () => (
1414
<div className="education">
15+
<div className="link-to" id="education" />
1516
<div className="title">
1617
<h3>Education</h3>
1718
</div>

app/components/Resume/Experience.js

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ const getRows = () => positions.map(job => (
1212

1313
const Experience = () => (
1414
<div className="experience">
15+
<div className="link-to" id="experience" />
1516
<div className="title">
1617
<h3>Experience</h3>
1718
</div>

app/components/Resume/References.js

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import React from 'react';
2+
import { Link } from 'react-router';
3+
4+
const References = () => (
5+
<div className="references">
6+
<div className="link-to" id="references" />
7+
<div className="title">
8+
<Link to="/contact">
9+
<h3>References are available upon request</h3>
10+
</Link>
11+
</div>
12+
</div>
13+
);
14+
15+
export default References;

app/components/Resume/Skills.js

+1
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ class Skills extends Component {
6969
render() {
7070
return (
7171
<div className="skills">
72+
<div className="link-to" id="skills" />
7273
<div className="title">
7374
<h3>Skills</h3>
7475
<p>Note: I think these sections are silly, but everyone seems to have one.</p>

app/components/Stats/Personal.js

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import React, { Component } from 'react';
2+
3+
import Table from './Table';
4+
import data from '../../data/stats';
5+
6+
class PersonalStats extends Component {
7+
8+
constructor(props) {
9+
super(props);
10+
this.state = { data };
11+
}
12+
13+
componentDidMount() {
14+
this.timer = setInterval(() => this.tick(), 100);
15+
}
16+
17+
tick() {
18+
const divisor = 1000 * 60 * 60 * 24 * 365.2421897; // ms in an average year
19+
const birthTime = new Date('1990-02-05T09:24:00');
20+
this.state.data.age.value = ((Date.now() - birthTime) / divisor).toFixed(9);
21+
this.setState({
22+
data: this.state.data,
23+
});
24+
}
25+
26+
render() {
27+
return (
28+
<div>
29+
<h3>Some stats about me</h3>
30+
<Table
31+
data={Object.values(this.state.data)}
32+
/>
33+
</div>
34+
);
35+
}
36+
}
37+
38+
export default PersonalStats;

app/components/Stats.js app/components/Stats/Site.js

+6-14
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
11
import React, { Component } from 'react';
2-
import { Link } from 'react-router';
32

43
import axios from 'axios';
54

6-
import Table from './Stats/Table';
7-
import data from '../data/github';
5+
import Table from './Table';
6+
import data from '../../data/github';
87

98
class Stats extends Component {
109

1110
constructor(props) {
1211
super(props);
13-
this.state = {
14-
data,
15-
};
12+
this.state = { data };
1613
}
1714

1815
componentDidMount() {
@@ -32,17 +29,12 @@ class Stats extends Component {
3229

3330
render() {
3431
return (
35-
<article className="post" id="stats">
36-
<header>
37-
<div className="title">
38-
<h2><Link to="/stats">Some stats about this site</Link></h2>
39-
<p>Click <a href="https://github.com/mldangelo/mldangelo/tree/master/scripts">here</a> to see how these are generated.</p>
40-
</div>
41-
</header>
32+
<div>
33+
<h3>Some stats about this site</h3>
4234
<Table
4335
data={data}
4436
/>
45-
</article>
37+
</div>
4638
);
4739
}
4840
}

app/components/Stats/Table.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class Table extends Component {
1717

1818
render() {
1919
return (
20-
<table style={{ width: '100%' }}>
20+
<table>
2121
<tbody>
2222
{this.getRows()}
2323
</tbody>

app/components/Stats/TableRow.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class TableRow extends Component {
1111
render() {
1212
return (
1313
<tr>
14-
<td>{this.props.label}</td>
14+
<td width="70%">{this.props.label}</td>
1515
<td>{this.getValue()}</td>
1616
</tr>
1717
);

app/components/Template/Header/Hamburger.js app/components/Template/Hamburger.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Link, IndexLink } from 'react-router';
33

44
import Menus from 'react-burger-menu';
55

6-
import links from '../../../data/links';
6+
import links from '../../data/links';
77

88
const Menu = Menus.slide;
99

app/components/Template/Header.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React from 'react';
22
import { Link, IndexLink } from 'react-router';
33

4-
import Hamburger from './Header/Hamburger';
4+
import Hamburger from './Hamburger';
55
import links from '../../data/links';
66

77
const Header = () => (

app/data/about.md

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
<div></div>
2+
#### Intro
3+
I am the CTO of [Arthena](https://arthena.com) where I work on building the most accurate models for pricing and valuating fine art. My primary job functions are as a data scientist and software engineer.
4+
<br>
5+
I am available to consult on interesting projects. I am particularly interested in social impact, education, inclusively, space, and in applying machine learning to large data sets. I may even be available for pro-bono work depending on the time commitment and the project. If you'd like to meet, I am based in Palo Alto but travel to New York frequently.
6+
<br><br>
7+
#### currently
8+
At Arthena I have learned how to build teams and manage people, build relationships with customers, sell enterprise products, and build on-line predictive models for production environments. I've also learned how to build and maintain large web applications (see [arthena.com](https://arthena.com)).
9+
<br><br>
10+
#### Some History (Early Life):
11+
12+
- I was born on February 5th, 1990.
13+
14+
- My parents put a computer in my bedroom when I was 3. It was an old Tandy that ran MS-DOS and could barely handle Wolfenstein 3D.
15+
16+
- We subscribed to AOL in 1995. I still remember installing it from a floppy disk onto our brand new Packard Bell.
17+
18+
- At 8, my parents bought me a Sony Mavica MVC-FD71 digital camera after I stole their SLR one too many times. It could fit 10 images to a floppy disk at a 0.3MP resolution. I still have it and it still works. I've been taking photographs ever since, now with a Nikon D750, D800, and occasionally with a Mamiya 6II.
19+
20+
- At 10, I built my first website with Microsoft FrontPage. It was terrible.
21+
22+
- I was 11 when I built my first [Tesla Coil](https://en.wikipedia.org/wiki/Tesla_coil) (without the permission of my parents). Over the next few years, I built several more including one of the first audio modulated coils and one of the first DRSSTCs.
23+
24+
- When I was 12, I set the all-time high record at my local laser tag facility by reverse engineering the charging station and weapon protocols with a photo-resistor, micro-cassette recorder, and a lot of patience. I was unstoppable.
25+
26+
- At 13, I went to space camp and fell in love. I went back two more times and promised myself that I'd work in space. I've since worked on three generations of satellites.
27+
28+
- At 14, I was almost expelled for finding a backdoor into my high school's file server and telling everyone but the faculty members about it. Later that year, I figured out how to turn off the internet firewall by editing system registry keys and later anonymously shared my work.
29+
30+
- At 16, I participated in a foreign exchange program in Dortmund, Germany. Since then, I've gone back almost every year.
31+
32+
- 14 - 17, I played a lot of video games. My favorites included Counter Strike Source, Command and Conquer 3, Halo 2, and Age of Empires 3.
33+
34+
- At 18, In the summer before college, my friends and I started playing <a href="https://en.wikipedia.org/wiki/Quidditch_(sport)">Muggle Quidditch</a>. We went on to start over 8 teams in the [International Quidditch Association](https://en.wikipedia.org/wiki/International_Quidditch_Association) including the [Buffalo Quidditch Society](https://www.facebook.com/buffaloquidditch/). At our height, we were ranked third in the IQA. Although I don't play anymore, you can still see pictures of me holding a broom while wearing a chess camp t-shirt on facebook.
35+
36+
- At 19, I took my first graduate course and published my first paper.
37+
38+
- At 20, I coauthored a grant to build a satellite and managed a 60+ person team through the end of undergrad. You can read more about that [here](https://ubnl.space/glados/).
39+
40+
You can ask me in person for stories that I'm afraid to share with the internet.
41+
<br><br>
42+
#### I like
43+
- Skiing
44+
- The sea
45+
- Space
46+
- Summer
47+
- [Books](https://www.goodreads.com/mdangelo)
48+
- Colored pencils
49+
- NPR podcasts
50+
- Obscure indie music
51+
- Good design
52+
- Photography
53+
54+
#### Travel / Geography
55+
56+
- I am from originally from Buffalo, New York. I have since lived in
57+
Palo Alto, Mountain View, San Francisco, Seattle, and New York.
58+
59+
- I've been to ~ 50 countries, some of which I have forgotten, and many of which I would like to revisit.
60+
61+
- In 2016, I visited: Canada, Ethiopia, Austria, Germany, Belgium, Ireland, Northern Ireland, Italy, Romania, Sweden, Norway, Svalbard, Panama, Costa Rica, Uganda, Japan, and the UAE, mostly in that order.
62+
63+
- In 2017, I plan to visit: Canada, Japan, China, Nepal, Indonesia, Germany, Denmark, Norway, Sweden, Russia, and Uganda.
64+
65+
- I am an Oregon Trail II enthusiast.
66+
67+
#### Fun Facts
68+
69+
- I have a list of thousands of ideas, like creating matching bow ties for cats and humans.
70+
- I almost always have a sketchbook with me.
71+
- I can't locate every country on a map.
72+
- I added this page because so many people complained that my site was just a resume.
73+
74+
#### I dream of
75+
- always finding inspiration.
76+
- enabling a brighter future.
77+
- doing better.
78+
- no one checking my commit history for early drafts of this branch.

app/data/github.js

+7-6
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ const data = [
3333
}, {
3434
label: 'Number of linter warnings',
3535
// `npm run lint | grep problems | tail -1 | awk '{print $2}'`
36-
value: '6', // TODO Update from travis / circle
36+
value: '0', // TODO Update from travis / circle
3737
}, {
3838
label: 'Open github issues',
3939
key: 'open_issues_count',
@@ -45,14 +45,15 @@ const data = [
4545
value: moment().format('MMMM Do YYYY'),
4646
link: 'https://github.com/mldangelo/mldangelo/commits',
4747
},
48+
{ /* find . | grep ".js" | grep -vE ".min.js|node_modules|.git|.json" |
49+
xargs -I file cat file | wc -l */
50+
label: 'Lines of Javascript powering this website',
51+
value: '1811',
52+
link: 'https://github.com/mldangelo/mldangelo/graphs/contributors',
53+
},
4854
];
4955

5056
/* // TODO Add these fields later
51-
{
52-
label: 'number of lines of code powering this website',
53-
value: '9762',
54-
link: 'https://github.com/mldangelo/mldangelo/graphs/contributors',
55-
},
5657
{
5758
label: 'languages used',
5859
value: '6',

app/data/links.js

+4
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ const data = [
44
label: 'Michael D\'Angelo',
55
index: true,
66
},
7+
{
8+
link: '/about',
9+
label: 'About',
10+
},
711
{
812
link: '/resume',
913
label: 'Resume',

0 commit comments

Comments
 (0)