yeoman / Hackathons

Running a Yeoman hackathon? Start here for ideas, tips, and goals
BSD 2-Clause "Simplified" License
10 stars 5 forks source link

Project ideas #1

Open eddiemonge opened 10 years ago

addyosmani commented 10 years ago

https://github.com/tastejs/todomvc/wiki/Sample-app-ideas

SBoudrias commented 10 years ago

A couple projects we'd need on Yeoman. I'm just listing them here, and then we should open issues with requirements details.

  1. [core] Normalize whitespace of files
  2. [new project] Composable base generator to generate project styling (CSS/SCSS/Stylus, etc etc)
  3. [core] Creating a better Conflicter module (and probably making it run standalone)
  4. [documentation] We need extensive documentation on incorporating Yeoman inside external tools.
  5. [new project] Integrate Yeoman in an external tools (editor, node-webkit, atom-shell)
  6. [website] There's a lot of issues on yeoman.io repo
SBoudrias commented 10 years ago

Some similar/related ideas around OSS in general:

  1. NPM log parsing to extract relevant information and fix suggestion or to guide user research.
  2. Natural language processing bot offering automated answers to common issues (Hardcore!)
ahmadnassri commented 10 years ago

how about things listed on BountySource: Bower, Yo Grunt would be a good way for smaller sponsors to pitch in.

are those actively monitored for quality and value? I've seen some maintainers comment on the bower ones, but not the other two.

SBoudrias commented 10 years ago

Oh, we don't use any bounty or sponsor system actively ATM.

sindresorhus commented 10 years ago

I've tried both BountySource and gittip. None of them has ever worked.

ahmadnassri commented 10 years ago

good to know.

sindresorhus commented 10 years ago

Incentives like interesting tasks, tshirts and get-togethers are much more appealing.

ahmadnassri commented 10 years ago

:+1: for stickers and t-shirts :) my own personal motivation / incentive is writing re-usable code.

certainly, I only meant to get more $$ sponsorship out of businesses to help with the cost of setting up a hackathon of this size.

ahmadnassri commented 10 years ago

@sindresorhus just sent you an email regarding the Toronto Hackathon we're setting up...

jednano commented 10 years ago

@SBoudrias it's easy to read an .editorconfig file, but how do you propose to normalize the whitespace on a variety of file formats?

SBoudrias commented 10 years ago

@jedmao see for more details #5 - but whitespace is pretty easy as you don't need to know the file format (just that it is text base). So you detect the indentation, then replace each indentation character at line start with the new specified indent char.

SBoudrias commented 10 years ago

@jedmao also, couldn't https://github.com/jedmao/eclint be used too?

jednano commented 10 years ago

@SBoudrias no. This is why I bring it up. If you have EditorConfig set with indent_style = tab and you have a line of code with 4 spaces at the beginning, you can't assume that means 2 indentations; thus, you can't replace them with 2 tabs.

var first = 'Jed',
    last  = 'Mao';

Replacing the leading spaces on line 2 with tabs would be introducing tabs for alignment, which is a huge no no! This is why I propose compatible template files be written with leading tabs for indentation and spaces that follow for alignment. It's a one-way operation. It cannot be reversed! Tabs for indentation is the only way to preserve one's intent for alignment.

By all means, if someone has a better idea, let me know!

sindresorhus commented 10 years ago

You could use https://github.com/sindresorhus/detect-indent to detect the indentation.

eddiemonge commented 10 years ago

i thought you just made that on the spot. that usually seems like the case when you link a module

jednano commented 10 years ago

@eddiemonge the initial commits were on August 10th, 2013, so it's been out for a while now.

@sindresorhus, I know how to detect indentation, but even your detect-indent module is not reliable. You even say so in on line 55 of index.js:

// greatest common divisor is most likely the indent size

That's my point, is that when spaces are used for indentation, we can't rely on conversions. We can only guess and, when converting to tabs, potentially introduce tabs for alignment.

SBoudrias commented 10 years ago

This is a hackathon idea thread right, so we don't really care if it is not 100% perfect. OSS live and improve over time - and the issue of indentation seems to be resolvable (even more with the help of beautifier normalizing the output).

sindresorhus commented 10 years ago

@jedmao I would argue that's an edge-case and if so we could take the gcd of all the files. We also know the indentation from our own template files, so I don't see this as a huge problem.

jednano commented 10 years ago

@sindresorhus I don't see how this is an edge case. Knowing the indentation doesn't help you one bit. There's still a lot of people who prefer hard tabs and all the template files I've seen use spaces for both indentation and alignment. This is the problem. Even if you know the indentation ahead of time, you still can't convert the template file into tabs w/o accidentally introducing tabs for alignment. The only reliable way to do this is if the template files use tab characters for indentation, followed by spaces for alignment. Then, you can convert it into any desired indentation setting w/o issues.

sindresorhus commented 10 years ago

Yeah, true. If we have support for respecting indentation I have no issue having the source templates in tabs. Makes total sense.