Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×

Comment My wishlist (Score 2) 453

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.

Comment Re:got better things to do (Score 5, Interesting) 525

You have to be careful which one you sign up with.

I spent 4 years in Uncle Sam's Air Farce. I lived in a dormitory, not a tent. I slept on a bed, not on a cot. I handled an M-16 a whopping total of 4 days of those 4 years. I spent those 4 years working on fighter jets (F-16, to be more specific) and was able to pass the exams for an FAA Airframe Mechanic's License when I got out.

I used my VA benefits to pay for expenses while I finished off a B.S. CompSci, after I got out.

Finished college over a decade ago. Making plenty more than I would've if I'd stayed in, or had never finished college.

If I'd joined the Army, I would've spent more time in a tent, more time on a cot, more time eating really lousy food. Just because I served my country doesn't mean I felt the need to do it the hard way.

Comment Only you can answer that question (Score 1) 418

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 design and User Experience. If you're wanting to learn more about those, I highly recommend "The Inmates Are Running the Asylum" and "The Design of Everyday Things." I've also been learning more about Javascript. I've used it for the better part of a decade, but never wrapped my head around the object-oriented aspects of it. I acquired and read "Javascript: the Good Parts" and "Eloquent Javascript."

My most recent project has allowed me "stretch my legs" a bit, in the user experience design area, and to tackle a lot of jQuery. While it took some doing to wrap my head around jQuery, I'm finding I enjoy it immensely. It's not as limited as Java and RPG. And being able to make the browser do all kinds of nifty stuff is very gratifying.

I don't love my job, but some of the more recent work, involving jQuery and a little bit of Perl, have made it more enjoyable. But I had to find the motivation, time and energy to start retraining myself. The good news is that was that the financal cost was a ebooks e-books for my reader. In another six months, I hope to have enough modern Javascript, jQuery and UXD on my resume to be able to jump to a better paying employer, maybe even going independent.

Comment Re:Profit Center vs Cost Center (Score 1) 397

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."

Comment Re:We're not there yet. (Score 1) 365

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.

Comment Depends on what you want to do (Score 2) 1086

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?

Comment Re:Unlimited? How about $INF (Score 1) 314

I'm with ya there.

Fixed price / unlimited data = data equivalent of an all-you-can-eat buffet, where people tend to consume as much as possible to "get their money's worth."

Give it a small price / GB and get on with life, not unlike electricity or water.

$10 / GB is where a lot of the tiered plans seem to fall, these days. I'm thinking that's too steep, though. $2 / GB might be reasonable, in the near term, for mobile data, but it needs to keep dropping.

The various mobile providers should be relegated to competing on delivered bandwidth, latency, coverage and price. Kill all the other fancy stuff which gets in the way of that, like minutes and texting. Voice and text are, after all, just specialized types of data. The sooner they become pipes of commodity data, and forced to compete in those areas, the better.

Comment Who says it has to continue to run MS software? (Score 1) 530

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.

Comment Re:Make sense (Score 1) 530

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.

Comment Re:Good for some... (Score 1) 743

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.

Comment Simpler than that (Score 1) 218

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.

Comment Private clouds will prevails (Score 1) 444

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 desktop machine and the tablet. Also, the data is in the expected places between the desktop machine and the tablet.

You leave the company. Your credentials on the company network are shut down. You keep your device but you can no longer access the corporate apps and their data. No data was ever stored on your machine, so there is little worry about loss of proprietary corporate data.

I was able to use xterm, vim-gtk, netscape and various other apps over LBX and a 28.8 modem connection back in the '90's. Viewing images was painfully slow, and you certainly didn't want to play video through that link, but a lot of stuff was quite workable, even then. Modern 3G or wifi has much more bandwidth. The connection protocol would need some kind of caching and compression, especially for remote VPN connectivity.

Yes, you will need network engineers to install and maintain the wifi. You will need system/network admins to keep track of who can access what and from where. You will still have systems in-house, in a private cloud. A small company may use publicly-available cloud servers, but when they start having multiple people working from one, physical location, the services will need a way to migrate in-house. As such, there needs to be a common way of storing server images, so that you can migrate your existing apps and data from a publicly-available cloud server to a private cloud server.

Certain positions are not going away. Only clueless bean-counters will think that network engineers and admins aren't needed. But then, they already think that, until such time as their absence causes problems. Additional application developers will be needed as platforms change.

That's where I think IT will be in 10 years. Everything old will be new again. Certain positions will always be needed.

Comment Re:McDonalds? (Score 1) 270

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.

Comment Out of the office (Score 2) 475

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.

Comment Re:Game the contest. (Score 1) 78

The time you most need horsepower, on a traditional aircraft, is during takeoff. Lose the engine at altitude and you have some time to figure out where you're coming down. Lose it on takeoff and, well, you better think fast.

A Light Sport Aircraft is limited in the amount of horsepower it can produce, the max speed in level flight and the range. It doesn't say anything about takeoff performance.

Use a small, lightweight, relatively weak Internal Combustion Engine (ICE) with an electric motor/generator as an assist for takeoff. That way, you would have more power available for takeoff and you wouldn't be completely powerless if the ICE failed (doesn't happen often, but it's usually catastrophic when it does).

Charge up some batteries before flight. Possibly even put some flexible thin-film photovoltaics on the wings and park in the sun for a couple days before flying. It'll add to the cost of the plane, but reduce the operating cost.

Electric + ICE for takeoff. ICE for cruise. For landing, turn the electric motor into a generator, allowing you to use the prop as a dive brake. Big turboprop singles like the Pilatus PC-12 routinely do this (flatten out the pitch at low RPM to increase drag). This way, when you land, you recharge your batteries part of the way. And, if you have a missed approach and need to pull out, you go back to electric + ICE.

Voila! A hybrid aircraft. Improved takeoff performance and takeoff safety with a small engine and a limited cruise speed (dovetailing nicely with the Light Sport Aircraft requirements). The improved safety factor will only make it more attractive than a traditional, ICE-only aircraft. Might have to get a waiver on the aircraft weight, though. Since you aren't trying to cruise on electric power, you won't need terribly many batteries.

Slashdot Top Deals

If you want to put yourself on the map, publish your own map.

Working...