Archive for

April, 2017

...

Review: “Dreaming in Code”, Scott Rosenberg

Comments Off

What makes software so hard? Why does it take so long to develop? Why is it always late, always full of bugs, always over budget? In “Dreaming in Code” by Scott Rosenberg, he explores these questions from a historical perspective, and through anecdotes from the Open Source Applications Foundation (OSAF) project “Chandler“. The story of the Chandler project, founded and funded by Mitch Kapor in 2002, serves as an anchor to which Rosenberg attaches the history of software development and management. It turned out to be an interesting choice, since the Chandler project came without a deadline, with “unlimited” funding from Kapor’s pocket, and with very enthusiastic collaborators. Nevertheless, they hit the same hurdles as pretty much any large complex software project have, including being stuck in “software time”, communication overhead, planning and time estimate problems, delayed releases, and thousands of bugs.

Between the project anecdotes, Rosenberg surveys the software development and management literature, and gives a brief glimpse into its history. He frequently comes back to Fred Brooks’ “The Mythical Man-Month” and concludes that the communication overhead grows exponentially, even with today’s online always-connected tools. And there is still no silver bullet to solve it. He touches on various methodologies and processes, including the Capability Maturity Model (CMM); Team Software Process (TSP); Rapid Application Development (RAD); Agile Software Development; Extreme Programming. All of which were supposed to assist a software project and guarantee some kind of success, but which in the end come with their own short-comings and pitfalls.

Given that Chandler is already history, it is not a spoiler for the book to mention that the project failed. It was designed and planned as a native application, right before AJAX and Web 2.0 become buzzwords, and much of the functionality it tried to deliver have now been covered by large web services like Google’s Apps suite, Microsoft’s Office365 and similar. Still, there is plenty to learn from its story.

Learn from it

Rosenberg himself, as well as authors he quote lament the fact that many developers do not take the time to read and study their own profession and history. I have no basis to say whether this is holds or not, however, if it is the case, this book is a good entertaining pick. Despite its age, it is just as relevant today.

If you are or have ever been part of a software project, either as a developer, designer, tester or manager, this book will come with a lot of deja vu moments. Every team believes to some extent that their project, their company, or their goal is special. And because it is special, conventional rules and wisdom does not hold. Usually, history tends to get the last laugh as it repeats itself over and over.

Comments Off

Ubuntu 16.10 on Asus ZenBook UX330

Comments Off

As mentioned in a previous post, I recently got the Asus ZenBook UX330 (UX330CA-FC020T, to be specific). It’s a very light weight 14″ decent spec’ed laptop which runs Ubuntu flawlessly. Here are some notes on installing, and first impressions.

UEFI boot and install

As far as I’ve seen, there are at least two versions of the BIOS around for these machines: The display model had an “old fashioned” ASCII text based BIOS, while the one which got delivered had a new UEFI based GUI. Both can boot the Ubuntu 16.10 64-bit live image, but the Secure Boot just needs some tweaking.

Before getting to boot, it’s important that the partition of the USB stick which holds the image is marked as bootable. In GParted, this can be done with the option seen below. Once that is taken care of, transferring the ISO is easily done with UNetbootin.

Once ready, plug in the USB stick, restart the machine, and hold F2 to enter the BIOS / UEFI setup. (Holding ESC will show the temporary boot selection menu). The “easy” mode can be seen below.

From here, press F7 to enter “Advanced” mode, and use the arrow keys or mouse to tab over to the Security options. Towards the bottom of that tab, there’s a sub-menu for Secure Boot. Enter that menu, and disable Secure Boot.

Use F10 to save and exit, and got back into the UEFI setup with F2 to verify that the Ubuntu live portion shows up as “1100, Partition 1″. From here you can change the Boot settings to select the USB portion first, or use F8 to boot from that only once, which should be all you need to get the installation going.

Ubuntu compatibility

Here’s a list of features I’ve personally tried and confirmed to be working. In summary, this machine looks very well prepared for Ubuntu, with no major draw-backs. The only additional setup which might be worth-while is configuring the touchpad to temporarily disable while typing, as described here.

Status
USB ports Work
SD card reader Works, mounts.
Wifi Detects all networks; connects.
Fast re-connect after suspend.
Bluetooth Not tried
Web cam Works with “Cheese”
Suspend Works; resumes quickly.
From Ubuntu menu, lid close, or Fn + F1
Flight mode
(Fn + F2)
Work, reconnects quickly.
Keyboard brightness
(Fn + F3/F4)
Works
Screen brightness
(Fn + F5/F6)
Works
External display
(Fn + F7/F8)
Not tried
Volume buttons
(Fn + F10/F11/F12)
Works
CPU throttling Not tried

Specs

The UX330CA is a decent spec’ed laptop, and there’s a few variations should you want more power. Here’s the selection as it looks in early 2017, comparing to the slightly more expensive UX330UA line.

UX330CA UX330UA
Price range €750 €930 – €1300
CPU Core M3-7Y30 1 (2.6) Ghz Core i5 7200U 2.5 (3.5) GHz -
Core i7 7500U 2.9 (3.5) GHz -
Max TDP 4.5 W 15 W
RAM 8 GB 8 / 16 GB
SSD 128 GB 256 / 512 GB
GPU Intel HD Graphics 615 Intel HD Graphics 620
Display 1920 x 1080 pixels; 13.30″
anti-glare; no-touch
1920 x 1080 pixels; 13.30″
anti-glare; no-touch
USB 2x USB 3.0 A
1x USB 3.1 C
2x USB 3.0 A
1x USB 3.1 C
SD card reader SD, SDHC, SDXC SD, SDHC, SDXC
HDMI Micro HDMI Micro HDMI
RJ45 / LAN No,
comes with USB adapter.
No,
comes with USB adapter.
3.5mm mini-jack 1x 1x
Web cam 1280 x 720 pixel 1368 x 768 pixel
Bluetooth version 4.1 4.1
Wifi version 802.11 ac 802.11 ac
Weight 1.20 kg 1.20 kg
Dimensions (W x L x H) 32.20 x 22.10 x 1.23 cm 32.20 x 22.10 x 1.35 cm
Comments Off