If you want to learn a functional language, Lisp is a good choice. It has been around a long, time, so it is stable and well supported, and it is also the basis for many other languages. Haskell, while also an excellent language, is more niche.
Deciding whether to learn a language or learn how to write a compiler is more difficult. If you are struggling with the Dragon book, have you condidered "Modern Compiler Implementation in ML"? Although ML is even more niche than Haskell, it is a functional language and the book takes you step-by-step through the process of writing a compiler for (a subset of) it.
Interesting, let check out "Modern Compiler Implementation in ML", perhaps I can start with that and then move to the Dragon Book when I'm ready for it.
Great quote: "Danish computer scientist Bjarne Stroustrup invented the C++ programming language in 1978, taking the C language invented by the late Dennis Ritchie and adding new features that made it more usable by the masses. “
I wouldn't use the word 'usable' here, that's true :)
However, C++ and those who built it deserve a spot on that list.
C++ gave the programmer tight control over everything that's happening. I see it like driving a car with a manual gear while other languages like Java, Ruby, Python or PHP are automatic gear cars.
>C++ gave the programmer tight control over everything that's happening.
I think of it more that C++ decoupled all the knowledge that was required to do things (which C previously required), and thus the purpose of making C++ "easier to use" for new developers maybe did accomplish some sort of goal in that direction.
But I say that as a C developer who has witnessed the world go mad. It is of course, all C's fault, but the fact that we're still using it, somewhere, under it all, is some sort of victory.
C++ "decoupled things" because you no longer needed to actually read code to trust that it was going to work the way it said it was going to work, which is something you do in C (i.e. read all code) .. as well as other languages of course. Well, if you have the ethos of "read all code", no matter the language, there are some where that is easy to do, and others where its a bit of a drag.
(Mostly, its the languages that have IDE support, or which attract insufficiently brain-dead people that they can actually use EMACS to get around.)
If all you have is a simple editor, though, there are some languages that truly shine, and C is thankfully still one of them.
In short, we can't extract more than about half of the available wind energy, no matter what the design.
This is because if all kinetic energy is extracted, the air would no longer be moving behind the windmill, so it would stop turning. Betz's law is the optimum compromise between extracting energy and sufficient airflow to keep the windmill rotating.
I'm concerned about all the math being per-area, which makes bigger windmills seem inevitable. But surely its per-dollar that determines commercialization potential. 1000 small windmills could be the better choice if they could be made cheaper per watt after all.
Wind energy economics favor: fewer blades (though the three bladed design has some mechanical properties that make them the default choice), larger swept area, horizontal axis turbine (even though you need to aim those at the wind nobody has been able to produce a very large VAT that survived for even a short amount of time), direct drive (because gearboxes are very much prone to failure).
1000 small windmills would not be commercially competitive with a single large machine, would not extract as much power from the same amount of wind and would not be as safe. Small machines have to make a lot more RPMs so are inherently higher maintenance (bearing wear), harder to operate when connected to the grid and so on.
I'd love it if that weren't the case (which is why I built my own 5 meter/16' machine) but ultimately wind power will be dominated by several MW behemoths.
If you don't need Windows or the mobility, a Raspberry PI 2 may be an alternative. They are about $35 plus tax and the model 2 is as capable as a five year old Laptop.
I've never used one, but I'm surprised at the apparent gap between such suggestions and the lack of availability of such devices.
I mean, if a Pi can run perfectly well for $35, where's the place where you can just go and get a ready-to-go PC for under $50, BYO salvaged peripherals? It doesn't quite seem to make sense? PC/mobile manufacturing is so competitive.
There are plenty of competitors in the $150-$250 netbook/chromebook market. Not to mention things like the Intel Compute Stick and its competitors like the MK802. Not to mention tablets and phones.
A raspberry pi might only cost $35, but don't forget you'll need an SD card, and a power supply, and a case, and a wifi dongle, and a keyboard, and a mouse, and a monitor, and HDMI and power cables, and maybe a powered USB hub.
You really don't need a case. No wifi either, if the desk isn't too far from the cable/telephone box. Spare power supplies, keyboards and mice probably aren't hard to find either. But yeah, it's more than 35$ in most cases.
Once you add the bare minimums you need to make a RasperryPI a basic PC (power, case, wifi, storage etc) then you're probably pushing at least $100 and you're going to have a hard time making money selling them for less than $150-200. And at that price point there already are a number of players
Exactly. The rpi2 makes perfect sense if you are already a techy and have all those bits lying around and are happy enough making a cardboard case (which I am). For the consumer it's not packaged well enough.
I don't think that's true anymore. Not in a world where a 4 person house has 4 smart-phones, 2 tablets, etc. Not when the device costs $50 (assuming you can get peripherals free).
For $50 you can take some risk. It can't be a huge learning curve but it doesn't need to do everything you need a computer to do for the next 4 years, which was the paradigm that lead to Windows dominance. IE, if I'm buying a PC in 2002, the cost is serious and I need to get years out of it. I can't risk it sucking. For $50 the risk is on par with a pair of jeans. Sometimes you wear them all the time. Sometimes you don't like the,
The most obvious paths seems to me to give Google some competition in their Chrome OS market. Pi, Ubuntu, Mozilla. Tablets are great, but I think a significant part of the froth is just a side effect of (A) A fresh start on UI paradigms and backwards compatibility debt and (B) Price.
It's just a different kind of decision when the price is as low as it can be today.
To sell the Chromebook idea, Google had to address the XY problem for productivity applications. People will say "I need Office" because they want a spreadsheet and a word processor. By simply making people aware of their apps, Google was able to get many people to forgo the "Office XY" problem [And the iPhone XY problem via Android].
Apple and Microsoft ingrained a lot of intellectual shortcuts in regard to the way people in the mainstream think about computing in their quests for market share. So of course has Google. In fairness, these abstractions simplify the daunting complexity of deciding among a vast domain of computing options.
Recently, I've been thinking about how weird this is. By which I mean that many of the same people who would balk at Linux because it's not Windows wouldn't balk at a Mac and don't balk at Android instead of an iPhone.
"For the last six months [ RPi team has ] been working closely with Microsoft to bring the forthcoming Windows 10 to Raspberry Pi 2. Microsoft will have much more to share over the coming months. The Raspberry Pi 2-compatible version of Windows 10 will be available free of charge to makers.
Visit WindowsOnDevices.com today to join the Windows Developer Program for IoT and receive updates as they become available."
No, it's just Broadcom and the Raspberry Pi engineering team that made the product happen. At the point we knew Pi 2 would be happening, the conversation with MS started and they started work porting Windows to it - with a little help from our engineers.
I think this might be the relevant change (contained in bill S-1 which was substituted in the Regulatory Reform Committee):
"2 (i) Sell any new motor vehicle directly to a retail customer
3 other than through <del>its</del> franchised dealers, unless the retail
4 customer is a nonprofit organization or a federal, state, or local
5 government or agency. This subdivision does not prohibit a
6 manufacturer from providing information to a consumer for the
7 purpose of marketing or facilitating the sale of new motor vehicles
8 or from establishing a program to sell or offer to sell new motor
9 vehicles through the <del>manufacturer's</del> FRANCHISED new motor vehicle
10 dealers THAT SELL AND SERVICE NEW MOTOR VEHICLES PRODUCED BY THE
11 MANUFACTURER."
I think you can have it owned by a different company but with the same leadership as the parent. Isn't this how liability shields work? Lots of different LLCs with the same people at the helm?
It is easy enough to define franchise as having different control than the parent. This is fairly standard. In fact, the bill has some language about franchises not being acquired, owned, or controlled by a manufacturer or any entity in which the manufacturer has a 45% ownership interest.
The first use I know of that gained wide recognition was in Kernighan and Ritchie's "The C Programming Language" from 1978.
"1.1 Getting Started
The only way to learn a new programming language is by writing programs in it. The first
program to write is the same for all languages:
Print the words
hello, world"
I find it interesting, because K&R seem to assume that this was already a standard approach, and also because of the comma after hello. In my first attempt in a new language, I don't think I would be paying that much attention to grammar...
First and foremost, congratulations on a wonderful piece of art. The realities of accounting should not distract you from the fact that the project was a success and enriched people's lives.
Although you paint a pretty bleak picture of the finances, as others have pointed out above, this does not reflect the economic reality.
The typo impacted your profit margin significantly - without it, you would have had an additional $7k and a margin of 19%.
But this is only a side show. Even if you had made 0% on the posters shipped to the Kickstarter backers, the 800 posters remaining represent a book value of $96k. (Less a few hundred dollars for storage).
Assuming you can sell at this price, your three years work will be amply remunerated for a part-time project.
In the end, Kickstarter functioned as it should. It reduced your risk by providing a pool of known buyers and left you with the infrastructure for approaching your market. That market is your final reward.
Deciding whether to learn a language or learn how to write a compiler is more difficult. If you are struggling with the Dragon book, have you condidered "Modern Compiler Implementation in ML"? Although ML is even more niche than Haskell, it is a functional language and the book takes you step-by-step through the process of writing a compiler for (a subset of) it.