For your first question, unlikely. People like to compare supply/demand for lithium to petroleum. Unlike petroleum, you aren't "consuming" lithium. You're making it into stuff. Stuff which can be recycled. So, if you're seeing articles about "Peak Lithium" (a reference to "Peak Oil"), you can safely bet they're full of it.
Your second question suggests a basic understanding of supply-demand. Good.
As the demand for lithium increases, the price WILL go up in the short-term, which will stimulate investments in creating supply. We're already seeing the ramp-up in supply coincident with the ramp-up in demand. A few years ago, Electrovaya was advertising Lithium Ion batteries, large-format, for $300 / kWh in volume. That's what Elon Musk claims to be paying for his batteries, today. But the demand is at least an order of magnitude higher. We've already passed the "hump." And Elon Musk's investment, with Panasonic, in the "Gigafactory" is intended to push the supply higher, pushing the price lower, on the cheaper side of that hump.
A sudden, HUGE spike in demand could create another hump, but most manufacturers are sensitive enough on price that they will probably avoid it.
Google actually provides something useful to society; I may not like advertising (which is where they make most of their their money) but, at least, there is SOME utility. And the profits from that subsidize their other activites, which are quite useful.
JPMorgan Chase makes their money skimming a percentage off financial transactions. And gambling (let's face it, that's what 'investing' in the modern stock market really is). And, all too often, rigging the gambling (high-frequency trading, anyone? Mortgage Backed Securities, which they sold KNOWING that the valuation was a flat-out lie?) What's the utility to society?
None. So we get kinda up-in-arms when we see people getting obscene amounts of scratch for such grifting.
The sooner a tech company can automate getting/paying loans (the one useful thing which JPMC does), the better. The sooner tech companies can create the kinds of financial networks which undercut Mastercard, Visa et al. with similar utility and lower rates (less "skim"), the better. At that point, the only thing keeping dinosaurs like JPMC in business will be regulations REQUIRING human interaction on certain transactions, put in place at the urging of JPMC-paid lobbyists (such regs already exist).
That said, not all tech companies provide utility. So being a tech company doesn't mean you're automatically off-the-hook.
It's not the federal regs. It's the financial liability.
Properly maintained, an airplane will last much longer than a car. But even an airplane hits "tired iron" status after some decades.
Your 30-year-old car is involved in a crash. You die. Do your relatives sue the car company? Probably not. It's an old car. Most cars don't last 30 years. The auto manufacturer is perceived as being absolved of any liability, long ago. Three years, the manufacturer may be liable. Most people won't find an auto manufacturer liable for a 10-year-old car, much less 30.
Your 30-year-old airplane crashes. You die. Do your relatives sue the aircraft manufacturer? Probably. And, quite frequently, collect. Consequently, Cessna, Piper etc. are largely on the hook for EVERY AIRPLANE THEY EVER BUILT, even ones from decades ago. At least one company was talking about leasing their aircraft, not selling them, and pointedly destroying them after so many years of flight time, so that they could limit their liability.
I know, I know. It's fashionable to blame everything on federal regulations. And yes, they are pretty strenuous. But the financial liability is, quite literally, sky-high.
Then, of course, there's the fact that they don't build as many airplanes as they do cars; they never did. Which means they don't get to amortize their R&D across as many produced items.
IIRC, you don't have to have 30,000 keys. You need something akin to the text prediction systems found on most modern smartphones and tablets. Enter a few symbols (phonetic, a small subset of possible symbols), the system 'guesses' what word you're typing, suggests possibilties, you keep doing input until the symbol you want appears and you select it. I do that all day long with my smartphone. I can use T9 or 'compact' layouts to further reduce the number of possible symbols I can enter, but such things depend more heavily on the text prediction having my desired word in its dictionary/corpus.
The difference is that, for Japanese and Chines, you had to do that for desktop PCs and laptops because there was no way to represent the thousands of symbols available on any keyboard.
As touch-based input systems become more common (smartphones/tablets), there's the possibility to have a 'finger painting' type input system, where you draw the symbols. In that respect, eastern languages would be better suited to text input on such devices than us westerners.
... and posted a Journal article about it a couple months back.
Yes, folks, it IS possible to create a general-purpose programming language which can be represented, and written, graphically. As more and more devices sport touch-based interfaces, this will work even better.
The main reason we're still writing code with text is because programming involves a lot of complex, inter-related data input. And, for now, the fastest, most efficient mechanism we have for putting lots of complex inter-related data into a computer is... text.
In Cryponomicon, they create a special unit (Detachment 2702) to guard the secret of the Bletchley Park. This unit is engaged in actively feeding misinformation to the enemy and arranging "accidental" discoveries. For example, if decrypted information says that a convoy of German ships is moving from port A to port B, they determine about where that convoy should be at this time and "arrange" for a patrol aircraft to fly over the area and spot it. When the Allies, subsequently, bomb the heck out of the convoy, the Germans don't ponder "how did they know?" They know the convoy was spotted by an Allied aircraft before the bombers arrived on the scene.
In one part of the book, a tramp steamer, operated by a bunch of people from this unit, "stumble" on a German "milk cow" submarine refueling/rearming an attack sub in the Caribbean. And Allied ships are promptly called in to depth charge the silly thing. The Germans don't have to ask how the allies knew it was there. They "stumbled on" it. The Germans are left to assume that they are just having really rotten luck. And that the Allies have a lot more patrol aircraft than they really do.
Yes, Cryptonomicon is a work of fiction. Such things are, however, perfectly believable. The Allies went to great lengths to hide the fact that we could read their encrypted transmissions. A great many German officers, after the war, were told that we had been "reading their mail" for much of the war, and were utterly astounded. They had no idea. Such a good job had been done at keeping the secret.
Protecting confidential sources? Arranging "accidental" discoveries of the necessary evidence? Gee, this sounds awfully familiar.
Gore got it for the same reason Obama did: he opposed GWB. In both cases, they were stating that W's warmongering needed to be opposed.
For Obama, arguably, they were also trying to contribute some international cred to whatever efforts he was making toward trying to convince the Muslims of the world that the USA had not declared a jihad against them. Early in his first term, he was actively engaged in that kind of "cooling off" rhetoric. He has had a pretty lousy follow-through on that. Celebrating the fact that America has sufficiently overcome decades of racism that we could elect someone from I minority race? Maybe. But I'm not so sure about that one.
A century ago, the countries of the modern-day European Union would've been at war with each other, given the economic climate. Are they fighting? They're certainly not getting the economic prosperity they were hoping for, but are they shooting at each other. As such, it could be argued that the EU is preventing an all-out war in Europe. Is that unworthy of a Peace Prize? In the absence of any other stand-out peacemaking by any other organization?
Edward Snowden has exposed a lot of hypocrisy on the part of the US government, particularly the NSA. Awarding him the Peace Prize, particularly after awarding it Obama, would be a particularly delicious irony.
The JAS at the beginning of the designation stands for the Swedish words for Fighter, Attack and Reconnaissance. It's a true multi-role fighter. The F/A designation means the SH is supposed be a Fighter and Attack aircraft but, considering its larger size, it's more Attack than Fighter. Don't waste your time with the Reconnaisance on the SH.
It has been pointed out that it is designed to operate from short fields, mostly just short stretches of roadway. Most US fighters would have a problem with that. The SH would definitely have a problem with that. Yes, it has longer range, but it's also considerably heavier.
Since Sweden requires a year of military service from all citizens, much of their enlisted military is made up of people who won't be around long enough to do six-month- or year-long training programs. The Gripen is designed so that a squadron of them can be maintained by a handful of experienced sergeants and a large bunch of barely-trained grunts. That means the maintenance tasks have to be kept relatively simple. Parts replacement has to be relatively easy, assuming the people wielding the wrenches are at least competent mechanics, not necessarily aerospace mechanics.
Also, the engine supplied with it is a modified version of a licensed GE engine design. Good luck vetoing the shipment of those engines to other countries. The plane can take armaments from a variety of countries. So, they are not dependent on good trade relations with the US.
Finally, yes, local industries stand to benefit from an influx of "fresh blood" from SAAB. I suspect they've already absorbed most of what they can get from Boeing. So, in terms of helping the local industrial base, the Gripen is a better choice.
My wife and I have both worked from home, using a 3G Verizon link which might, occasionally, approach 1 mb/s. And yes, that's megabit, not megabyte, per second. Typical behavior was more like 1/2 megabit / second. Implement the following, in order, to get by comfortably.
#1 yes, get a cloud server. Do the big upload/download thing from there. I use rsync to move the "deltas" between my home systems and the cloud system, which allows me to avoid big uploads/downloads from/to my home system. If I need to actually modify a big file, sometimes I do a VNC-over-SSH to the cloud server and run GIMP or whatever in the cloud, so I don't actually have to download it. So long as the latency is decent, you can do this pretty effectively.
#2 yes, get a good router. One which will allow you to prioritize connections. I have a CradlePoint MBR-1000. It does this. That way, connectivity to the office VPN or the cloud server takes priority over whatever else is going on.
#3 yes, get a local, personal server which can do caching DNS. This will reduce the latency on most everything else. It is hard to overstate just how big a difference this makes.
#4 have that personal server do a caching web proxy. Much surfing has the same stuff (CSS, images, javascript, etc.) from one page to the next. Also, wireless tends to have a higher error rate, so downloading stuff tends to result in lots of packet retries. Browsers don't like that; they can do it, but it tends to disrupt everything. The caching web proxy handles that transparently so the browser just sees a pause, when a packet has an error, then a burst of data when the following, non-errored packets and the retried, error-free packet come out of the proxy in order. Meanwhile, the browser kept downloading everything else it needed and running smoothly. This also works very nicely if you have multiple machines running some Linux distro which need to be updated. The first machine to do the update may have to wait for slow downloads, but additional machines will get files from the cache, making them screaming fast to update.
I had an old Cobalt RAQ2 which did the 3rd and 4th items. It died, recently, so I'm looking at a QNAP box, which runs a version of Debian. It can do the caching DNS, but it might not be up to the caching web proxy. We've definitely noticed a difference with the 3rd and 4th items out of commission.
Give me a tablet with a Tiling Window Manager, so I can have multiple apps on-screen at the same time, with voice recognition that works and I'm gone. I would, no longer, have any need for a desktop or laptop computer.
I would like some more screen real-estate, though. A 7-inch tablet just doesn't cut it for me, and my eyes are too old to handle uber-high-resolution on a small screen.
Ubuntu already has the tiling window manager, but Android and iPad do not. And the voice recognition stuff is using desktop equipment. Yes, tablets are getting very interesting but they aren't ready to replace the desktop just yet. Another 12-18 months, though, you may be right.
For those with abnormally high levels of glucose in your blood, you're not just an all-you-can-eat buffet on legs. You have the dessert bar thrown in, too.
At a prior gig, there was free soda. It was mostly Coke/Pepsi, which I didn't care for. I wanted some Code Red.
I found out who did the buying. I found out that she was part Norwegian.
I brought in a plate full of Kransekake (ring-shaped, Norwegian marzipan cookies; I have the recipe and I've made them before). I waved 'em under her nose. Her eyes lit up.
"Repeat after me: we're going to get some Code Red in the soda cooler." She repeated it. I left the cookies. Later that week, Code Red appeared in the cooler.
Much of my CompSci degree involved writing assignments in C++. Until I took a class where it was all Scheme. And another where I had to write my assignments in Java. We didn't have classes in these languages. We were simply expected to "pick them up" if we were going to complete our assignments.
The CIS majors were spending multiple semesters learning the finer points of Visual Basic. Yes, this is a few years ago:-)
I suggested, at my current gig, that we have a certain task produce output in XML, then use XSL stylesheets to convert that to the outputs for various target platforms. One of the non-CompSci guys, who had never had a class involving push-down automata and regular grammars, whined about "XSL is hard!" It may be if you've never had the aforementioned class, but if you already understand conceptual things like regular grammars, XSL isn't that hard.
A CompSci degree will not teach you everything you need to do any particular job. It will, however, give you the tools to keep up with the constantly-evolving world of programming, whether the target output is HTML, or a green-screen app or a native, mobile app. Or whatever is the going thing a decade from now.
Two apps onscreen at once. You know, like they demo on the Samsung tablets? I want Android to do that on any device. I don't care how fast your software can task switch. I frequently need to pull two apps up side-by-side and compare stuff. Having one completely disappear off the screen makes a smartphone or tablet useless for such things. I don't need a full windowing GUI; two at a time is sufficient.
Cases with built-in solar cells. I want to be able to lay it on my desk (upside down is fine) or on the dash of my car on a sunny day and have the battery recover.
The ability for an app to change the device's USB profile:
You can get apps which will let you use your smartphone as a touchpad, but you have to run some kind of software on the other machine. I want the ability to fire up an app on my smartphone or tablet, while plugged into another machine's USB port for battery charging, and have the other machine see a USB connected mouse/touchpad without needing to install any specialized software.
Ditto for keyboard. I want to be able to use my smartphone's/tablet's voice recognition while connected to a desktop/laptop machine and have the connected machine think that I'm just typing really fast.
Ditto for audio input/ouput. I have a headset which connects to my smartphone; why should I have to have another one for my PC/laptop? Again, no special software required on the connected desktop/laptop machine.
The ability to set proxy server settings on a connection-by-connection basis. If I'm on my home wifi network, I have a caching proxy in place to reduce bandwidth usage and accelerate access. If I'm elsewhere, I don't want to try hitting that proxy server. Just add that to the wifi profile and get on with it. Neither Android nor any version of Linux I've used manages to get this right.
Array microphones on the device. I want to be able to lay my smartphone/tablet face-down on an table during a meeting and, not only record the voices clearly, but be able to map out, after the fact, who was sitting where and have the recording annotated with who said what. Can't even get an add-on device which can do this.
I'm 44. I develop web-based intranet apps for a Fortune 500 corp.
My job involves lots of coding in Java, with occasional excursions into SQL and RPG. Lots of HTML and CSS, as well. We make heavy use of Hibernate, which reduces the amount of actual SQL we have to touch.
I despise Java. The core language is very weak, so you have to have significant numbers of external libraries added in to accomplish anything. This results in a very large, complex API which no one can hope to learn the ins-and-outs of. You actually need something like Eclipse or NetBeans, where the editor can look at what you've entered and suggest methods, based on context. It really doesn't help when you tell the system you need a "List" of something, and it needs help figuring out which of the "List" classes to use.
Prior to this gig, I've coded largely with vim (no, I'm not trying to start a vi - emacs flamewar). I used the word completion functions but, otherwise, the code flowed from my fingers into the editor with relatively little input from the editor. Once I got "in the zone," I could code for hours at a time and accomplish a great deal. These Java-based editors need you to stop while it thinks about what to propose, which breaks the flow. I never, ever, get "in the zone" with Eclipse. And, due to the breadth of the libraries and the different classes and methods, I've never been able to code Java, effectively, with vim.
Add in the fact that everyone wants to tie in all these frameworks which abstract stuff away, many of which are built on "convention over configuration." This results in a lot of programmers who are little more than technological "sorcerer's apprentices," copying-and-pasting stuff from one project to the next because, well, that worked in the last project and they really have no clue HOW it works; this project needs to do something similar so, hopefully, it will work in this one, too.
On a recent project, I requested assistance from the most experienced Hibernate guy in the place. Something I was trying to do wasn't working. After digging around in it for a half hour, he told me I'd just have to dig into the documentation and figure it out because he had no clue why it wasn't behaving. Oh, and when I figured it, let him know what finally worked. The most experienced Hibernate guy was, in the end, just another "sorcerer's apprentice," who didn't really comprehend the "magic" he was wielding.
I'm not happy with being a "sorcerer's apprentice," but I don't have time to dig through the piles and piles of code which constitute the multiple layers of stuff we're building on. Expecially when you consider the fact that each of the layers are evolving, and we may replace the library in this layer with a completely different one in six months.
I don't have any kind words for RPG, either. It's a legacy language which predates widespread use of SQL. Some of the code I'm dealing with has been in production for two decades, back when the company was all green-screen apps and no intranet. The beancounters who run corporations don't want you ripping out piles of old stuff and replacing it; that old stuff has been in use for years, has been thoroughly tested and debugged. Who cares if it's hard to read and maintain? Who cares if the original developer, the only person who ever knew how it worked, retired years ago? It works! Modify it if you absolutely must, but don't replace it. Oh, and expect a s**tstorm if your modifications end up breaking something.
A year ago, I was wondering if I was getting too old for programming work. I loathed my job. Why do I put up with that place? Because there are precious few options in this town, I'm not in a position to relocate, I still need an income and that pays better than most jobs in this area. So, I put my head down and kept plowing along. Wondering how hard it would be to get a prescription for anti-depressants.
About six months ago, I started retraining myself. I started reading books about de
If not cut or outsourced it will, at the very least, be disrespected.
Prior gig: lead developer for a small, struggling AaaS company.
Current gig: intranet web developer for a Fortune 500.
The current gig pays better. The prior gig didn't pay enough to pay the bills; I'd still be there if it did.
I really miss doing web dev for a web-based company. I was the creator of products, the generator of wealth. The bottom line was enhanced directly by coming up with something faster, better designed, more efficient. If it took a little longer to get that new feature out there, they could live with that because the resulting app was better for the extra time spent on it. They didn't pay well but at least there was some respect because I made visible contributions to the company's bottom line.
Here, I'm a cost center. No respect. Aren't you done yet? I don't care if that design would work better; I've got your next six projects lined up and you're pushing them all back because this one isn't done yet. No, you don't have time to do major surgery on that hideously-screwed-up app; slap another band-aid on it and get on with this other one. We don't have time for that. No raise this year because you didn't meet all of your (arbitrary, management-assigned) goals. We've got interns who are producing more than you (the intern doesn't have to support/fix the crap they cranked out; I do).
I've been here almost 4 years. Once a few family commitments are completed, I am blowing this area. And you can bet my next gig won't be a "cost center."
3G data is unacceptable for most interactive IT work on the net.
Really?
I live in a rural area in southern Missouri. I used to use WildBlue (satellite) and found that to be painful for SSH, RDP and VNC. The bandwidth wasn't the problem; the latency was. For stuff like that, I found that connecting my cellphone (1X-CDMA/2G connectivity at that time) worked well for that. It had lower latency (similar to a dial-up modem) and, while it had less bandwidth than WildBlue, it had enough.
When they upgraded the local tower to 3G, I dropped WildBlue; I have been using 3G for my home connectivity for a couple years.
There are only two situations where I've found 2G or 3G to be particularly limiting:
1) RDP/VNC is painful when I am running an uber-high resolution display. 1920x1200 (I love my 24" Samsung) doesn't work so well through that because that's a LOT of pixels to push. Scale the window down to 1024x768 and 3G works quite well with RDP. Just don't try to watch video through it. TightVNC is more bandwidth-efficient, so you can go with larger windows. X Windows, over SSH, is frequently even MORE bandwidth efficient, because you're just sending one window's contents through the connection instead of the entire desktop.
2) I have to do a BIG download/upload. For the uploads, I have a cloud server ($11-12/month) and I use rsync. By kicking rsync into action multiple times during the course of a long dev project, I push lots of small "deltas" up to the cloud server. Because these are small, they go pretty quickly, even with limited bandwidth. When I need to do a major deploy, it deploys from the cloud server which has BOATLOADS of bandwidth. I have, on occasion, pulled down tons of code from a client's machine to the cloud server, then fired up a TightVNC session to the cloud server (through SSH) and did my analysis and editing. If you know what you're doing, you can bypass TightVNC and run the apps on the cloud server, but interact with them on your machine (X Windows is really good for this). In that case, I'm avoiding the download entirely.
Once upon a time, I used SSH and LBXProxy to remote into an ISP, where I worked, and drive my Windows-based workstation from a laptop and a 28.8 connection. Linux is actually better for making use of low-bandwidth connectivity than Windows.
Ideally, we'd have 4G, without bandwidth caps, everywhere in the country. With a little bit of technological knowledge, though, I do just fine with considerably less.
If you do not have a decent grounding in set theory, please do NOT attempt to do any significant database work.
Basic select, insert, update and delete can be dealt with via modern ORMs. Anything beyond that, such as joins, intersections, unions etc. are almost entirely set theory. Where is that covered in the traditional mathematics curriculum?
Yes, some ORMs purport to do that stuff, too, but they rarely do it well.
True story: I was taking a database course as part of my college education. The professor introduced us to relational theory, including an algebraic notation which described subsets of fields in a record and subsets of records in a table. Then, over the course of three class periods later in the semester, he taught us SQL. It boiled down to "this is how you do xxx in SQL." From that, we got table creation/destruction, selects, views, subqueries, aliased fields and tables, inner and outer joins, the whole enchilada. I've been able to build on that and do some pretty heavy-duty SQL work but I had to know the underlying theory. Being subsequently trained in RPG, where much of the legacy code does NOT use SQL (and you invariably don't have time to replace it with code which does), that theory comes in very handy.
We understood the underlying theory, all expressed via math. Learning SQL was a simple matter of learning how to express our desires in a language the computer could understand.
You need at least algebra to understand O(n) notation. Without that, you're usually stuck either cluelessly gluing together someone else's libraries (a LOT of that in modern SoftwareDev) or continually recreating O(n^3) (or worse) algorithms.
If you aren't going to learn calculus, one can only hope you never need to do any kind of Numerical Analysis. Any course where you're allowed to use Mathematica, because the calculus (such as taking the third or fourth derivative of a function) is "overhead" relative to the material being covered, is the very definition of "heavy duty." And, since physics is largely the application of calculus, avoiding calculus means you also need to avoid anything which involves physics. Stuff like game design (Angry Birds uses plenty, Angry Birds In Space uses more), putting rovers on Mars, wireless network design (wave propagation between obstacles and through different media is very calculus intensive); you know, the COOL stuff.
For the typical web developer, creating shiny web pages which do extremely simplistic database work, you probably won't need calculus. Ever. Is that all you ever aspire to be? And how long can you continue to do that without being crowded out by graphics design wizards with increasingly intelligent design tools?
I think Microsoft was forced into this. I think that they realize that to get into the market with a Windows tablet, the tablet will have to be sold at a (large) loss for several years. The normal PC manufactures are not willing to, nor can afford such expense.
If they're selling at a loss, I say we all go buy a couple. Multiply their loss. Then hack 'em and put Linux (and possibly Android) on them. Considering the number of third-party Android ROMs out there, I don't expect it'll take long.
My prior laptop was an HP, which was "designed for Windows 95." Within 30 days of buying it, it was running Debian (preferred distro at the time). My current laptop came with Vista. That didn't last a week. It is currently running Ubuntu 11.10. I don't use it enough, these days, to bother upgrading it further. The vast majority of my personal access to the Internet is through my current phone (HTC DI2). 99% of the time, I don't need a full-blown desktop or laptop.
My prior phone was an HTC Touch. It came with WinMo. Instead, it ran Android Cupcake, Donut, Eclair and, finally, Froyo during the time I had it.
The pattern is well-established. Buy hardware with MS products on it. Wipe out the MS crap. Run whatever you like. This will be no different.
IBM may have been larger than Microsoft, but Microsoft succeeded in bullying them into basically killing Lotus counterparts to Microsoft Office. As was revealed in the anti-trust trial, they told IBM that, if IBM attempted to bundle Lotus' competing products with IBM hardware (reducing demand for Office), IBM would still be shipping Windows 3.11 long after everyone else was shipping Windows 95. This would, of course, put IBM hardware at a distinct disadvantage in the hardware marketplace.
You don't have to be tiny to be bullied by Microsoft. All you have to do is depend on one of their products to sell your hardware. At that point, they have you by the short and curlies.
I was thinking along a similar vein a few years ago.
I was thinking of something like a long string of Christmas lights, with the individual bulbs being small, high-efficiency types. If you put them on a dimmer, they could shut off a certain fraction of the bulbs, reducing the light output. You could string them around the room, in the corner between the wall and the ceiling. That way, you'd have more even lighting, with fewer "hot spots."
Alas, no one has seen fit to produce such a beast. And LED rope lights, which come closest to implementing this idea, are neither cost-effective nor bright enough for what I'm wanting.
Also, I've been very disappointed with the color temperature of LEDs and CFLs.
A few years ago, Aerovironment had a 2-seat kit car they'd built. With lithium batteries, it had excellent range, but they wanted to be able to drive it further. So, they made a small, two-wheel trailer for it which contained a small, gasoline motor, a small fuel tank and a generator. Drive it around town on batteries. Hook up the trailer when you want to do a road trip. Best of both worlds.
I'm surprised no one has come out with one of those for the Nissan Leaf, yet. Seems like the most logical way to proceed. Alternately, if you don't want to drag a trailer, come up with something which attaches to the rear end, like a trailer-hitch-mounted cargo rack. It would add a couple feet to your length, and you might want air shocks on the rear end for load leveling, but you could attach the engine when you need it and do without the extra weight when you don't need it.
One of the main things about "cloud" is that you can "spin up" a server image in some professionally-managed (you hope) data center and put whatever on it. There is plenty of talk about "private clouds," which is where you have in-house servers running VMWare or Xen or something like that, where you can "spin up" new server images on your existing hardware.
Companies have been building intranets, which use Internet-type services but run internally. Private clouds are merely "clouds" which run internally. Those are NOT going away.
There are simply too many questions about security and reliability with publicly-available clouds. And, as many others have pointed out, there's a bandwidth bottleneck when you put heavily-used services somewhere outside of your building.
I do see an increasing amount of "Bring Your Own Device" in businesses. People are using personally-owned cellphones to connect to company directories, e-mail and the like. The problem I see what this is that you have to let your employer have admin rights on your device. If your cellphone gets stolen, they need a way to ensure that your credentials, stored on the phone, aren't used to access proprietary corporate data. I'm pointedly NOT accessing the corporate e-mail system through my phone because I'm NOT comfortable with giving someone else admin rights on a device for which I'm paying, and which holds a great deal of my personal data.
Consequently, a middle ground will need to evolve. You will need a way to use your iPad or Android-based tablet to connect to company data, in secure fashion, and be able to use it, but keep NO data permanently stored on the device.
There is already a system out there which allows you to "drive" apps on one device but run them on another machine, using the CPU, RAM, storage, etc. of the other, possibly faster, machine. And I'm talking finer granularity than PCAnywhere, or RDP or VNC.
X-Windows
You can have a desktop on the machine you're physically using, driving multiple applications which are actually running on other machines. You can be using some wimply little thin client, but running 5 different apps on 5 different, server-class, application servers. Each application server hosts one (or more) app(s), not an entire desktop. Citrix will let you do something similar. Sun had some really sophisticated software which would do this, too; you could run Linux-based apps next to Windows-based apps, driving all of them from a thin client. You could connect multiple thin clients together, giving you multiple screens and the system would automatically scale your desktop to handle all of the screens. I haven't looked too closely since Oracle acquired them, so I'm not sure if the software and thin clients are still available.
Take this to the next level. You bring your tablet to work. You connect with the corporate wifi and make a secure connection to the application servers. Your "start" menu (or something like it) populates with apps you can use. You use the user interface on your tablet to drive them, but the apps are actually running on server-class app servers within the company. The data stays on the servers, your tablet is little more than a dumb, graphics terminal. You aren't constrained by the CPU in your tablet. Low CPU usage = long battery life (assuming you can come up with some kind of low-power-consumption wifi).
You travel on business. You use existing wifi (or cellular data) infrastructure and VPN into the company network. Your apps appear. You do what you need to do. Not as responsive, because there is more latency, but still usable.
If you take a laptop on business, it doesn't matter if some TSA bonehead feels the need to confiscate it. No data is stored on the laptop. It is just a mobile thin client. And, if it's company provided, you probably shouldn't have any personal data on there.
If you have a desktop machine at the office, with wired networking, it hits the same set of app servers. Consquently, your apps are consistent between the des
Everyone I talked to at Verizon seemed to be saying the same thing: $20/MB for international roaming. That would put a picture upload around $10 each (8 MP camera on my HTC Inc 2). My wife and I decided to turn off the data roaming on our phones and just use the wifi.
Before we crossed the border, we used Google Maps to cache the area we would be staying in (Osoyoos; this feature is included in the newer versions of Google Maps). We used the cached data for navigating around. The hotel had wifi, suitable for uploading pictures to Picasa, loading more map data into the cache and checking e-mail.
When we got to Abbotsford, BC, we found a McDonalds and used their open wifi to find a local hotel (Trip Advisor) and check out gas prices (Gas Buddy). Once we had that information, we had Google Maps find directions to the hotel. It promptly cached the whole route and we navigated to the hotel without needing wireless.
That hotel had wifi included. The ferry terminal we, later, went to (Tsawassen) had free wifi. The ferry we took (BC Ferries to Swartz Bay) had free wifi.
You can't check out hotels/restaurants, surf wikipedia for information or update Google Latitude while you're barreling down the highway, but you can do a lot without needing mobile data, so long as you have waypoints and destinations which provide wifi. You just have to know what to look for.
Lunchtime is when I run errands and generally take any excuse to get the heck out of the office.
I don't know about y'all but, for me, "the office" is a fabric-covered box in a big, windowless room. Want your creativity to improve? Get the heck out of the flourescent-lit geek fattening pen and get some natural sunlight. Go for a walk. Get some fresh air. Anything to get out of that soul-killing cubicle farm. Even if it's only for a while. You'll find your afternoon is much more productive and you'll do much better at retaining your sanity.
At lunch, my co-workers are busy talking about who tweeted what or what happened on "Big Bang Theory." Or who's reached what level on WoW (not so much of that, lately). I consider Twitter to be a pointless waste of time. I don't watch the same shows they do. I'm not a gamer.
I'm also a decade or more older than the rest of them. Some of them were still in diapers when I finished high school. One was born about the time I became old enough to drink. He has a B.S. CompSci, like I do. I think you can do the math.
In short, we have very little in common, other than the fact that we draw our paychecks from the same employer.
So, why would I want to eat lunch with them? I used to do that, trying to build a rapport with at least some of them. After a year of that, I finally decided that was a pointless waste of time and gave up.
The company even has a quarterly lunch where the company caters the food. I'm on a carb-restricted diet, and the caterers doesn't seem to comprehend that such a thing exists. Not even the green beans are safe (their special recipe involves adding a bunch of brown sugar; more people eat them, that way). Mashed potatoes, baked potates, various kinds of bread, cookies, you name it. They look at you funny if you just want protein and veggies and aren't oinking out on the carbs. I quit showing up for those events. There are only so many times I can go back for more salad.
Joel is trying to promote a workplace where you would actually want to be. For the vast majority of us in IT, that's too much to ask. Let me earn my paycheck in peace, then don't be surprised when I leave, at the end of the day, and go do something completely unrelated to the job, the office or my co-workers.
For your first question, unlikely. People like to compare supply/demand for lithium to petroleum. Unlike petroleum, you aren't "consuming" lithium. You're making it into stuff. Stuff which can be recycled. So, if you're seeing articles about "Peak Lithium" (a reference to "Peak Oil"), you can safely bet they're full of it.
Your second question suggests a basic understanding of supply-demand. Good.
As the demand for lithium increases, the price WILL go up in the short-term, which will stimulate investments in creating supply. We're already seeing the ramp-up in supply coincident with the ramp-up in demand. A few years ago, Electrovaya was advertising Lithium Ion batteries, large-format, for $300 / kWh in volume. That's what Elon Musk claims to be paying for his batteries, today. But the demand is at least an order of magnitude higher. We've already passed the "hump." And Elon Musk's investment, with Panasonic, in the "Gigafactory" is intended to push the supply higher, pushing the price lower, on the cheaper side of that hump.
A sudden, HUGE spike in demand could create another hump, but most manufacturers are sensitive enough on price that they will probably avoid it.
Google actually provides something useful to society; I may not like advertising (which is where they make most of their their money) but, at least, there is SOME utility. And the profits from that subsidize their other activites, which are quite useful.
JPMorgan Chase makes their money skimming a percentage off financial transactions. And gambling (let's face it, that's what 'investing' in the modern stock market really is). And, all too often, rigging the gambling (high-frequency trading, anyone? Mortgage Backed Securities, which they sold KNOWING that the valuation was a flat-out lie?) What's the utility to society?
None. So we get kinda up-in-arms when we see people getting obscene amounts of scratch for such grifting.
The sooner a tech company can automate getting/paying loans (the one useful thing which JPMC does), the better. The sooner tech companies can create the kinds of financial networks which undercut Mastercard, Visa et al. with similar utility and lower rates (less "skim"), the better. At that point, the only thing keeping dinosaurs like JPMC in business will be regulations REQUIRING human interaction on certain transactions, put in place at the urging of JPMC-paid lobbyists (such regs already exist).
That said, not all tech companies provide utility. So being a tech company doesn't mean you're automatically off-the-hook.
It's not the federal regs. It's the financial liability.
Properly maintained, an airplane will last much longer than a car. But even an airplane hits "tired iron" status after some decades.
Your 30-year-old car is involved in a crash. You die. Do your relatives sue the car company? Probably not. It's an old car. Most cars don't last 30 years. The auto manufacturer is perceived as being absolved of any liability, long ago. Three years, the manufacturer may be liable. Most people won't find an auto manufacturer liable for a 10-year-old car, much less 30.
Your 30-year-old airplane crashes. You die. Do your relatives sue the aircraft manufacturer? Probably. And, quite frequently, collect. Consequently, Cessna, Piper etc. are largely on the hook for EVERY AIRPLANE THEY EVER BUILT, even ones from decades ago. At least one company was talking about leasing their aircraft, not selling them, and pointedly destroying them after so many years of flight time, so that they could limit their liability.
I know, I know. It's fashionable to blame everything on federal regulations. And yes, they are pretty strenuous. But the financial liability is, quite literally, sky-high.
Then, of course, there's the fact that they don't build as many airplanes as they do cars; they never did. Which means they don't get to amortize their R&D across as many produced items.
IIRC, you don't have to have 30,000 keys. You need something akin to the text prediction systems found on most modern smartphones and tablets. Enter a few symbols (phonetic, a small subset of possible symbols), the system 'guesses' what word you're typing, suggests possibilties, you keep doing input until the symbol you want appears and you select it. I do that all day long with my smartphone. I can use T9 or 'compact' layouts to further reduce the number of possible symbols I can enter, but such things depend more heavily on the text prediction having my desired word in its dictionary/corpus.
The difference is that, for Japanese and Chines, you had to do that for desktop PCs and laptops because there was no way to represent the thousands of symbols available on any keyboard.
As touch-based input systems become more common (smartphones/tablets), there's the possibility to have a 'finger painting' type input system, where you draw the symbols. In that respect, eastern languages would be better suited to text input on such devices than us westerners.
... and posted a Journal article about it a couple months back. Yes, folks, it IS possible to create a general-purpose programming language which can be represented, and written, graphically. As more and more devices sport touch-based interfaces, this will work even better. The main reason we're still writing code with text is because programming involves a lot of complex, inter-related data input. And, for now, the fastest, most efficient mechanism we have for putting lots of complex inter-related data into a computer is ... text.
Really? This is news?
In Cryponomicon, they create a special unit (Detachment 2702) to guard the secret of the Bletchley Park. This unit is engaged in actively feeding misinformation to the enemy and arranging "accidental" discoveries. For example, if decrypted information says that a convoy of German ships is moving from port A to port B, they determine about where that convoy should be at this time and "arrange" for a patrol aircraft to fly over the area and spot it. When the Allies, subsequently, bomb the heck out of the convoy, the Germans don't ponder "how did they know?" They know the convoy was spotted by an Allied aircraft before the bombers arrived on the scene.
In one part of the book, a tramp steamer, operated by a bunch of people from this unit, "stumble" on a German "milk cow" submarine refueling/rearming an attack sub in the Caribbean. And Allied ships are promptly called in to depth charge the silly thing. The Germans don't have to ask how the allies knew it was there. They "stumbled on" it. The Germans are left to assume that they are just having really rotten luck. And that the Allies have a lot more patrol aircraft than they really do.
Yes, Cryptonomicon is a work of fiction. Such things are, however, perfectly believable. The Allies went to great lengths to hide the fact that we could read their encrypted transmissions. A great many German officers, after the war, were told that we had been "reading their mail" for much of the war, and were utterly astounded. They had no idea. Such a good job had been done at keeping the secret.
Protecting confidential sources? Arranging "accidental" discoveries of the necessary evidence? Gee, this sounds awfully familiar.
Gore got it for the same reason Obama did: he opposed GWB. In both cases, they were stating that W's warmongering needed to be opposed.
For Obama, arguably, they were also trying to contribute some international cred to whatever efforts he was making toward trying to convince the Muslims of the world that the USA had not declared a jihad against them. Early in his first term, he was actively engaged in that kind of "cooling off" rhetoric. He has had a pretty lousy follow-through on that. Celebrating the fact that America has sufficiently overcome decades of racism that we could elect someone from I minority race? Maybe. But I'm not so sure about that one.
A century ago, the countries of the modern-day European Union would've been at war with each other, given the economic climate. Are they fighting? They're certainly not getting the economic prosperity they were hoping for, but are they shooting at each other. As such, it could be argued that the EU is preventing an all-out war in Europe. Is that unworthy of a Peace Prize? In the absence of any other stand-out peacemaking by any other organization?
Edward Snowden has exposed a lot of hypocrisy on the part of the US government, particularly the NSA. Awarding him the Peace Prize, particularly after awarding it Obama, would be a particularly delicious irony.
The JAS at the beginning of the designation stands for the Swedish words for Fighter, Attack and Reconnaissance. It's a true multi-role fighter. The F/A designation means the SH is supposed be a Fighter and Attack aircraft but, considering its larger size, it's more Attack than Fighter. Don't waste your time with the Reconnaisance on the SH.
It has been pointed out that it is designed to operate from short fields, mostly just short stretches of roadway. Most US fighters would have a problem with that. The SH would definitely have a problem with that. Yes, it has longer range, but it's also considerably heavier.
Since Sweden requires a year of military service from all citizens, much of their enlisted military is made up of people who won't be around long enough to do six-month- or year-long training programs. The Gripen is designed so that a squadron of them can be maintained by a handful of experienced sergeants and a large bunch of barely-trained grunts. That means the maintenance tasks have to be kept relatively simple. Parts replacement has to be relatively easy, assuming the people wielding the wrenches are at least competent mechanics, not necessarily aerospace mechanics.
Also, the engine supplied with it is a modified version of a licensed GE engine design. Good luck vetoing the shipment of those engines to other countries. The plane can take armaments from a variety of countries. So, they are not dependent on good trade relations with the US.
Finally, yes, local industries stand to benefit from an influx of "fresh blood" from SAAB. I suspect they've already absorbed most of what they can get from Boeing. So, in terms of helping the local industrial base, the Gripen is a better choice.
I had an old Cobalt RAQ2 which did the 3rd and 4th items. It died, recently, so I'm looking at a QNAP box, which runs a version of Debian. It can do the caching DNS, but it might not be up to the caching web proxy. We've definitely noticed a difference with the 3rd and 4th items out of commission.
Give me a tablet with a Tiling Window Manager, so I can have multiple apps on-screen at the same time, with voice recognition that works and I'm gone. I would, no longer, have any need for a desktop or laptop computer.
I would like some more screen real-estate, though. A 7-inch tablet just doesn't cut it for me, and my eyes are too old to handle uber-high-resolution on a small screen.
Ubuntu already has the tiling window manager, but Android and iPad do not. And the voice recognition stuff is using desktop equipment. Yes, tablets are getting very interesting but they aren't ready to replace the desktop just yet. Another 12-18 months, though, you may be right.
For those with abnormally high levels of glucose in your blood, you're not just an all-you-can-eat buffet on legs. You have the dessert bar thrown in, too.
At a prior gig, there was free soda. It was mostly Coke/Pepsi, which I didn't care for. I wanted some Code Red. I found out who did the buying. I found out that she was part Norwegian. I brought in a plate full of Kransekake (ring-shaped, Norwegian marzipan cookies; I have the recipe and I've made them before). I waved 'em under her nose. Her eyes lit up. "Repeat after me: we're going to get some Code Red in the soda cooler." She repeated it. I left the cookies. Later that week, Code Red appeared in the cooler.
A little social engineering goes a long way.
Amen.
:-)
Much of my CompSci degree involved writing assignments in C++. Until I took a class where it was all Scheme. And another where I had to write my assignments in Java. We didn't have classes in these languages. We were simply expected to "pick them up" if we were going to complete our assignments.
The CIS majors were spending multiple semesters learning the finer points of Visual Basic. Yes, this is a few years ago
I suggested, at my current gig, that we have a certain task produce output in XML, then use XSL stylesheets to convert that to the outputs for various target platforms. One of the non-CompSci guys, who had never had a class involving push-down automata and regular grammars, whined about "XSL is hard!" It may be if you've never had the aforementioned class, but if you already understand conceptual things like regular grammars, XSL isn't that hard.
A CompSci degree will not teach you everything you need to do any particular job. It will, however, give you the tools to keep up with the constantly-evolving world of programming, whether the target output is HTML, or a green-screen app or a native, mobile app. Or whatever is the going thing a decade from now.
Cases with built-in solar cells. I want to be able to lay it on my desk (upside down is fine) or on the dash of my car on a sunny day and have the battery recover.
The ability for an app to change the device's USB profile:
The ability to set proxy server settings on a connection-by-connection basis. If I'm on my home wifi network, I have a caching proxy in place to reduce bandwidth usage and accelerate access. If I'm elsewhere, I don't want to try hitting that proxy server. Just add that to the wifi profile and get on with it. Neither Android nor any version of Linux I've used manages to get this right.
Array microphones on the device. I want to be able to lay my smartphone/tablet face-down on an table during a meeting and, not only record the voices clearly, but be able to map out, after the fact, who was sitting where and have the recording annotated with who said what. Can't even get an add-on device which can do this.
I'm 44. I develop web-based intranet apps for a Fortune 500 corp.
My job involves lots of coding in Java, with occasional excursions into SQL and RPG. Lots of HTML and CSS, as well. We make heavy use of Hibernate, which reduces the amount of actual SQL we have to touch.
I despise Java. The core language is very weak, so you have to have significant numbers of external libraries added in to accomplish anything. This results in a very large, complex API which no one can hope to learn the ins-and-outs of. You actually need something like Eclipse or NetBeans, where the editor can look at what you've entered and suggest methods, based on context. It really doesn't help when you tell the system you need a "List" of something, and it needs help figuring out which of the "List" classes to use.
Prior to this gig, I've coded largely with vim (no, I'm not trying to start a vi - emacs flamewar). I used the word completion functions but, otherwise, the code flowed from my fingers into the editor with relatively little input from the editor. Once I got "in the zone," I could code for hours at a time and accomplish a great deal. These Java-based editors need you to stop while it thinks about what to propose, which breaks the flow. I never, ever, get "in the zone" with Eclipse. And, due to the breadth of the libraries and the different classes and methods, I've never been able to code Java, effectively, with vim.
Add in the fact that everyone wants to tie in all these frameworks which abstract stuff away, many of which are built on "convention over configuration." This results in a lot of programmers who are little more than technological "sorcerer's apprentices," copying-and-pasting stuff from one project to the next because, well, that worked in the last project and they really have no clue HOW it works; this project needs to do something similar so, hopefully, it will work in this one, too.
On a recent project, I requested assistance from the most experienced Hibernate guy in the place. Something I was trying to do wasn't working. After digging around in it for a half hour, he told me I'd just have to dig into the documentation and figure it out because he had no clue why it wasn't behaving. Oh, and when I figured it, let him know what finally worked. The most experienced Hibernate guy was, in the end, just another "sorcerer's apprentice," who didn't really comprehend the "magic" he was wielding.
I'm not happy with being a "sorcerer's apprentice," but I don't have time to dig through the piles and piles of code which constitute the multiple layers of stuff we're building on. Expecially when you consider the fact that each of the layers are evolving, and we may replace the library in this layer with a completely different one in six months.
I don't have any kind words for RPG, either. It's a legacy language which predates widespread use of SQL. Some of the code I'm dealing with has been in production for two decades, back when the company was all green-screen apps and no intranet. The beancounters who run corporations don't want you ripping out piles of old stuff and replacing it; that old stuff has been in use for years, has been thoroughly tested and debugged. Who cares if it's hard to read and maintain? Who cares if the original developer, the only person who ever knew how it worked, retired years ago? It works! Modify it if you absolutely must, but don't replace it. Oh, and expect a s**tstorm if your modifications end up breaking something.
A year ago, I was wondering if I was getting too old for programming work. I loathed my job. Why do I put up with that place? Because there are precious few options in this town, I'm not in a position to relocate, I still need an income and that pays better than most jobs in this area. So, I put my head down and kept plowing along. Wondering how hard it would be to get a prescription for anti-depressants.
About six months ago, I started retraining myself. I started reading books about de
If not cut or outsourced it will, at the very least, be disrespected.
Prior gig: lead developer for a small, struggling AaaS company.
Current gig: intranet web developer for a Fortune 500.
The current gig pays better. The prior gig didn't pay enough to pay the bills; I'd still be there if it did.
I really miss doing web dev for a web-based company. I was the creator of products, the generator of wealth. The bottom line was enhanced directly by coming up with something faster, better designed, more efficient. If it took a little longer to get that new feature out there, they could live with that because the resulting app was better for the extra time spent on it. They didn't pay well but at least there was some respect because I made visible contributions to the company's bottom line.
Here, I'm a cost center. No respect. Aren't you done yet? I don't care if that design would work better; I've got your next six projects lined up and you're pushing them all back because this one isn't done yet. No, you don't have time to do major surgery on that hideously-screwed-up app; slap another band-aid on it and get on with this other one. We don't have time for that. No raise this year because you didn't meet all of your (arbitrary, management-assigned) goals. We've got interns who are producing more than you (the intern doesn't have to support/fix the crap they cranked out; I do).
I've been here almost 4 years. Once a few family commitments are completed, I am blowing this area. And you can bet my next gig won't be a "cost center."
3G data is unacceptable for most interactive IT work on the net.
Really?
I live in a rural area in southern Missouri. I used to use WildBlue (satellite) and found that to be painful for SSH, RDP and VNC. The bandwidth wasn't the problem; the latency was. For stuff like that, I found that connecting my cellphone (1X-CDMA/2G connectivity at that time) worked well for that. It had lower latency (similar to a dial-up modem) and, while it had less bandwidth than WildBlue, it had enough.
When they upgraded the local tower to 3G, I dropped WildBlue; I have been using 3G for my home connectivity for a couple years.
There are only two situations where I've found 2G or 3G to be particularly limiting:
1) RDP/VNC is painful when I am running an uber-high resolution display. 1920x1200 (I love my 24" Samsung) doesn't work so well through that because that's a LOT of pixels to push. Scale the window down to 1024x768 and 3G works quite well with RDP. Just don't try to watch video through it. TightVNC is more bandwidth-efficient, so you can go with larger windows. X Windows, over SSH, is frequently even MORE bandwidth efficient, because you're just sending one window's contents through the connection instead of the entire desktop.
2) I have to do a BIG download/upload. For the uploads, I have a cloud server ($11-12/month) and I use rsync. By kicking rsync into action multiple times during the course of a long dev project, I push lots of small "deltas" up to the cloud server. Because these are small, they go pretty quickly, even with limited bandwidth. When I need to do a major deploy, it deploys from the cloud server which has BOATLOADS of bandwidth. I have, on occasion, pulled down tons of code from a client's machine to the cloud server, then fired up a TightVNC session to the cloud server (through SSH) and did my analysis and editing. If you know what you're doing, you can bypass TightVNC and run the apps on the cloud server, but interact with them on your machine (X Windows is really good for this). In that case, I'm avoiding the download entirely.
Once upon a time, I used SSH and LBXProxy to remote into an ISP, where I worked, and drive my Windows-based workstation from a laptop and a 28.8 connection. Linux is actually better for making use of low-bandwidth connectivity than Windows.
Ideally, we'd have 4G, without bandwidth caps, everywhere in the country. With a little bit of technological knowledge, though, I do just fine with considerably less.
If you do not have a decent grounding in set theory, please do NOT attempt to do any significant database work.
Basic select, insert, update and delete can be dealt with via modern ORMs. Anything beyond that, such as joins, intersections, unions etc. are almost entirely set theory. Where is that covered in the traditional mathematics curriculum?
Yes, some ORMs purport to do that stuff, too, but they rarely do it well.
True story: I was taking a database course as part of my college education. The professor introduced us to relational theory, including an algebraic notation which described subsets of fields in a record and subsets of records in a table. Then, over the course of three class periods later in the semester, he taught us SQL. It boiled down to "this is how you do xxx in SQL." From that, we got table creation/destruction, selects, views, subqueries, aliased fields and tables, inner and outer joins, the whole enchilada. I've been able to build on that and do some pretty heavy-duty SQL work but I had to know the underlying theory. Being subsequently trained in RPG, where much of the legacy code does NOT use SQL (and you invariably don't have time to replace it with code which does), that theory comes in very handy.
We understood the underlying theory, all expressed via math. Learning SQL was a simple matter of learning how to express our desires in a language the computer could understand.
You need at least algebra to understand O(n) notation. Without that, you're usually stuck either cluelessly gluing together someone else's libraries (a LOT of that in modern SoftwareDev) or continually recreating O(n^3) (or worse) algorithms.
If you aren't going to learn calculus, one can only hope you never need to do any kind of Numerical Analysis. Any course where you're allowed to use Mathematica, because the calculus (such as taking the third or fourth derivative of a function) is "overhead" relative to the material being covered, is the very definition of "heavy duty." And, since physics is largely the application of calculus, avoiding calculus means you also need to avoid anything which involves physics. Stuff like game design (Angry Birds uses plenty, Angry Birds In Space uses more), putting rovers on Mars, wireless network design (wave propagation between obstacles and through different media is very calculus intensive); you know, the COOL stuff.
For the typical web developer, creating shiny web pages which do extremely simplistic database work, you probably won't need calculus. Ever. Is that all you ever aspire to be? And how long can you continue to do that without being crowded out by graphics design wizards with increasingly intelligent design tools?
I think Microsoft was forced into this. I think that they realize that to get into the market with a Windows tablet, the tablet will have to be sold at a (large) loss for several years. The normal PC manufactures are not willing to, nor can afford such expense.
If they're selling at a loss, I say we all go buy a couple. Multiply their loss. Then hack 'em and put Linux (and possibly Android) on them. Considering the number of third-party Android ROMs out there, I don't expect it'll take long.
My prior laptop was an HP, which was "designed for Windows 95." Within 30 days of buying it, it was running Debian (preferred distro at the time). My current laptop came with Vista. That didn't last a week. It is currently running Ubuntu 11.10. I don't use it enough, these days, to bother upgrading it further. The vast majority of my personal access to the Internet is through my current phone (HTC DI2). 99% of the time, I don't need a full-blown desktop or laptop.
My prior phone was an HTC Touch. It came with WinMo. Instead, it ran Android Cupcake, Donut, Eclair and, finally, Froyo during the time I had it.
The pattern is well-established. Buy hardware with MS products on it. Wipe out the MS crap. Run whatever you like. This will be no different.
IBM may have been larger than Microsoft, but Microsoft succeeded in bullying them into basically killing Lotus counterparts to Microsoft Office. As was revealed in the anti-trust trial, they told IBM that, if IBM attempted to bundle Lotus' competing products with IBM hardware (reducing demand for Office), IBM would still be shipping Windows 3.11 long after everyone else was shipping Windows 95. This would, of course, put IBM hardware at a distinct disadvantage in the hardware marketplace.
You don't have to be tiny to be bullied by Microsoft. All you have to do is depend on one of their products to sell your hardware. At that point, they have you by the short and curlies.
I was thinking along a similar vein a few years ago.
I was thinking of something like a long string of Christmas lights, with the individual bulbs being small, high-efficiency types. If you put them on a dimmer, they could shut off a certain fraction of the bulbs, reducing the light output. You could string them around the room, in the corner between the wall and the ceiling. That way, you'd have more even lighting, with fewer "hot spots."
Alas, no one has seen fit to produce such a beast. And LED rope lights, which come closest to implementing this idea, are neither cost-effective nor bright enough for what I'm wanting.
Also, I've been very disappointed with the color temperature of LEDs and CFLs.
A few years ago, Aerovironment had a 2-seat kit car they'd built. With lithium batteries, it had excellent range, but they wanted to be able to drive it further. So, they made a small, two-wheel trailer for it which contained a small, gasoline motor, a small fuel tank and a generator. Drive it around town on batteries. Hook up the trailer when you want to do a road trip. Best of both worlds.
I'm surprised no one has come out with one of those for the Nissan Leaf, yet. Seems like the most logical way to proceed. Alternately, if you don't want to drag a trailer, come up with something which attaches to the rear end, like a trailer-hitch-mounted cargo rack. It would add a couple feet to your length, and you might want air shocks on the rear end for load leveling, but you could attach the engine when you need it and do without the extra weight when you don't need it.
One of the main things about "cloud" is that you can "spin up" a server image in some professionally-managed (you hope) data center and put whatever on it. There is plenty of talk about "private clouds," which is where you have in-house servers running VMWare or Xen or something like that, where you can "spin up" new server images on your existing hardware.
Companies have been building intranets, which use Internet-type services but run internally. Private clouds are merely "clouds" which run internally. Those are NOT going away.
There are simply too many questions about security and reliability with publicly-available clouds. And, as many others have pointed out, there's a bandwidth bottleneck when you put heavily-used services somewhere outside of your building.
I do see an increasing amount of "Bring Your Own Device" in businesses. People are using personally-owned cellphones to connect to company directories, e-mail and the like. The problem I see what this is that you have to let your employer have admin rights on your device. If your cellphone gets stolen, they need a way to ensure that your credentials, stored on the phone, aren't used to access proprietary corporate data. I'm pointedly NOT accessing the corporate e-mail system through my phone because I'm NOT comfortable with giving someone else admin rights on a device for which I'm paying, and which holds a great deal of my personal data.
Consequently, a middle ground will need to evolve. You will need a way to use your iPad or Android-based tablet to connect to company data, in secure fashion, and be able to use it, but keep NO data permanently stored on the device.
There is already a system out there which allows you to "drive" apps on one device but run them on another machine, using the CPU, RAM, storage, etc. of the other, possibly faster, machine. And I'm talking finer granularity than PCAnywhere, or RDP or VNC.
X-Windows
You can have a desktop on the machine you're physically using, driving multiple applications which are actually running on other machines. You can be using some wimply little thin client, but running 5 different apps on 5 different, server-class, application servers. Each application server hosts one (or more) app(s), not an entire desktop. Citrix will let you do something similar. Sun had some really sophisticated software which would do this, too; you could run Linux-based apps next to Windows-based apps, driving all of them from a thin client. You could connect multiple thin clients together, giving you multiple screens and the system would automatically scale your desktop to handle all of the screens. I haven't looked too closely since Oracle acquired them, so I'm not sure if the software and thin clients are still available.
Take this to the next level. You bring your tablet to work. You connect with the corporate wifi and make a secure connection to the application servers. Your "start" menu (or something like it) populates with apps you can use. You use the user interface on your tablet to drive them, but the apps are actually running on server-class app servers within the company. The data stays on the servers, your tablet is little more than a dumb, graphics terminal. You aren't constrained by the CPU in your tablet. Low CPU usage = long battery life (assuming you can come up with some kind of low-power-consumption wifi).
You travel on business. You use existing wifi (or cellular data) infrastructure and VPN into the company network. Your apps appear. You do what you need to do. Not as responsive, because there is more latency, but still usable.
If you take a laptop on business, it doesn't matter if some TSA bonehead feels the need to confiscate it. No data is stored on the laptop. It is just a mobile thin client. And, if it's company provided, you probably shouldn't have any personal data on there.
If you have a desktop machine at the office, with wired networking, it hits the same set of app servers. Consquently, your apps are consistent between the des
This is what we did on our latest trip.
Everyone I talked to at Verizon seemed to be saying the same thing: $20/MB for international roaming. That would put a picture upload around $10 each (8 MP camera on my HTC Inc 2). My wife and I decided to turn off the data roaming on our phones and just use the wifi.
Before we crossed the border, we used Google Maps to cache the area we would be staying in (Osoyoos; this feature is included in the newer versions of Google Maps). We used the cached data for navigating around. The hotel had wifi, suitable for uploading pictures to Picasa, loading more map data into the cache and checking e-mail.
When we got to Abbotsford, BC, we found a McDonalds and used their open wifi to find a local hotel (Trip Advisor) and check out gas prices (Gas Buddy). Once we had that information, we had Google Maps find directions to the hotel. It promptly cached the whole route and we navigated to the hotel without needing wireless.
That hotel had wifi included. The ferry terminal we, later, went to (Tsawassen) had free wifi. The ferry we took (BC Ferries to Swartz Bay) had free wifi.
You can't check out hotels/restaurants, surf wikipedia for information or update Google Latitude while you're barreling down the highway, but you can do a lot without needing mobile data, so long as you have waypoints and destinations which provide wifi. You just have to know what to look for.
We incurred NO data charges on the entire trip.
Lunchtime is when I run errands and generally take any excuse to get the heck out of the office.
I don't know about y'all but, for me, "the office" is a fabric-covered box in a big, windowless room. Want your creativity to improve? Get the heck out of the flourescent-lit geek fattening pen and get some natural sunlight. Go for a walk. Get some fresh air. Anything to get out of that soul-killing cubicle farm. Even if it's only for a while. You'll find your afternoon is much more productive and you'll do much better at retaining your sanity.
At lunch, my co-workers are busy talking about who tweeted what or what happened on "Big Bang Theory." Or who's reached what level on WoW (not so much of that, lately). I consider Twitter to be a pointless waste of time. I don't watch the same shows they do. I'm not a gamer.
I'm also a decade or more older than the rest of them. Some of them were still in diapers when I finished high school. One was born about the time I became old enough to drink. He has a B.S. CompSci, like I do. I think you can do the math.
In short, we have very little in common, other than the fact that we draw our paychecks from the same employer.
So, why would I want to eat lunch with them? I used to do that, trying to build a rapport with at least some of them. After a year of that, I finally decided that was a pointless waste of time and gave up.
The company even has a quarterly lunch where the company caters the food. I'm on a carb-restricted diet, and the caterers doesn't seem to comprehend that such a thing exists. Not even the green beans are safe (their special recipe involves adding a bunch of brown sugar; more people eat them, that way). Mashed potatoes, baked potates, various kinds of bread, cookies, you name it. They look at you funny if you just want protein and veggies and aren't oinking out on the carbs. I quit showing up for those events. There are only so many times I can go back for more salad.
Joel is trying to promote a workplace where you would actually want to be. For the vast majority of us in IT, that's too much to ask. Let me earn my paycheck in peace, then don't be surprised when I leave, at the end of the day, and go do something completely unrelated to the job, the office or my co-workers.
Clearly, I'm not Joel's target demographic.