"According to Dr. Karen Weatherby, a gerontologist and author of the study, gawking at women’s breasts is a healthy practice, almost at par with an intense exercise regime, that prolongs the lifespan of a man by five years. She added, "Just 10 minutes of staring at the charms of a well-endowed female, is roughly equivalent to a 30-minute aerobics work-out.""
- winckel
from Bookmarklet
What a fascinating article... According to the current Mrs. Terry, I'll live to be at least 150 if this is true! :-)
- Andrew Terry
"Just 10 minutes of staring at the charms of a well-endowed female, is roughly equivalent to a 30-minute aerobics work-out." so thats why I'm always tired at the end of the day!
- tony bland
It's healthier than riding a bike, I can tell you after last weeks accident. Unless you do it while riding a bike. But then probably the road won't be that slippery.
- Ton Zijp
I didn't drop out but here is part of my experience in this post from years ago. It was discouraging to hear the professors talk. Needless to say i don't code. :-) http://www.altamirano.org/marketi...
- Antonio Altamirano
Thankfully I'm in the other 50%, but I can see why many would change their major or drop out. I saw it first hand where many 1st and 2nd year Mechanical Engineering students changed their majors to something 'easier'. The most common reason was difficulty with the required advanced Math courses. Calculus being the road block for many.
- Jeff P. Henderson
If I were entering college now, I would try to go to Olin. I really like their approach.
- Paul Buchheit
nice post, I'm looking for the number of engineers (or per thousand capita ratio) graduating in Greece (or greeks graduating around the world)
- George Tziralis
Many of Computer Science professors at Stanford were luminaries in their fields, but weren't very good at engaging students in the subject matter. Brilliant researchers don't always make the best teachers. I think this contributed a lot to the dropout rate.
- Jess Lee
How does this compare to drop-out rate for all US college students? And does "drop out" mean "of college entirely" or "take a break then come back" or "and choose another major"? The discussion may be lusty but I really don't like discussions that start on a figure w/ no bother to compare it to anything else, or link to info about how it's calculated.
- Wade Dorrell
In CA we have two types of public universities. The UC schools require the professors to do research, where as the State University schools do not. I think the State University schools are much better for undergrad tech education as you get much more attention from your professors.
- Jeff P. Henderson
The UC Berkeley College of Engineering started the Center For Entrepreneurship and Technology http://cet.berkeley.edu to address some of the issues Dodge talks about.
- Ruchira S. Datta
Engineering is hard and requires above-average intelligence. Think about it this way: Statistics tells us that probably 50% of people will be below-average. Wouldn't you want those 50% of the students to drop out before actually becoming an engineer? MIT just doesn't admit that half of the population in the first place, but most schools don't have that luxury.
- Gabe
People have a lot of options for (a) careers (b) money (c) power (d) image (e) attracting mates in the US, compared to China/India. Engineers are not valued very highly in the US compared to businesspeople, doctors, and lawyers.
- Mitchell Tsai
@Gabe: You would think that all the people that go to study Computer Sciences or seek other Engineering degrees are above the 50% average to begin with.
- Amit Morson
somestimes it's a scoail or maturity thing - was for me. I get by. Wished I finished.
- Alan Wilensky
from Alert Thingy
It's because of the fact that people with higher standards of living pursue less demanding challenges offering similar ROI (I = investment+involvement). That's why there's so many non-US students (especially from lower income countries) in engineering and why they're much less inclined to fail.
- Nenad Nikolic
from twhirl
Engineering sucks. I think there's a point where any engineering student realizes that even with a degree they're looking at a pretty mediocre salary working in a really boring job. Add this to the difficult coursework and boring courses, well, engineers are good at math. It adds up to being a raw deal. That being said, if you get into engineering at Stanford or UC Berkley, your ROI would look a lot better then mine. I'm sure a large number of engineering students consider dropping out, even after Calculus.
- Will Higgins™
All I can do is nod. For a couple of years, not a day when by when I didn't consider jumping ship, for all the reasons commenters here have mentioned: long hours, heavy workload, fickle job market, salary barely comparable with what I could expect with a business or law degree. But here I am, a month away from (finally!) finishing my EE degree, and I couldn't be happier.
- Derrick Burns
Continued from above: Basically, I think so many give up because they were looking to get something out of being an engineer: money, prestige, etc. But it's simply too great a commitment on several levels. You really have to pursue engineering because it's something you want to do, something you care about.
- Derrick Burns
I dropped out because Chemical Engineering was not what I was expecting. I wanted more Chemistry, less Math. I switched to IT Management and found it much more interesting. Mind you, I'm Canadian.
- Shey, Jamaican of FF
I remember having a crisis in my final year of Electrical/Computer Engineering. Dropping out was a non-option, but I did consider completely abandoning 3.5 years of engineering study to switch fields and schools during my senior year. In hindsight, I didn't understand what engineers really did. My vision at the time was closer to industrial or product design than engineering. I had to take it on faith in my first two years that I was on a path to do what I was envisioning.
- Kelly Norton
I suspect that more than 50% (even at good schools like GATech, I have friends who have done this) are in the wrong field. Many of my friends went into programming because they enjoyed computers and I've told them they would hate it because they don't like math. They don't listen. :)
- mjc
still others go into engineering due to parental expectation, which I find ridiculous, but understandable
- mjc
Amit: one of the properties of being in the lower 50% is not knowing that you're in the lower 50%. That means many of the applicants do not know they are unqualified.
- Gabe
Extensive aptitude/personality testing could fix this
- Aaron Eaton
Engineering is a tough subject. how does that compare to other subjects?
- John Cass
from twhirl
I actually sit on an advisory board for ASU (arizona state) Poly - I can tell you that what I see is students becoming disillusioned by all the stuff they have to learn before they can go out and create something "cool". The challenge is keeping them engaged through the pre-reqs/early coursework. BTW - IMHO the problem with "drop out and learn X" is that they've intentionally skipped the fundamentals that make good engineers. Just because you can code doesn't mean you can engineer... two different things.
- Brian Roy
Is Computer Science part of engineering? Because it didn't take much training in Computer Science for me to start doing cool stuff. I wrote my first game and posted it onto the internet my freshman year (Core Wars). By my Junior year, I had designed a programming language and integrated in it into a MUD. Pengtoh had contributed to Linux by his sophomore year. On the other hand, I always flunked electrical engineering classes, and couldn't stomach math past linear algebra.
- Piaw Na
I switch from Engineering to a Computer Science degree. Apart from the fact that I wanted to program, there were two reasons. 1) The load was very high (it was close to 40 contact hours/week in first year). 2) The maths was hard - I'm ok at math, but combined with the high load I found I struggled when I wasn't too interested in it.
- Nick Lothian
"the US should staple a Green Card to every foreign student's engineering diploma and encourage them to stay in the USA."
- Clare Dibble
Same as Nick here. Dropped out due to difficulty and lack of passion for the field. Went back later to finish a BS in Computer Information Systems.
- Bill Sanders
I wonder what percentage of medical school students drop out. Engineering is a hard discipline, if you want to be a web dev or a study IT or "new media" instead. Making engineering "softer" because today's students don't like to work hard and expect results instantly will just create generations of mediocre engineers and will not make the US more of an engineering power.
- Kevin Goldsmith
from twhirl
engineers are boring and dry, pay is low, classes are full of non-social ppl. (and almost no girls). Why not study finance, or something, girls and pay is much better.
- imran
Engineering is fun! The big thing is that school's curriculums are frequently irrelevant. For instance, a lot of CS majors require irrelevant Math or Physics not because it's a requirement to do good software (they aren't), but because those classes serve as weeders. The result is, for instance, we get lots of CS majors who can't communicate or string a sentence together. If we rearranged the CS major so that we didn't impose a stupid requirement, we'd get a bigger diversity of candidates and less dropout.
- Piaw Na
Engineering is the best!!!! and for those who says it sucks or that the pay is not good (or that we are boring and dry), its probably because you are in that 50% of retards that dropped out of it. No other profession gets paid as much as an engineer right after graduation, and there is usually more demand for engineers than for anything else. I just think people are too lazy to even try anymore. I dont know why, even graduate school is fun in engineering. Aerospace is the best!!!!!
- Mike hawk
life in a conceptual box is the result .. content with that, you will stay with it .. not content, universes open up
- Gregory Lent
life in a conceptual box? do you even know what you are saying? universes open up when you quit engineering? If only you were to see the world through the eyes of en engineer, we see everything from several different perspectives, not just that of people like you. If anything, engineering has really opened up the world for me as it really is. Stop making those type of remarks. Instead get back to engineering school so you can see what it feels like.
- Mike hawk
I think I know the boxes Gregory is talking about from some of his other comments. Whether you've gone to engineering school is orthogonal to whether you can get outside of them. So it's pretty much irrelevant to this thread.
- Ruchira S. Datta
I dropped out the day I learned it had nothing to do with driving a train. Now I'm stuck with this silly hat and overalls :(
- Christopher Harley
I bet you the pre-med numbers are similar, but I'm not sure universities necessarily track undergrads who aspire to go to med school. In general, how many freshmen actually stick with the major they pick when they start college?
- Victor Ganata
"3. Teaching evaluations are highly correlated with the grade the students think they will get at the time of filling out the surveys. Make your course easy, then crush them on the final."
- Kevin Fox
from Bookmarklet
Here's why 2010 will be the year of the Tablet computer. Who cares about Sports Illustrated, but the concept of having a digital magazine is extremely appealing. I would gladly pay a subscription fee for my favorite weekly/monthly/etc magazines delivered in this format.
- Chrimmus Tad
from fftogo
I love Sports Illustrated, and its iPhone app is fairly well done so I agree that the format has nice potential.
- Patrick Jordan
This is only worthwhile if the magazines contain original, well researched, quality journalism. This will help differentiate these things from (most) web blogs. Especially in niche markets that aren't awesomely supported by the blogosphere.
- Chrimmus Tad
from fftogo
Also - the subscription had better cost less than the meatspace content - especially if it's as full of ads as the meatspace versions are.
- Chrimmus Tad
from fftogo
I will gladly resume mag subscriptions once a viable digital option is available, b/c print subscriptions have a pretty large environmental impact. I watched the TechCrunch interview/demo with the Time Inc. Mag Tablet app. It seems a little clumsy right now.
- Cornelius Toole
SI fits the bill for original, well researched, quality etc. Mcsweeneys are producing regular good and original fiction content for the iPhone now. Steampunk Tales is another good offering in this area.
- Patrick Jordan
The only problem I see is that advertising may not be the best way to make money from it.
- Brian Sullivan
@paul, Is it correct to replace email?
- Hasan Ozgan
Hasan, I don't understand your question.
- Paul Buchheit
A wave-gmail integration sounds like quite the challenge. Perhaps the real-time text updates will happen and will be useful, but I can't see the conversation fragmentation of Wave being a good thing for Gmail.
- Mitch
While I admire the approach of releasing something that's pre-beta, it seems there is quite a risk that people will think, "oh, I tried Wave and didn't get it," and they will not come back to it for a long time.
- Laura Norvig
Laura - Google wants developers in there making cool stuff in the lead-up to the public release. If it were only developers trying out each others tools, things would be stagnant.
- Mitch
I live and work in Gwave - business partner could not access wave due to inferior connections in Manchester and working in docs again was such a backward step!
- Callie O Farrell
That's true, Mitchell, I forgot about all the gadgets people are developing. Also, Gina Trapani pointed out that the one interface that most of us see when we opt in to "try wave" is not the only interface available. I would love to see some samples of simpler/different interfaces.
- Laura Norvig
The fact that Google Wave was not part of Gmail's roadmap and in fact is positioned as "the future of e-mail" was a sign to me that Google is now large enough to suffer the kind of organizational dysfunction that has done in its predecessors. As you mentioned, e-mail will be with us for a long time. It would have been better to position it as "the future of collaboration" and indicate...
more...
- Dare Obasanjo
There was shortage of wave invites when it came out but now people are waiting to give wave invites. I didn't see any of my friends returning to wave after they used it once. I log into wave everyday just to see if there are any improvements.
- ashish
Paul - Great insights! I too feel Wave is most suited as a team collaboration / productivity tool. The biggest hurdle is loss of context and convo structure. Once the wave team better organizes the UI, then it can go mainstream. Wave integration with gmail would be super cool and highly useful, plus it greatly would speed up user adoption.
- Susan Beebe
I just posted my comment above on your blog, facebook and here - LOL :)
- Susan Beebe
"The chronological flow of the conversation is lost." That's exactly the issue. Playback tries to address it but doesn't quite. I think there are other ways to do this, that will be tried both inside and outside Google. I'm thrilled that Google didn't force the Wave team to be part of Gmail from the start, because that would have added all kinds of unnecessary constraints. This way Wave can try lots of new stuff and Gmail can adopt what sticks.
- Daniel Dulitz
It's Sharepoint started from the web side instead of Office
- Nick Lothian
I had assumed that at some point Google would merge Wave and Gmail. It seems the natural progression. Also, I think the linearity problem will be addressed when they can figure a way to easily mark the new replies so that you can quickly see them - maybe in some from of selectable overlay or view of the wave
- Martha
Don't we think they should merge Gmail and Wave because we don't check our waves as often as our emails? What if we all had a cross-browser and mobile notification system for both Wave and email? Since I have installed the Chrome checker extensions for Wave and Gmail, the question of a merger doesn't make any sense. I can easily email and wave the same way I use Facebook, Friendfeed and...
more...
- Jérôme Flipo
No, I think Google should merge Gmail and Wave because many times in the middle of an email conversation I wish I had wave functionality. Because the conversation has gotten hard to understand and I want to play it back. Because different subthreads have different people on them for no good reason. Because an idea has turned into a proposal and the words aren't quite right.
- Daniel Dulitz
Here's a specific type of merger I think could work. Wave "merges" with Gmail, GChat, and Docs, in that whenever you create an email/IM/doc you are creating a wave. Anyone can see that wave in its full realtime nonlinear glory from the product Wave. Any wave you have (whether started from Docs or email or...) can be seen in Wave. But Gmail, GChat, Docs, etc. provide only some functions...
more...
- Daniel Dulitz
@Daniel Dulitz sounds somewhat like how social networking aggregator such as friendfeed works. This way Google wave will aggregate all the activities of gmail,Gchat, docs and other "google activity" in one place.
- ashish
I am not so sure about Gmail or Gchat and how you would integrate them-- as Wave seems to have similar and some cases superior functionality that supplants them but being able to collaborate on the production/editing of Google docs in real time perhaps using Google voice conferencing would be nearing a game changer.
- Brian Sullivan
That would be great, Daniel. But I think it would require *a lot* of work for some teams at Google and some good explanations to users. I'm sure we'll find specific usages for Wave. Personally, I would let the service grow by itself, without complicating other services. Imagine if I start a Wave and some of my friends participate in it through Docs, some other from Gmail: many troubles...
more...
- Jérôme Flipo
@Dare: I disagree that Wave is evidence of organizational dysfunction (not saying there *is* not such dysfunction, but Wave certainly doesn't prove it). Whether you love it or hate it, and whether or not you think it will be successful, I believe it's evidence of a company that wants to continue to take risks and innovate in the face of organizational momentum. Why wasn't Wave part of...
more...
- Joel Webber
It seems like the only big issue is the non-linearity of Wave. So, instead of merging other products to offer alternative (somehow), why not let the creator/owner of a Wave choose if blips should be linear?
- Jérôme Flipo
Well Paul, I also think Wave is very clever. Yet I see a few problems regarding the launch process: 1. They launched it exactly like Gmail, by reducing invitation supply & delaying invitation delivery. Yet, unlike an e-mail account and a web based e-mail client this is a collaborative tool that you can not use alone. That's the main reason most influencers and early adopters are...
more...
- Cem ARGUN
Regarding my proposed merger... I think part of the problem of Wave is that it has too much capability for many people, but real experts (may) like the full-on experience. So let's make everything a wave. Experts interact with those things in Wave or some other full-on experience. But people in the slow lane can interact with _the same wave_ using "views" they are more familiar with --...
more...
- Daniel Dulitz
Jérôme, in addition to "linearity" there is also the issue of edits versus replies. Also, what do you mean by allowing the creator to choose if blips should be linear? Transforms are sequential today; the whole question is how to extract "(conversational) linearity" from "mere sequence." Linearity is a UI issue. Why allow the creator to specify the reader's UI, instead of leaving it up...
more...
- Daniel Dulitz
My definition of linearity is rather basic, as is my English :) I meant "non-threaded" conversation, just like here. I think most of the confusion comes from realtime hierarchical conversations: we can't determine easily where the discussion is going at a given moment. As a doc, a Wave must support sub-threads, but as a conversation it may be helpful to oblige participants to respond to...
more...
- Jérôme Flipo
Keep in mind that's there's a difference between the Wave Protocol/Architecture, and the Wave client, just like there's a difference between SMTP/IMAP and Outlook (vs Gmail). If the UI is not streamlined for a particular use case, then perhaps other clients can be designed which leverage Wave infrastructure, but provide a more optimal experience for a given problem space.
- Ray Cromwell
Jérôme, in my view not even email obliges people to respond only to the most recent email in the thread. Maybe Wave should always show a compressed "timeline" view of every event. Perhaps a very zoomed-out icon of the whole wave in the upper-left corner of the wave, showing its blip structure, nesting, etc., with hotspots everywhere there's a change you haven't read yet. To the right of...
more...
- Daniel Dulitz
Thank you for putting up this post. I'm going through the same thing. I can't decide whether to get my PHD or start working.
- Maryam
"Lots of choices in life is about choosing one or another, and it will never be clear which was the best, and there is no "scientific" way of choosing, lots of luck are involved too."
- Clare Dibble
FunkyRose, what did you take from the post? what is your field?
- Clare Dibble
I'm an MBA student and I'm almost done doing my degree.
- Maryam
In the case presented , I would pick the startup. But otherwise , I would say pick a PhD, it gets difficult to do one later in life..and its generally a rewarding learning experience.
- Hari
There are also arguments that startups are also difficult to do later in life. :-) Not that I agree with either premise.
- Piaw Na
There are two things here: multiple return and named return. You can have multiple return and de-structuring assignment without named return, e.g. foo() { return (a,b); } x,y = foo(); Many languages implement this. Some go further with and allow de-structuring assignments, like this swap operation: [a, b] = [b,a]. One thing that concerns me about this named return value stuff is that it...
more...
- Ray Cromwell
I love multiple return values, but the named return values seems a bit dodgy. In the example on your page, it looks nice, but I agree with Ray about the implications in a longer function.
- Joey Gibson
The problem with unnamed return values is that you don't know what order to put them in. How do you know if the GetNames function is supposed to be "return firstname, lastname" or "return lastname, firstname"? The solution is to name them so you can have "return {firstname=f, lastname=l}" and not have to worry that you got the order wrong.
- Gabe
That's a reasonable point, but then I would say that you shouldn't just have a 'naked return', but rather something like the syntax you wrote. Of course, it works both ways -- you could get the method parameters in the wrong order as well, so named parameters would help fix that. :)
- Ray Cromwell
Gabe - do you mean that if say "firstname, lastname = GetNames()" it will return "Robert, Felty", and if I say "lastname, firstname = GetNames()" it will return "Felty, Robert"?
- Robert Felty
Rob: Maybe something like "with GetNames() { fn, ln = .firstname, .lastname }"
- Gabe
That makes sense Gabe. What languages currently have a "with"?
- Robert Felty
The "with" statement goes back many decades. Pascal and similar languages (like Modula) have one, but it's more like Javascript's let statement. JS has a with statement, but it's almost too pointless to use. VB's with statement was the one I was approximating, and is probably the best syntax for one. Ada has a with statement, but it's for importing packages, so it's nothing like in the other languages I described.
- Gabe
Hm, Pascal's "with" works exacly like JS's one, AFAIR.
- Alex Kapranoff
Alex, it seems you are right. It's been decades since I've used Pascal, and misremembered.
- Gabe
Also, Python's with statement (new for 2.6) is actually more like C#'s using. Actually, C# has a few different ways of using "using". One way is to import a package into your namespace, like Ada's with statement. Another way is to declare a variable to be initialized at the beginning of a block and make sure it is destroyed at the end of the block, like Python's with statement.
- Gabe
When you see a public wave that you would like to get updates on, you can chose to follow it by hitting the follow button in the wave panel toolbar.
- Gina
An early birthday present: The Gmail Javascript compiler was just open-sourced! http://code.google.com/closure... (it compiles JS into smaller, faster JS)
Unfortunately it looks like the internationalization features may be missing. I wonder why those were removed? (or if I'm just not seeing it)
- Paul Buchheit
@Paul the Closure project has three components: compiler, library, and template language. Looks like the Closure/library might be competing with jQuery.
- Shakeel Mahate
I think jQuery does a lot of stuff that might confuse the compiler, e.g. iterating over an array of string function names and creating new function wrappers (look at the way the parent/child/next/prev/etc functions get installed) The Closure library is also full of type annotations that help the compiler make better optimization choices, so you're likely to get a better compiled outcome using Closure than jQuery + fixes + compiler
- Ray Cromwell
@paul -- I know you've been wanting this opensourced for a long time. sorry it took such a long time. Nick Santos and the jscompiler team has finally done it! Cheers!
- Jing Lim
Congratulations to the team (and @Paul & Jing) -- I know everyone's been waiting a long time for this. For anyone considering whether to use jQuery vs Closure, consider that they're meant for largely different purposes. jQuery's good for enhancing static web pages; Closure's much better at building large apps. And as Ray points out above, Closure the library is going to get much better results from Closure the compiler than an arbitrary js library would, because of all the type annotations.
- Joel Webber
Paul Buchheit has been at the top of my best of pages all month. Rock on, Paul.
- Donald C. Lindsay
Hey HAPPY BIRTHDAY PAUL !!! Cool present!! <insert CAKE> :D
- Susan Beebe
That writeup is trolling for traffic IMHO. Nit picking 50 lines out of 200+ thousand (written for readability, which get compiled and optimized), providing no benchmarks for claims, and spending half the time bashing Java, it just seems to be struggling to find something wrong with Closure.
- Ray Cromwell
Sachin: he seems to be commenting on Closure the JS library, not Closure the JS compiler (that Paul's post was about). And he may be a douchebag, but I haven't seen anything I disagree with.
- Gabe
@Sachin: I hate to be too harsh, but that post is pretty much garbage. From what I can tell he's pretty much managed to enumerate some of the worst things about Javascript -- nitpicking the code for referencing "undefined" directly without declaring it as an uninitialized local? That's insane. Following this advice is mostly a recipe for an unreadable mess. Also, look in the comments for several refutations of the idea that some of these are even optimizations.
- Joel Webber
Joel, you're just not man enough to handle a language where 'top' is an implicitly reserved keyword, and 'undefined' which should be, isn't. But it could be worse, 'null' could be something you could override. :)
- Ray Cromwell
Let me know what you think and if I can help with Superfeedr :)
- Julien
True to form, that comment came quickly! I'm trying to sort out the best way to get real-time notifications of posts inside a firewall. Pubsubhubbub won't work because I don't want to send feed contents. I'm looking at RSScloud. That'll ping some service through the firewall, which will notify me (back inside the firewall), and then my client can retrieve the content.
- Aaron Crews
Why don't you want to send the feed contents? Are they authenticated feeds?
- Brett Slatkin
They're generated inside the firewall, so for legal reasons, etc, I want to keep the content in the enterprise.
- Aaron Crews
Another option could be hosting my own private pubsubhub since it's open-source, but I don't know of any good clients that I could use.
- Aaron Crews
PubSubHubbub (and rssCloud) are primarily for doing messaging between two separate providers. It's an integration protocol. If you're entirely behind the firewall, why not use a simple message queueing service like Starling or RabbitMQ?
- Brett Slatkin
Brett - the simple answer is because I didn't know about Starling or RabbitMQ :) Thanks for the suggestions. I'll have to look them up.
- Aaron Crews
Well, I guess you find your way;) At superfeedr, we have an XMPP API that passes through firewalls pretty easily, maybe it's worth looking into that direction as well?
- Julien
Julien - that's very interesting. XMPP would work great, too. I am interested in that option. A lot of cool stuff to look into, including the multiuser chat.
- Aaron Crews
Good! Well, you know where to find me if you have any question/problem...
- Julien
Just now getting to this - looks like I can do some fancy things with RabbitMQ, the ejabberd XMPP gateway, and rabbithub (http://github.com/tonyg...).
- Aaron Crews
Yup. Please send an email with more questions (julien@superfeedr.com), I'd be happy to answer!
- testingsupsuperfeedr
Yeah. LOL. I just made it official, like in the Thriller video...except that I didn't turn into a werewolf and chase her through the woods....
- Rahsheen ™, Coach Rah
Not fair that the lady gets to wear a fancy ring before we even do the church thing. What's the point of being engaged if you can't flaunt it? LOL. Thanks everyone :)
- Rahsheen ™, Coach Rah
Congratulations, Rahsheen! I had a similar thought for Harold when he gave me my ring: "Gee, kind of unfair the guy doesn't get to wear something too until the wedding."
- Kamilah Gill
Almost nobody understood my earlier webapp idea, so I'll try again. Imagine you were looking at a website such as FriendFeed and you wanted to create a near pixel-perfect copy but in a way that you could move things around, adjust shadows, etc. I want a tool that makes that easy.
And without taking screenshots or copying the html, since the point is that it should have the power to quickly create something that looks just like our current ui. Also, it should be web based, because then fonts, etc will be right, and also I hate installing things. My previous attempt at explaining this: http://friendfeed.com/e... (Balsamiq is not what I want). It does not need to produce html though, so it can cheat anyway it likes.
- Paul Buchheit
So you wanna something like "html to png/psd"? Editable graphical interface with layers and stuff?
- Selim Yoruk
No, not at all. My point is that you could look at the the FriendFeed ui (with your eyes) and then create something that looked just like it.
- Paul Buchheit
Fireworks is pixel perfect, correct font sizes and previews image in browser. Yes/No?
- Toby Graham
Paul, I like the idea, it's got merit. There's plenty of tools that do half the job, that is, snip the page. The second part, i'm not overly familiar with the tools out there. The manipulation. I guess you could snip the page, and embed into your tool a js library, like scriptaculous, and attach special event significance to the controls/tags, for moving, dropping, dragging.
- Stu Andrews
I think I get what you mean now and I agree. That's not very helpful but hey. In the mean time you could edit the page live using firebug maybe?
- Toby Graham
It seems to me like you want the Visual Studio Win Forms designer for web apps hosted and served to designers as a web app. Drag and drop elements onto the page and adjust their properties in a property grid. Then send a link to others so you can share your concept.
- Eric Schoonover
For this, I use simple vector graphics editing app, like Xara or InkScape - I just make screenshots and use them as raw building blocks - usually I cut out from them small elements like controls/text-blocks/images/etc... In vector graphics enironment managing such kind of blocks is much more easier than in photoshop.
- Phil Smirnov
remembers that this idea has been described by David Siegel in 1997 in his book : Creating Killer Web Sites (http://tinyurl.com/5skw63)
- Oaksun
Paul, i think the edit-page command on ubiquity with the ability to: visually edit css and publish the changes is close to what you are describing.
- Ian
Eric pretty much nailed the description of the dream tool that I think Paul was asking for. In my dream the web app is truly collaborative and has an active GUI. So you can adjust those properties using a mouse or tablet and anyone else on your design team can watch as you do it so they can make suggestions and modifications as you work.
- David Muir
Let's say you want to make a mockup of FriendFeed called "FriendFood". You want it to generally have the same layout, only the top blue bar will actually have a background made of lasagna and a font that is made of French fries, and what shows on the page is everything people write about food on the regular FF, like "pasta OR bean OR potato OR steak". But you'd like someone to be able to do that from the web and without messing into much coding. Is that it?
- Rodrigo Jaroszewski
Could you achieve it by using Firebug and tweaking the CSS?
- Shakeel Mahate
So something with the usability of say, omnigraffle, but that only used webkit for its rendering. With text controlled and positioned by actual css so that line spacing etc were correct, although again with a simpler UI than CSS has.
- Robin Barooah
Paul - I _just_ came across a site that did exactly that. Unfortunately, Safari's browser history is failing me and I can't find it anymore. Doh!
- Patrick Lightbody
Paul, not sure if you're still reading, but are you looking for interaction design changes as well, or just appearance?
- Mark Trapp
I had never heard of Pencil, but it sure looks a lot like what I think Paul is describing.
- Jason Wehmhoener
I use ScrapBook Firefox extension to capture the page as is, and then edit that using Firebug.
- Jughead
Paul, I totally got you first time - anyone who thinks it's not a good idea has plainly misunderstood :-) It's the next step up from sketching out your UI on paper, n'est pas?
- Slappy Line
One quick tip in Photoshop is to turn off anti-aliasing and use your various web fonts (Arial, Verdana, Helvetica, etc.) and use your preferred font size in pixels/points... This will provide you with screen accurate font appearances and sizes. The biggest problem with a "pixel-perfect" browser rendering is that it will never be consistent from browser to browser. They all render ever...
more...
- Nathan Chase
Looks promising. C++ is too much of a disaster -- we need a real successor to C. "ooc is a modern, object-oriented, functional-ish, high-level, low-level, sexy programming language. it's translated to pure C with a source-to-source compiler. it strives to be powerful, modular, extensible, portable, yet simple and fast."
- Paul Buchheit
from Bookmarklet
Meh. I dislike post-fix'd declarations, and given that the assignment operator is frequently used, I think C's decision to make it a single character operator is the correct one. Otherwise, it doesn't seem any better than say, Objective C, D, or any of the other languages vying to be the next C.
- Piaw Na
Yes, if you're doing a systems language, you need pointers --- for writing device drivers, if nothing else.
- Piaw Na
Based on the sample code, it appears to have a very direct interface to C, which I think is important for a systems language. For most things I'd rather just use Python, but for lower-level, perf-critical stuff, we need something else. D looks like too much, but I haven't tried it.
- Paul Buchheit
Type inference, yummy - a main reason why Scala has mad traction these days
- Christopher Galtenberg
Start by creating a really lightweight and easy to use development environment. I should be able to teach Jay Rosen to program in it. Back in the 80s there was serious compeititon in this area -- from Borland with Turbo Pascal and on the Mac, from Think Technologies with their C and Pascal systems. The languages aren't the issue, at least not for me. I want to program in C again, but the curve is too steep in all the environments. Give me a Turbo environment and some nice libraries, and lets go! :-)
- Dave Winer
Piaw Na: For ':=' I've just made a homepage edit to make it very clear. := is decl-assign. Regular assign is '=' as in C/Java/etc. RTFM! ;)
- 'n ddrylliog
Piaw Na: As for trying to be the next C... well, no =) The next C is probably C itself, since C hackers are way too picky to be satisfied with anyside above C (in high-level/low-level terms)
- 'n ddrylliog
Btw, why is everyone thinking of ooc as a systems language? It can be used as such, but it's not really the goal. Do you all think so because it's compiled?
- 'n ddrylliog
I'm thinking of it as a systems language because that's what I want. We already have reasonable options for higher-level stuff, but when writing a database or whatever, we're stuck with C or C++.
- Paul Buchheit
Paul Buchheit: Hmm. High-performance implementations of current reasonable high-level languages are still pretty much experimental :/ (unladen swallow, shedskin, etc.) Why sacrifice performance? Many compiled languages have shown that expressivity isn't reserved to "interpreted" languages. =)
- 'n ddrylliog
Piaw Na: about ooc being better or worse than Objective-C, D, etc. Well, D is really complex. It gives a *lot* of control, but it makes code less readable imho. As much as you may currently dislike it, the ooc syntax is (for some at least) more readable, so more maintainable, in general simpler, etc. (a lot less trickier than C++, for example. And if you don't see what I'm talking about, you haven't done enough C++)
- 'n ddrylliog
Ocaml is pretty expressive, it has a REPL, and it's been in the top of the language shootout benchmarks for years.
- Ray Cromwell
How does ooc compare to C#? If I had to write something like a compiler, I'd use C#.
- Gabe
C++ a disaster? I don't think so, its main problem is the lack of high level straightforward frameworks. IMHO generic programming is a deeper paradigm than OOP, but like functional languages has a slow learning curve, look at the matrix implementations/compiler optimizations in Boost!
- Sebastian Wain
from iPhone
Sebastian: C++ has lots of significant problems. For example, it's actually 3 languages: precompiler (#define), C++, and templates. The template language is so powerful that you can't even tell if the compiler will halt on a given program, let alone understand the error messages it produces. Just the shear size of the language, manual memory management, things like multiple inheritance, and vast overlapping standard libraries make it hard to program in by giving the progammer an overly large cognitive load.
- Gabe
My two biggest gripes: Error messages from templates, specially from STL, can be notoriously hard to track down. And secondly, default implicit conversions can lead to hard to track down bugs. When you have a type system so complex you have to mentally "run the compiler" as you code, something's wrong.
- Ray Cromwell
I've been doing nothing but C++ lately. It's not bad, but only because everyone subsets it. The compilers are horrible, but I don't think that's because nobody has an incentive to improve g++'s front-end.
- Piaw Na
Ouch. decl-assign is terrible. I hate that. I think C's syntax (e.g., int a = 3; ) is much better than decl- assign. If you want to imitate C, at least make the declarations C-like. Personally, I think language design should be performed so that you can hand-code a compiler (i.e., no lex & yacc). Why? Because hand-coded compilers can much more easily produce human readable error...
more...
- Piaw Na
I've seen it argued that LL(k) compiler-compilers don't have this fault, because they generate recursive decent parsers that look somewhat like what you'd write by hand, JavaCC certainly has this attribute for example. Although I'm quite fond of the parser-combinator approach now.
- Ray Cromwell
What Ray said. yacc uses an LALR parser, and LALR parsers are kind of notorious for producing inscrutable error messages. LL(k) compiler-compilers can generate much more intuitive error messages, and the code they generate often looks like something a human would write. Both JavaCC and ANTLR are good LL(k) compiler-compilers. I believe LL(k) parsers aren't strictly as powerful as LALR...
more...
- Laurence Gonsalves
On the topic of ooc: the "object [space] method-call()" syntax is the most jarring thing about the syntax for me. I'm surprised that there doesn't seem to be any actual introduction to that syntax on the linked page -- it's just used several times without explanation. Also, I have to say I'm not a fan of conservative garbage collection.
- Laurence Gonsalves
Yes, when I hand code parsers, I write them in recursive descent form. The problem with C++ is that it's not easily parseable in that form. And seriously, any language where you can write map<string, string>, but have to write map<string, vector<string> > is seriously messed up.
- Piaw Na
+1 to Laurence's comment about conservative GC: that's plain evil.
- Piaw Na
Yeah, Piaw only uses progressive GC, and even then he keeps complaining that it's finding ways to snatch defeat from the jaws of victory.
- Daniel Dulitz
I believe JavaCC grammar repo has a relatively straightforward C++ grammar implemented, using LL(k)
- Ray Cromwell
Piaw Na: You got so much wrong in so few comments that it's actually worrying. Decl-assign is not terrible. It's called type inference, and is used in a lot of modern languages (ML, C#, Scala) to make our lives easier, and limits repeating yourself and it works damn well. Grow up and learn other languages. So no, the goal is not to imitate C. Go use Objective-C/C#/C++/Java/D if you want C-like languages.
- 'n ddrylliog
Piaw Na: Second: I have hand-written the ooc 0.3 compiler's parser, and it was a piece of cake, because the syntax is so simple and unambiguous. Having "object[space]field" is a non-issues since declarations are "name: type". And you're mistaken in thinking that the fact you can hand-write a parser for a grammar means that it's simple. It's the other way around. If you can write a LL(K)/LR/PEG grammar, then the syntax is *very* straightforward. And the new ooc compiler (rock) uses a PEG grammar..
- 'n ddrylliog
Conservative Garbage Collector: There are advantages 1) the performance is a lot better than you would expect (and actually faster than plain malloc/free for lots of small objects) 2) there are advantages, e.g. seamless integrations with all the C libs out there. 3) Writing a GC isn't easy, the Boehm has been around for years and is well-tested/optimized, portable, etc. Read the papers please :/ This thread is a showcase of ignorance and arrogance.
- 'n ddrylliog
As for "Language blah is better". No, sorry, apples are not better than oranges. That's your personal taste. Well, good for you =) One size doesn't fit all. Why do you even bother?
- 'n ddrylliog
why `diagonal := Vector3f new()` instead of `diagonal := new Vector3f()` or even `diagonal := Vector3f()` is this because someone felt he must not be like any other language?
- Tzury Bar Yochay
I know several typed inference languages. I dislike them --- again, type inferencing never took off not because the technology was hard, but because programmers preferred the declarations --- it really helps. Not to mention tools like ctags/etags, etc., do a good job for popular programming environments (i.e., vi and emacs), which meant that languages without such support never get widespread use.
- Piaw Na
Conservative Garbage Collector: 1) this is more an argument abut gc than conservative gc. I have no problems with gc, I just want accurate gc. 2) That's a fair point, but not enough to make me want to use conservative gc. I'd be happier managing resources from C libraries manually than worrying that hash values are confusing the collector. 3) Yes, writing a gc isn't easy, but I'm sure...
more...
- Laurence Gonsalves
@Piaw, a type inferenced language just means that the type is concretely there, just it doesn't need to be declared in syntax. Thus, any smart editor or IDE, or other tool could reify or show types on demand if the developer so chose. Ctags are a relatively primitive mechanism for source code indexing, once you have an editor which understands your language's AST/semantics, you don't...
more...
- Ray Cromwell
Tzury: why 'diagonal := Vector3f new()'? Because new is simply a static method: http://ooc-lang.org/blog... Your definition of "any other language" must be "Java and C++" and both are inconsistent/magical on this issue, as opposed to, yeah, pretty much "any other language" (Smalltalk, Ruby, Io, ...)
- 'n ddrylliog
I've never heard of this before. Feel a bit disconnected.
- mikepk
Ray: for better or worse, most programmers out there are using Emcas and vi. Why? Because no other tool scales up when you're dealing with large code bases. (That's one reason why even some Java programmers at Google use vi and Emacs) I don't care how primitive the tools are, they have to get things done.
- Piaw Na
I agree with Laurence about conservative GC. The big one is memory fragmentation. Once upon a time, when all we ever wrote were desktop apps, memory fragmentation didn't matter. For server side applications, it matters a heck of a lot, and any language that uses conservative gc might as well provide the delete operator.
- Piaw Na
C++ can be used quite effectively without STL or complicated templates, but it will never be safe from corruption or memory leaks.
- Todd Hoff
@Laurence 1) Yes and no. The performance gap between good conservative and precise (/accurate/exact) garbage collectors is less significant than one would think. 2) That's a valid point 3) Actually, I've thought of using Steve Dekorte's libgarbagecollector (look on GitHub). These are still plans though, Boehm was clearly the easiest option to start with, and ooc itself isn't bound to...
more...
- 'n ddrylliog
Easily one of the most fascinating threads on FriendFeed right now. You guys are talking mostly over my head but it reminds me that I need to get my ass out of managed languages one day.
- Akiva Moskovitz
@mikepk The language+impl has only been out there for a few months. =)
- 'n ddrylliog
@Todd Totally agreed, which explains some design choices in ooc. Memory leaks is a non-issue with a GC, and as for corruption, as long as you stay out of manual memory manipulation, the compiler does most the checking for you, statically.
- 'n ddrylliog
@piaw: I think we're mostly in agreement, but I really don't think it's fair to say that "most programmers use Emacs and vi". I use vi a lot, but when it comes to Java/Scala code bases, I still use Eclipse (or IntelliJ, or whatever). Even at Google. I just don't map the *entire* Google Java code base into my workspace at once. I'm pretty sure the vast majority of Java developers at...
more...
- Joel Webber
Joel: sure, you can play tricks like mapping only what you use. But a surprising number of Java users at Google kick up vim/emacs just so they can use the *fast* low-latency search tools when they need to read code outside of what they've mapped. The numbers were really surprising to me.
- Piaw Na
I've been using emacs for 2 decades and I still use it when I need to quickly edit something or slice and dice text with macros (or I write sed/perl to do it). But when I'm developing stuff, a switchover point occurs where emacs is no longer sufficient and I desire the IDE. Emacs is great for scripts where you can test for errors via a quick eval, but the cost of a compile is high in...
more...
- Ray Cromwell
There is, once you get into Google-size (or even Linux-kernel-sized) code bases. But I guess I've living in the Google bubble for so long, the concept of not having mega-libraries doesn't even occur to me. And we've built enough fancy tools at Google that make Emacs way faster than Eclipse/IntelliJ (see http://code.google.com/p...). Latency matters!
- Piaw Na
Ultimately, this is a search problem, something that google excels at. I'm not sure why you think Emacs has any innate advantage over Eclipse/IntelliJ for this. If GTags can be built for Emacs, it can be done for those IDEs. (Those IDEs already index all symbols and store them on disk) The issue here is that "find symbol" is necessary, but not sufficient, especially on large code bases....
more...
- Ray Cromwell
Heh. I open sourced all the infrastructure, but not the ranking algorithms for code (which are google proprietary) Having seen lots of old Google hands work in Emacs, I think you'll find that they disagree. People have tried adding plugins to gtags for Eclipse/IntelliJ, but none have succeeded --- those IDEs aren't designed to take plugins quite the way Emacs does. Even Vim isn't as...
more...
- Piaw Na
As a practical example, the Linux kernel core (minus the whole driver universe) is about 500kloc. The GWT compiler, which I work on, is about 500kloc. I have zero complains about my IDE's ability (IntelliJ 9) to deal with this code base. Call it a medium sized code base if you will. Too big IMHO to practically use with Emacs/VI (where I desire refactoring and other navigational...
more...
- Ray Cromwell
What you'll find is that top engineers everywhere have heavily customized environments, scripts, editors, libraries, even their own programming languages, that make switching hard. Anecdotal evidence doesn't really prove anything, if "old hands" is meant to covey argument by authority. Like I said, I've been personally using Emacs since 1987, I use a bevy of ELisp, Perl, Awk, and other...
more...
- Ray Cromwell
I think the mindset difference is huge. Codebase too big? The IDE solution is to subset. The EMACS solution is to create a search index held in memory and apply search technology to it. The size of the community hacking away on these tools also matters.
- Piaw Na
Piaw, you do realize that the IDE solution (I can't speak for Eclipse), is to build a search index and apply search technology? IntelliJ spiders all your reachable code and files on project setup (now, as a background process since it can take some time) and serves up IDE functions by consulting the index. In fact, it's very much like Google Suggest. I can type symbol lookup requests...
more...
- Ray Cromwell
Oh yeah, but they do it on disk and so have high latency when the code base scales up. I know, because people switch to Emacs/gtags from those IDEs for that reason. :-)
- Piaw Na
Google's code base is large? I mean, I know the data it holds and indexes is very large, but somehow I assumed the code itself was quite small.
- Andrew C
Actually, they cache some or all of the indices in memory depending on heap, at least according to the IntelliJ lead, if you increase heap, you lower cache thrashing. I still don't see why you think ETags/CTags/etc is any different in this regard. IntelliJ uses a similar index structure, it just records a bitmask on each tag as to the context (comment, identifier, method, field, etc)....
more...
- Ray Cromwell
@Andrew: I assume Piaw's talking about the *entire* code base, apps and all. That's a lot of code.
- Joel Webber
gtags keeps it all in memory on a server, so there's no disk seek latency. There's nothing fundamental about the IDEs that makes this stuff impossible to do. It's just far easier to do in Emacs when there's just one of you. Once the prototype gets going, it's usefulness allows others to add in more useful functionality. Until recently, things like IntelliJ weren't even open source, so...
more...
- Piaw Na
Thanks Joel. Yes, I'm talking about the entire codebase. All of it. :-)
- Piaw Na
@Piaw, Ray: It's becoming clear to me that we're all essentially saying the same thing. To deal with a large, complex code base, you need good tools. IDEs vs. Emacs isn't really much of a dichotomy if they're both building indices and cross-references of your code base and serving them up to you within the editor. They're both IDEs, n'est-ce pas?
- Joel Webber
Yes, I'm just saying, if you need to build something in a hurry, it's far easier to do it in Emacs. But more importantly, ignoring a base of Emacs/Vi users when designing your programming language is ignoring a large percentage of the population. And in some cases, it's a large percentage of a very influential population.
- Piaw Na
@Piaw I somehow lost your point between the "omg I don't like type inference" and the "you're ignoring Emacs/Vim users". It's still straight-forward to look for declarations of things, what's your problem? It's precisely why := and = are separate operators
- 'n ddrylliog
You'll get no argument from me. I'm a fan of diversity in programming, and I do use emacs daily. IntelliJ/Eclipse would do well to offer a simple in-editor tool for building plugins via any Java scripting engine and support saving those persistently. I guess my point is, I can't live without Etags functionality, and now I can't live without all the other features I've gotten used to:...
more...
- Ray Cromwell
Even without any support, editing ooc in at text editor (I personally use Vim and Geany for .ooc) is very easy, cause you can search for "whatever:" (notice the ':') and be done with it. Try doing that with a C/C++/Java codebase =) That's the payback of a simple, non-ambiguous consistent syntax
- 'n ddrylliog
And AFAIK, most ooc users/contributors/hackers use vim. A few use emacs, too. We have a vim syntax file, and a contributor is looking into writing an emacs mode. =)
- 'n ddrylliog
@Piaw, Ray, et al: To finish my previous thought -- There will always be some point at which an IDE (be it Emacs or Eclipse) will fail to scale. The time and space required to deal with the code base eventually grows without bound, and you simply aren't going to load it into a single machine's memory. Even if you could load all of Google's code (or at least its index) into a single...
more...
- Joel Webber
Or you do the work to integrate the external search tool (or whatever) into the IDE. Emacs is designed to make that easy. The other IDEs that are around today, not so much. Code Search introduces a lot of latency. gtags as implemented internal to Google has sub 300ms response times. Whenever it goes down, I get complaints from people, declaring that "it's just too much work to remember where files are."
- Piaw Na
I think Piaw's concern with type inference comes from the fact that explicitly stating the type of something acts as documentation. With type inference that documentation goes away. For example, in ooc, suppose I search for "whatever:" and I see "whatever:= foo()". What's the type? Whatever foo() returns. So now I have to look up foo(). Suppose it uses type inference on its return type (assuming that's possible in ooc). Now I have to dig even deeper.
- Laurence Gonsalves
I'm guessing the IDE digression related to the fact that a sufficiently smart IDE can add the implicit type information back by doing the same type inference as the compiler. The problem with going down that road is that you're coupling the code editor and the language. Either your editor needs special language support so it can do the type inference, or you have to put up with not having an easy way of knowing something's type.
- Laurence Gonsalves
I don't understand how you can do conservative garbage collection without leaking memory.
- Gabe
Gabe: In theory, you can't. In practice, Hans Boehm did a lot of studies in the 1990s showing you that the leakage is very tiny. The real problem is memory fragmentation. With accurate GC, you can actually improve the locality of your data structures in memory (e.g., by putting elements of a linked list or array next to each other so a cache fetch brings them all into cache), with conservative GC, you can't do that.
- Piaw Na
@Laurence: type inference: For me, the advantages far outweighs the drawback(s) (And, no, no return type inference in ooc). Plus, you don't *have to* use type inference. You can declare type explicitly in your whole codebase if you feel like it.
- 'n ddrylliog
For the record: I'm not saying I necessarily agree with Piaw's distaste for type inference. I've thought about the issue in the past, but haven't used languages with type inference enough to have an opinion one way or the other. The lack of return type inference might be a good compromise, as it would tend to limit how far you'd have to search to figure out the type of something, while still eliminating a lot of the "busy work" in languages that require that you specify the type of everything.
- Laurence Gonsalves
@Laurence You've come to the exact same reasoning as me =)
- 'n ddrylliog
I do still think you should explain the "object[space]method-call" syntax somewhere on that page. Up until the point where you use that syntax ooc looks vaguely similar to C/Pascal/Algol/etc., so seeing this unfamiliar syntax with no explanation is confusing.
- Laurence Gonsalves
@Laurence I just edited the homepage. Better now?
- 'n ddrylliog
w.r.t. fragmentation and conservative GC: take a look at "Compacting garbage collection with ambiguous roots" by Joel Bartlett. Worked very well when I used it in a home-brew JVM for alphas at Dec/Compaq about twelve years ago.
- Sanjay Ghemawat
I really like the way C# handles pointers and GC: All objects are allocated from the GC heap. If you need a pointer to a GC-able object, you only get it by pinning it. Once the pointer goes out of scope the object gets unpinned. And you can only use pointers in code marked "unsafe" so it's obvious to the reader.
- Gabe
Gabe - does the fact that C# is not compiled to machine code like C++ make it slower?
- Robert Felty
Rob: C# gets compiled to native machine code when you run the code. There's also a program that ships with .Net called ngen which will create a native image without having to run the code.
- Gabe
It would be nice if Microsoft open-sourced C#/.net. I know there is Mono, but that seems like it will always be second-class.
- Paul Buchheit
What happened to the "Opening .Net Framework's Source Code" project, any ideas?
- Ozkan Altuner
Ahh, glorious sweet potato, how I love thee. You are an inexpensive and highly nutritious veggie who’s day job is being a carb. What could be better? Honestly, these appear as a side dish more often than a snack at my house. But why not make these in roughly the same time it takes to slave over a batch of cookies? 2 medium organic sweet potatoes or yams 1 tablespoon olive oil 1/4 teaspoon salt Preheat oven to 400 F. Scrub sweet potatoes clean. Cut into sticks approximately 3 inches long and 1/2 inch wide. Place sweet potato sticks in a large bowl. Drizzle olive oil and salt over sweet potatoes and toss to coat. Spread sweet potatoes out on a baking sheet in a single layer. Bake for 35-45 minutes or until soft and browning where in contact with the pan. Allow to cool a few minutes on the pan. Serve with ranch dressing. Yield: 5 cups (6-7 servings) Prep time: 5 minutes Baking time: 35-45 minutes Note: There is a print link embedded within this post, please visit this post to print it.
- Zulema ◕ ◡ ◕
I liked this part: ---Users specify high-level desires: *“99%ile latency for accessing this data should be <50ms” *“Store this data on at least 2 disks in EU, 2 in U.S. & 1 in Asia”
- Ahmet Alp Balkan