879 karma · joined March 28, 2007
Turns out, he came by because we were friends.
In fact, we had been friends the whole time, but I didn't know it! What I missed is that the stages between meeting people and friendship look a lot like hanging out. It seems quite arbitrary -- why this activity, this person? But the hanging out stage _is_ necessary. Unless you text them, knock on their door, set up a gaming night, or go on a road trip, it is hard to grow closer.
So the next time you meet someone remember they are probably like you: a bit nerdy, a bit lonely. Just reach out and spend time with them for no reason, and then maybe, someday, you'll discover that you too are friends.
We live in the future.
http://www.extremetech.com/gaming/154994-epic-mozilla-releas...
1 based is better for human counting and 0 is better for certain mathematical expressions, usually when thinking about offset from the start rather then list position.
Clearly it is a judgement call, but I personally think counting is more important for the same reason PI is wrong. We are confusing ourselves because easy things aren't intuitive.
Imagine you have:
var list = ['first','second', 'third']
`list[2]` should clearly be the second element (not third), just as PI / 2 should mean half a circle (not 1/4).
We wonder why there aren't as many computer science / math grads. Well in every intro class in the world people are getting confused by this.
So in short, yes the problem is giving it to animals.
That said almost every example on the site is just creating HTML and JS (not CSS), so it would be very easy for you to use OJ to create everything and then style everything with .css files like you always have. So use it however you want, but please don't think it is trying to force markup and formatting together!
What I was trying to say was that a lot of people focus on OJ's ability to create html/css and think that that is what it is for. They think that that means you can't CSS the way they are use to: with a designer created .css file. This isn't the case!
Instead OJ is about making reusuable website objects -- check out the plugin page: http://ojjs.org/plugins.html. You can make a YouTubeVideo in one line, but, just as importantly, the OJ plugin lets you change the video's volume or pause and play. In short, OJ creates web building blocks that can live edit what they create.
Announcement 1, SteamOS: is just a fancy way to say you can create custom Steam consoles by just installing some software. Make the box as good or a cheap as you want and everything will just workPretty awesome, but definitely this will be dwarfed by...
Announcement 2, people are guessing is a Valve distributed "SteamBox": a console that is presumably very cheap and linux based. This would give Xbox One and PS4 a run for their money and with the social aspects of Steam built-in, this could be a break out hit with a price of 50% all the other consoles.
Announcement 3, is the large unknown here. We don't know what it is, but if it is bigger (or equal to) SteamBox this could be a huge deal. Nothing really makes sense here. We know:
* SteamBox will support streaming from your windows/mac machine so it will be able to run every game at launch.
* SteamBox will likely have lots of publishers signed on. Probably as many or more then on xbox one / ps4. If they are already using an engine that targets multiple platforms (Unreal or Unity) they are definitely going to try to support it.
* SteamBox will likely support all the features of steam with friend lists, chat, voice, purchasing over the cloud, etc. So the + might mean sharing, but a new kind?
* SteamBox supports game sharing at a friends or family level. I see this as a kind of Netflix-like persona idea: an account gains separate personas that each have different friends lists and achievements. Very powerful and necessary once Steam hits the living room and multiple people are using the same box / account.
What it could be:
* LAN play for SteamBoxs on the same network (announced in Dota, this could explain the circle + circle graphic). Maybe you share the game between friends, and stream to the other boxes? That would be pretty awesome.
* Game streaming from other people's SteamBoxs? This would be an awesome way to share a game. It is like onlive but for distributed for everyone (seems unlikely. That kind of streaming would stop your friends from being able to play).
* A launch title like Half-life 3 (seems unlikely with the circle + circle logo implying you need multiple SteamOS instances).
* A new kind of social experience, maybe a built in way to be a part of the game creation process or improved social network experiences on Steam (seems unlikely to be big enough to be the final announcement)
* A new kind of hardware like a VR headset(seems unlikely, as cheap will be a big feature of this box)
This is marketing at its best. They hooked us good.
Here is a JSFiddle I made to demonstrate. This isn't even in the docs yet, so I made this just for you=).
That said, I completely agree and hope over time more and more people will embrace the server-side way as it makes downloading and updating plugins really simple. Maybe in time that path should be emphasized more.
What it came down to is this behavior leads to a really nice syntax inspired by the excellent coffeekup js templating language (http://coffeekup.org/). The key is you can't really do computation or logic in anything but a function so using functions for nesting elements leads to elegant code. For example you could generate `li` tags inside of a `ul` tag: ul(function(){for loop{ li(...)}}).
That said, you don't have to use the functional notation to use OJ. All the functions and plugins support an _ variant (_YouTubeVideo, _div) that don't emit, and in addition everything in OJ can be written with a list syntax I call OJML. The syntax looks a bit like lisp and is actually what the functions, plugins, and css are all generating: [div, {'class':'my-cls',[YouTubeVideo,'url/to/video']].
As for the CSS support it is actually quite elegant. Maybe 100 lines with full support for '&:nested' selectors, and nestable '@media' query support.
One thing that I've been considering is right now 40-50% of the oj.js filesize is support for the Form Elements (TextBox, ListBox, CheckBox,Button) and the "collection" elements (BulletList,NumberList,Table). I'm still considering pulling these out of the core and making them plugins. The issue is they manipulate the basic tags (input,textarea,table,ul,etc) so they seem pretty fundamental. Is that something you would want?
As for separating templating from the View it is a good point. In OJ you can use functions to create templates (or partials) since everything is just code.
I did find the unification of structure (HTML) and code (JS event bindings) quite helpful because this way the code that needs to find the HTML to bind an event is the very same code that created it. This removes the need to have class names / ids just so you can refer across HTML/CSS/JS boundaries.
Check out this JSFiddle to make Vimeo videos!