Slashdot Mirror


User: drew_eckhardt

drew_eckhardt's activity in the archive.

Stories
0
Comments
87
First seen
Last seen
Profile
(view on slashdot.org)

Comments · 87

  1. Re:The only thing I want to know... on Review of Das Keyboard · · Score: 1

    The people writing window managers these days (like metacity, the Gnome window manager) only allow for a single modifier key to get window manager actions (like raise) on a mouse click.

    Without the windows key that's guaranteed to collide with some applications use of Ctrl and Meta.

    Using an older window manager isn't an option because essential applications (power management, wifi association and authentication) are written as tool bar applications that don't play nice with twm.

    One could modify the window manager if they had time (say to require a double click) but paying work and family time take precedence.

  2. Re:Well, for one thing.. on Why Buy a PC Preloaded With Linux? · · Score: 1

    You know that it's supported for some definition of supported.

    "Supported" for my Dell 1420 with Linux installed by Dell meant wireless which was useless (it wouldn't make it through DHCP startup with the 30% packet loss) and no suspend (that would produce an infinite loop in vbetool).

  3. Vendor tweaking costs less than your time on Why Buy a PC Preloaded With Linux? · · Score: 1

    Over the last five years, I've owned three laptops with Linux installed: a box from Linux Certified, a Dell Latitude 630, and (purchased this March) an Inspiron 1420 which had Ubuntu 7.04 pre-installed by Dell.

    Only the Linux Certified worked out of the box.

    The Dell "Linux" 1420 took over $1000 in engineering time to solve the driver selection and configuration issues which are addressed by competent Linux Laptop VARs (wifi, suspend, and touchpad).

    The fundamental problem is that there's no fixed mapping between what a given product name like "Dell Inspiron 1420N" translates to in terms of hardware, chip versions, and firmware revisions. Other users' success is not a predictor for your own.

    While some people have been successful at getting specific versions of Linux to work like the bundled Ubuntu 7.04 others haven't been.

    I had up to 30% packet loss with any 3945 driver I could download in binary form or recompile to run with that kernel or the RHEL 5.1 kernel, with backports of the newer iwl3945 driver failing to compile.

    Digging through forums all of the people reporting problems seemed to have revision 2 of the 3945 chip.

    Fortunately upgrading to Linux 2.6.25 fixed that problem, but that fix wasn't documented on any web page I read.

    My system went into an infinite loop in vbetool when I resumed from suspend where other users had been successful.

    Looking at bug report time frames, I might be tempted to blame a newer BIOS version (used by vbetool to restore video settings).

    According to the NVIDIA README, vbetool shouldn't be used for suspend and resume. Groveling around (the Linux people have chosen to disregard decades of unix tradition writing man pages and making man -k return sensible things) one finds that pm-utils are running scripts out of /usr/lib/pm-utils with the functions file telling the scripts what to do based on hardwre type.

    Fortunately it was a two line fix to get things working, but that fix wasn't documented on any web page I read.

    Etc.

    If your time is valuable you're much better off paying a Linux laptop VAR a few hundred dollars to deal with these hassles once for all their customers than doing it yourself. Dell is _NOT_ a Linux VAR (unless you count the bundled LinDVD license)

    Desktops tend to just work a lot more of the time, perhaps because the user base is bigger so bugs get fixed sooner and you don't need working power management since the thing can stay on 24x7 without running out of battery.
    I've never had problems installing current Linux versions on random Dell desktops.

  4. Pracitical experience needed for new work on For CS Majors, How Important Is the "Where?" · · Score: 1

    >It makes no difference. Once you get a job, it's not as if you'll actually do any REAL work. It's mostly just revisions of past designs.

    It depends on your demonstrated aptitudes. With a history of doing interesting greenfield designs you can choose to work on new projects which start with a business plan. With a history of coming up with novel ideas you can work as a computer scientist and build neat prototypes. With a history doing maintenance on existing software, you can do maintenance on existing software that's probably poorly written.

    Design is a different skill set from patching existing code. Regardless of how smart you are and what school you went to you're going to do it poorly at first. Consequently lots of us will never hire an engineer to work on a new project who hasn't done new design and implementation before. We are generally open on where the experience came from and even prefer things that we can look at like open source contributions. Project classes like compiler construction (in mine we wrote a compiler for a subset of 'C') are a start. Master's theses and PhD dissertations with significant design and implementation components are good. A curriculum that requires hands-on-programming from the beginning means you'll be a _lot_ more likely to get that experience as an undergrad.

    I've worked professionally as a software engineer for fifteen years. About four years of that has been maintenance on other people's code, mostly from my first jobs out of school and when I made the mistake of going to work for a large company where people are resources.

    About five years has been completely new products - talk with customers and marketing to decide what to build, design, implement, and iterate. Examples there include a highly available cellular billing system interface and clustered storage with an iSCSI interface.

    The rest has been mostly new (usually non-trivial) features in existing products - networking for media movement in a disk based digital video recorder for the broadcast and post production markets (0-copy between RAID and network controllers), replace a disk virtualization product's meta-data storage with something that's both replicated and orders of magnitude faster, etc.

    To answer the original question: You want hands on experience writing software, preferably in the form of project classes where you have to work on the same piece of code for a semester or two and hopefully learn how what you do in the beginning affects maintainability. Courses in data structures are directly applicable to pretty much every non-trivial software project. Operating systems and computer architecture will let you understand what's actually going. While you're unlikely to use the languages taught in programming languages, the abstractions (like functional programming) will be useful. Compiler construction will help you solve parsing problems.
    Statistics and probability are useful to quantify how something should behave and what it's actually doing. Good written communication skills are increasingly important now that entire teams are being outsourced to people 8-12 time zones away.

    Even if you are more interested in theory, you'll be more likely to internalize it in a useful way when you have to actually apply it. I've talked to candidates with masters' degrees and high A averages who could regurgitate computational complexities without being able to choose the right data structures for a simple problem.

  5. Re:You're looking for the wrong thing. on How Do You Find Programming Superstars? · · Score: 1

    >As someone who is responsible for hiring people, and being an ace programmer myself, I can say that any good developer won't show it in the resume.

    Sure they do.

    Top notch people with more than a few years of experience find the opportunity to do challenging things so their resumes are unusually complex for some one with their years of experience or dense with such projects.

    Top notch people are tool builders and not just tool users. They'll have written things like simulators, compilers, and build tools when off the shelf products were unavailable.

    Top notch people are creative. They build products that would also make nice research papers/PhD theses or list novel solutions on their resumes that do wonders for performance and would make nice patents. If they did a dissertation or thesis it had a meaty implementation component.

  6. Re:Simple answer... on How Do You Find Programming Superstars? · · Score: 1

    >Number two, they want to know that you are a good person to work for. What is the company's goal, mission, vision, idea, et al? What career prospects are there? What can a "superstar" programmer expect to be doing in 10 years at your company?

    I think the goal is pretty much to be "retired" and working for fun as a hands-on CTO/chief software technology officer/technical founder in a different company (with some of their best co-workers) with some reasonable balance of business, technical leadership, research, and hands-on development not necessarily in that order.

    Some people have a passion and aptitude for painting or writing music; others do software and people don't get to be exceptional without the passion to get you there.

  7. Re:Appeal on How Do You Find Programming Superstars? · · Score: 5, Insightful

    >I'd pose to you a give-a-man-a-fish metaphor. Why work on finding good programmers when you can find a good project manager - probably with a PhD - who can forge hard-working programmers into good and hard-working programmers.

    Because

    1) You can't teach hard working programmers the creativity needed to come up with novel solutions to hard problems, where the right creative solution can net orders of magnitude better performance and/or reliability. The rough order here can be of a better PhD thesis or Digital labs paper (but with more attention to reliability).

    2) Experience productizing solutions _well_ is needed to build reliable complex software. I know of distributed systems groups that had to flush their first products due to algorithmic bugs and others that needed heavy operator support to keep things running because inexperienced groups lacked sufficient practical background in simulation.

    The best you can do is grow people towards their potential. Some engineers have a creative mindset and will solve problems when given a description, with the size of the problem dependant on experience and aptitude. You can get them working on bigger and bigger problems with more attention paid to practical concerns. Some engineers can implement something given a description (smells like a log structured file system, with a separate log for B+ tree nodes). You can teach them better engineering discipline.

    >Why? Because if you hire savants, they'll do their work in 10 minutes and bill you for 2 hours because that's the time it takes for everyone else to build the same amount of code.

    If you pick their brains on an as-needed basis on what you think is important, you'll be paying $500 for their 4 hour billable minimum and not getting fringe benefits.

    If you actually hire them and they have interest in how the product and company go, they'll work 60-80 hours a week (it's not about the money) for options on .5-1% of the company and perhaps 10-20% more in base salary than you'd pay some one who's merely excellent, you'll get over 5X the output on product code (output would be higher if non-coding responsibilities didn't consume 1/2 - 2/3 of their time), build infrastructure, test infrastructure, an effective mentor for your junior engineering personnel, attention to system level interactions before the code is written instead of after it's integrated, and maybe a little management thrown in.

    If you're solving the same problems over and over again, it doesn't matter and they wouldn't be interested.

    If you have something that's too hard for other companies to pull off, the right handful of gurus can mean the difference between success and failure.

  8. Re:Similarly... any tips for soon-to-be graduates? on How Do You Find Programming Superstars? · · Score: 1

    I would never hire a software engineer (which takes a combination of creativity and technical aptitude) without a track record and don't know many people outside large companies who would.

    The key is that the experience doesn't have to be paid. Find an area of software that interests you (I've always been fond of systems software), take lab/project classes where you can build related real projects (I built a toy 'C' compiler in school), do something that has a meaty implementation component for your master's thesis, and do open-source projects (I added a SCSI subsystem to my favorite free unix). The open source part is especially important because it gives you something concrete to point people at.

    The first few non-trivial software projects you build will have sub-optimal designs and maintainability issues; getting that out of the way before its important

  9. Re:Zeno's Paradox reworked on Uncle Sam Spoils Dream Trip To Space · · Score: 1

    Sure it can.

    As a trivial example, given a flat 25% tax rate, $X after tax = 3/4 pre-tax money, so pre-tax money must be 4/3 after tax.

    With real world tax brackets, phase-outs, and exclusions the arithmetic is more complex but not unworkable.

  10. Re:new one on me on Dealing w/ Relocation Package Bait and Switch? · · Score: 1

    >1) take the job
    >2) start job-hunting immediately
    >3) see if this was an anomaly or business-as-usual for a company without a moral compass.

    Note that most contracts involving relocation require you to reimburse the company which moved you for the costs that it incurred if you leave before a specified time limit (typically one year). The reimbursement may or may not be pro-rated over that time.

    Companies place limits arround the use of their relocation benefits. They get to pick the moving company ($20,000 to move a 1200 square foot home 1500 miles and store for a month). They get to pick your temporary housing provider ($3000/month). You may only get reimbursed for your real-estate expenses if you use an agent which has signed an agreement with them to kick back a portion of the comission. The net result is that your relocation may cost a lot more than if you handled the details yourself.

    Combining the two, I was on the hook for about $60,000 plus my signing bonus when I relocated for a job where I was to "own one or two major feature areas" and work for a guy I respected technically from the interview process. Neither of those materialized.

    If everything doesn't smell like roses before you relocate DON'T.

    On top of the financial hit, if things don't work out in your new city you'll be missing your support (friends) and professional (finding new jobs) networks.

  11. Re:100.. 160 inches? on Sony Projector Gets Bright Images From Black Screen · · Score: 2, Informative

    Human visual acuity is about 1 minute of angle, meaning you need a screen to subtend 32x18 degrees to visually resolve 1080 line HD.

    To maintain a sense of immersion, THX suggests a 36 degree subtended field of vision for the farthest seat in the theater. Home theater enthusiasts find that in the absence of projection artifacts, the best seating is at about 1.5 screen widths (about 37 degrees)

    This translates into a diagonal screen measure 2/3 to 3/4 your seating distance. At modest sized living room dimensions and beyond (10' to screen) this is impossible to achieve without a 2 piece projection setup (79 - 90" diagonal required).

    A 32" TV a few feet away on your coffee table would work but have a bigger impact on the decor than a wall mounted or retractable screen.

  12. Complete elimination of distractions on Finding the Programming Zone? · · Score: 1

    Most notably cow-orkers who aren't there as part of a pair-programming process. With office mates having conferences in the same room one is trying to get work doine productivity is easily 25% of what it can be otherwise.