Archive for the ‘General Blather’ Category

System76 Oryx

Thursday, December 17th, 2015

I received my Syste76 Oryx today. The.  folks there rushed the order because my alienware m18xr2 died on me (well, technically it was on life support). It is considerably faster, everything works perfectly thus far in linux. I’m entirely setup at this point as far as I know. Audio software is installed, video as well, work software taken care of, everything. Pretty stellar. Here is an lshw output for anyone who is curious:

 

agathezol-oryx
description: Computer
width: 64 bits
capabilities: smbios-3.0 vsyscall32
*-core
description: Motherboard
physical id: 0
*-memory
description: System memory
physical id: 0
size: 31GiB
*-cpu
product: Intel(R) Core(TM) i7-6820HK CPU @ 2.70GHz
vendor: Intel Corp.
physical id: 1
bus info: cpu@0
size: 3594MHz
capacity: 3600MHz
width: 64 bits
capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp x86-64 constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_noitfy hwp_act_window hwp_epp intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 cpufreq
*-pci
description: Host bridge
product: Sky Lake Host Bridge/DRAM Registers
vendor: Intel Corporation
physical id: 100
bus info: pci@0000:00:00.0
version: 07
width: 32 bits
clock: 33MHz
*-pci:0
description: PCI bridge
product: Sky Lake PCIe Controller (x16)
vendor: Intel Corporation
physical id: 1
bus info: pci@0000:00:01.0
version: 07
width: 32 bits
clock: 33MHz
capabilities: pci pm msi pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:121 ioport:e000(size=4096) memory:de000000-df0fffff ioport:c0000000(size=301989888)
*-display
description: VGA compatible controller
product: GM204M [GeForce GTX 980M]
vendor: NVIDIA Corporation
physical id: 0
bus info: pci@0000:01:00.0
version: a1
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
configuration: driver=nvidia latency=0
resources: irq:129 memory:de000000-deffffff memory:c0000000-cfffffff memory:d0000000-d1ffffff ioport:e000(size=128) memory:df000000-df07ffff
*-multimedia
description: Audio device
product: GM204 High Definition Audio Controller
vendor: NVIDIA Corporation
physical id: 0.1
bus info: pci@0000:01:00.1
version: a1
width: 32 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list
configuration: driver=snd_hda_intel latency=0
resources: irq:17 memory:df080000-df083fff
*-usb
description: USB controller
product: Sunrise Point-H USB 3.0 xHCI Controller
vendor: Intel Corporation
physical id: 14
bus info: pci@0000:00:14.0
version: 31
width: 64 bits
clock: 33MHz
capabilities: pm msi xhci bus_master cap_list
configuration: driver=xhci_hcd latency=0
resources: irq:122 memory:df310000-df31ffff
*-usbhost:0
product: xHCI Host Controller
vendor: Linux 4.2.0-21-generic xhci-hcd
physical id: 0
bus info: usb@2
logical name: usb2
version: 4.02
capabilities: usb-3.00
configuration: driver=hub slots=8 speed=5000Mbit/s
*-usbhost:1
product: xHCI Host Controller
vendor: Linux 4.2.0-21-generic xhci-hcd
physical id: 1
bus info: usb@1
logical name: usb1
version: 4.02
capabilities: usb-2.00
configuration: driver=hub slots=16 speed=480Mbit/s
*-usb:0 UNCLAIMED
description: Generic USB device
product: EgisTec_ES603
vendor: EgisTec
physical id: 7
bus info: usb@1:7
version: 2.00
capabilities: usb-1.10
configuration: maxpower=100mA speed=12Mbit/s
*-usb:1
description: Bluetooth wireless interface
vendor: Intel Corp.
physical id: 8
bus info: usb@1:8
version: 0.01
capabilities: bluetooth usb-2.00
configuration: driver=btusb maxpower=100mA speed=12Mbit/s
*-usb:2
description: Video
product: BisonCam, NB Pro
vendor: Generic
physical id: 9
bus info: usb@1:9
version: 6.05
serial: 200901010001
capabilities: usb-2.00
configuration: driver=uvcvideo maxpower=500mA speed=480Mbit/s
*-generic UNCLAIMED
description: Signal processing controller
product: Sunrise Point-H Thermal subsystem
vendor: Intel Corporation
physical id: 14.2
bus info: pci@0000:00:14.2
version: 31
width: 64 bits
clock: 33MHz
capabilities: pm msi cap_list
configuration: latency=0
resources: memory:df32e000-df32efff
*-communication
description: Communication controller
product: Sunrise Point-H CSME HECI #1
vendor: Intel Corporation
physical id: 16
bus info: pci@0000:00:16.0
version: 31
width: 64 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list
configuration: driver=mei_me latency=0
resources: irq:126 memory:df32d000-df32dfff
*-storage
description: SATA controller
product: Sunrise Point-H SATA Controller [AHCI mode]
vendor: Intel Corporation
physical id: 17
bus info: pci@0000:00:17.0
version: 31
width: 32 bits
clock: 66MHz
capabilities: storage msi pm ahci_1.0 bus_master cap_list
configuration: driver=ahci latency=0
resources: irq:124 memory:df328000-df329fff memory:df32c000-df32c0ff ioport:f050(size=8) ioport:f040(size=4) ioport:f020(size=32) memory:df32b000-df32b7ff
*-pci:1
description: PCI bridge
product: Sunrise Point-H PCI Express Root Port #5
vendor: Intel Corporation
physical id: 1c
bus info: pci@0000:00:1c.0
version: f1
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:16 ioport:d000(size=4096) memory:df200000-df2fffff
*-generic
description: Unassigned class
product: Realtek Semiconductor Co., Ltd.
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:02:00.0
version: 01
width: 32 bits
clock: 33MHz
capabilities: pm msi pciexpress msix vpd bus_master cap_list rom
configuration: driver=rtsx_pci latency=0
resources: irq:123 memory:df215000-df215fff memory:df200000-df20ffff
*-network
description: Ethernet interface
product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0.1
bus info: pci@0000:02:00.1
logical name: enp2s0f1
version: 12
serial: 80:fa:5b:25:39:58
size: 10Mbit/s
capacity: 1Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=half firmware=rtl8411-2_0.0.1 07/08/13 latency=0 link=no multicast=yes port=MII speed=10Mbit/s
resources: irq:125 ioport:d000(size=256) memory:df214000-df214fff memory:df210000-df213fff
*-pci:2
description: PCI bridge
product: Sunrise Point-H PCI Express Root Port #6
vendor: Intel Corporation
physical id: 1c.5
bus info: pci@0000:00:1c.5
version: f1
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:17 memory:df100000-df1fffff
*-network
description: Wireless interface
product: Wireless 8260
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:03:00.0
logical name: wlp3s0
version: 3a
serial: a4:34:d9:0a:6f:72
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=iwlwifi driverversion=4.2.0-21-generic firmware=25.30.13.0 ip=192.168.1.36 latency=0 link=yes multicast=yes wireless=IEEE 802.11abgn
resources: irq:127 memory:df100000-df101fff
*-isa
description: ISA bridge
product: Sunrise Point-H LPC Controller
vendor: Intel Corporation
physical id: 1f
bus info: pci@0000:00:1f.0
version: 31
width: 32 bits
clock: 33MHz
capabilities: isa bus_master
configuration: latency=0
*-memory UNCLAIMED
description: Memory controller
product: Sunrise Point-H PMC
vendor: Intel Corporation
physical id: 1f.2
bus info: pci@0000:00:1f.2
version: 31
width: 32 bits
clock: 33MHz (30.3ns)
configuration: latency=0
resources: memory:df324000-df327fff
*-multimedia
description: Audio device
product: Sunrise Point-H HD Audio
vendor: Intel Corporation
physical id: 1f.3
bus info: pci@0000:00:1f.3
version: 31
width: 64 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list
configuration: driver=snd_hda_intel latency=32
resources: irq:128 memory:df320000-df323fff memory:df300000-df30ffff
*-serial UNCLAIMED
description: SMBus
product: Sunrise Point-H SMBus
vendor: Intel Corporation
physical id: 1f.4
bus info: pci@0000:00:1f.4
version: 31
width: 64 bits
clock: 33MHz
configuration: latency=0
resources: memory:df32a000-df32a0ff ioport:f000(size=32)
*-scsi:0
physical id: 2
logical name: scsi0
capabilities: emulated
*-disk
description: ATA Disk
product: Samsung SSD 850
physical id: 0.0.0
bus info: scsi@0:0.0.0
logical name: /dev/sda
version: 1B6Q
serial: S24BNXAGB09990B
size: 232GiB (250GB)
capabilities: gpt-1.00 partitioned partitioned:gpt
configuration: ansiversion=5 guid=1f534924-01cb-455c-9c86-bd42b5783460 logicalsectorsize=512 sectorsize=512
*-volume:0
description: Windows FAT volume
vendor: mkfs.fat
physical id: 1
bus info: scsi@0:0.0.0,1
logical name: /dev/sda1
logical name: /boot/efi
version: FAT32
serial: 8984-179e
size: 254MiB
capacity: 255MiB
capabilities: fat initialized
configuration: FATs=2 filesystem=fat label=EFI mount.fstype=vfat mount.options=rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro name=primary state=mounted
*-volume:1
description: EXT4 volume
vendor: Linux
physical id: 2
bus info: scsi@0:0.0.0,2
logical name: /dev/sda2
logical name: /
version: 1.0
serial: 4d158d00-b8a3-4e56-af3d-8c530883bdb0
size: 228GiB
capabilities: journaled extended_attributes large_files huge_files dir_nlink recover extents ext4 ext2 initialized
configuration: created=2015-12-16 14:33:12 filesystem=ext4 label=Ubuntu lastmountpoint=/ modified=2015-12-17 14:30:00 mount.fstype=ext4 mount.options=rw,noatime,errors=remount-ro,data=ordered mounted=2015-12-17 14:30:00 name=primary state=mounted
*-volume:2
description: Linux swap volume
vendor: Linux
physical id: 3
bus info: scsi@0:0.0.0,3
logical name: /dev/sda3
version: 1
serial: 14f9d306-c8c2-4160-837e-f0c420b70af2
size: 4095MiB
capacity: 4095MiB
capabilities: nofs swap initialized
configuration: filesystem=swap name=primary pagesize=4095
*-scsi:1
physical id: 3
logical name: scsi2
capabilities: emulated
*-disk
description: ATA Disk
product: Crucial_CT960M50
physical id: 0.0.0
bus info: scsi@2:0.0.0
logical name: /dev/sdb
version: MU03
serial: 1347095B9D21
size: 894GiB (960GB)
capabilities: partitioned partitioned:dos
configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096 signature=f01c06ab
*-volume
description: EXT4 volume
vendor: Linux
physical id: 1
bus info: scsi@2:0.0.0,1
logical name: /dev/sdb1
logical name: /home
version: 1.0
serial: a5d8e074-b8c2-4390-83fb-8e953e9bc982
size: 894GiB
capacity: 894GiB
capabilities: primary journaled extended_attributes large_files huge_files dir_nlink recover extents ext4 ext2 initialized
configuration: created=2015-12-17 13:51:14 filesystem=ext4 label=home lastmountpoint=/home modified=2015-12-17 14:30:00 mount.fstype=ext4 mount.options=rw,relatime,data=ordered mounted=2015-12-17 14:30:00 state=mounted
*-scsi:2
physical id: 4
logical name: scsi3
capabilities: emulated
*-disk
description: ATA Disk
product: FCCT960M500SSD1
physical id: 0.0.0
bus info: scsi@3:0.0.0
logical name: /dev/sdc
version: MU05
serial: 133209493B81
size: 894GiB (960GB)
capabilities: partitioned partitioned:dos
configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096 signature=18e9fe9d
*-volume:0
description: EXT4 volume
vendor: Linux
physical id: 1
bus info: scsi@3:0.0.0,1
logical name: /dev/sdc1
logical name: /media/agathezol/8b6b5330-b83a-451e-99cf-7aeb1159d0b8
version: 1.0
serial: 8b6b5330-b83a-451e-99cf-7aeb1159d0b8
size: 500MiB
capacity: 500MiB
capabilities: primary bootable journaled extended_attributes huge_files dir_nlink recover extents ext4 ext2 initialized
configuration: created=2015-03-05 11:00:54 filesystem=ext4 lastmountpoint=/media/agathezol/8b6b5330-b83a-451e-99cf-7aeb1159d0b8 modified=2015-12-17 15:29:25 mount.fstype=ext4 mount.options=rw,nosuid,nodev,relatime,stripe=4,data=ordered mounted=2015-12-17 15:29:25 state=mounted
*-volume:1
description: Linux swap volume
physical id: 2
bus info: scsi@3:0.0.0,2
logical name: /dev/sdc2
version: 1
serial: 992c346a-592d-42db-8439-ea7caec37f61
size: 1953MiB
capacity: 1953MiB
capabilities: primary nofs swap initialized
configuration: filesystem=swap pagesize=4096
*-volume:2
description: Extended partition
physical id: 3
bus info: scsi@3:0.0.0,3
logical name: /dev/sdc3
size: 891GiB
capacity: 891GiB
capabilities: primary extended partitioned partitioned:extended
*-logicalvolume
description: Linux filesystem partition
physical id: 5
logical name: /dev/sdc5
logical name: /mnt/sdc
capacity: 891GiB
configuration: mount.fstype=ext4 mount.options=rw,relatime,data=ordered state=mounted

Perpetual Paranoia

Tuesday, December 31st, 2013

We live in a world of perpetual paranoia. Governments trade information about their citizens, companies trade control of markets, and individuals are left with nothing to trade but their souls. What will it take to get us out of this cycle?

We’d look to our leaders to help fix the problem but our leaders helped create the problems we face. Like a parent buying a child that shiny toy to stop them from throwing a fit our leaders create laws to shut us up. These laws tend to cause problems because like any tool, once it is in the shed you use it however you can. So, when our leaders passed laws allowing our protective agencies to trample the rights of terrorists so we would be protected they didn’t bother defining the term very well, in fact in many cases they didn’t bother restricting the rules to terrorists at all. This allowed various government agencies the ability to trample anyone’s rights in the name of ‘security’. To prevent them having to deal with cumbersome oversight we eliminated that and now here we are, in perpetual paranoia.

I’m writing this article in chrome, on windows 7. In know full well that my computer is likely compromised by at least hackers and more likely by people working for the government. I’m using windows because I enjoy playing games, I prefer to use Microsoft office and Visio to any free alternative software, and because Apple pissed me off, not that they’d be any better than windows.

I could use linux, hell I have linux installed on my computer, but I don’t use it. A typical linux user is more secure, but not secure. Most have never heard of aide/tripwire, fail2ban, or chkrootkit, most who have heard of them use them on servers, but not on desktops. I can’t blame them, I’d do the same. We are slaves to convenience. After struggling through work, home life, parties, Christmas, birthdays, fourth of July and the TSA to get from place to place we lack the energy for harder things, even if they are more right or better in some way.

So, what will it take to break the cycle? Effort, plain and simple. We can’t “write off” the things we learned this year and start new next year. If such a thing were possible every diet pill maker and personal trainer would be out of business. It will take hard work, sacrifice, and a willingness to change not only details of our lives but the way we perceive the world around us as well.

Good luck Terra Populi, you will need it.

Auto Code

Thursday, April 12th, 2012

I got asked today for maybe the 50th time the following question about my job: “Well, can’t someone else at the office do that for you today?” The normal answer is “No, not really.” At this point one of two things happens. If it is someone who understands what I do they say “Oh” and move on. For most people though they stare at me like I just told them I’m the only janitor in the entire building who knows how to empty the garbage on the second floor. The bins there are made of plastic you know.

The problem it seems is in describing what an independent developer does. So I offer this analogy for how I see independent development.

The Auto

When a car company wants to build a car they get a number of teams together. You have people working on look, feel, performance, the motor, body, paint, and electronics. There are analysts who look at what the goals of this new car should be. These different groups have team meetings, inter-team meetings etc. They design the car, run simulations and commit it to schematics which are sent off to a plant for fabrication. The plant looks at them and decides what parts to make in house and what parts to have fabricated in various parts fabrication plants. As this is a large company they have factories that can make door panels or steering wheels. The parts makers ship the parts to the assembly plant who puts them together to make a car. The car (a prototype at this point) is then sent off to the testing teams who report back to the design groups who tweak the designs and the process starts over until you have a great product.

The Code

How does this in any way relate to what an independent developer does? An independent developer goes through all of these steps. The glaring difference is there tend not to be teams of people involved. The developer may be working on one piece of the greater puzzle, say the drive train of your vehicle or maybe a communications protocol library, in which case they have some input from others on what it is expected to do but they are doing it alone. The planning phase of the project happens in the developers head. There are no schematics drawn up (or maybe there are if the developer works that way, I don’t so for the sake of this there aren’t any), there are no meetings with other developers on how their project should be constructed.

With no schematics the developer does the assembly/production themselves. They have to look at what parts are available on the market, if they are cost effective and meet their needs, and if so how long those parts would take to work into their design. Not all the parts are on the market, in fact most of them are not. Those that are will fit, if the core design is modified some to make them fit. Those that aren’t the developer has to build themselves. The developer picks up his hammer and saw and starts building the parts, by hand. They are not normal parts, they are custom built, to the schematic in the developers head. Often the tools required to build the parts aren’t even available and the developer builds those too. Instead of fabricating all the parts and then putting it together like a car the developer builds the parts onto the product as he goes. This saves the final assembly step of the car since once all the parts are built or obtained the end product is done. It also means there are often no spare parts or breadcrumb trails to try and figure out what the developer was doing if they aren’t there to explain it.

Now the developer tests. Instead of testing with the testing team who is familiar with the product goals the developer tests himself, or worse with the customer directly. In the case where the developer is building one part of a big project he builds an test product to simulate how the large project will use his part so he can test his part. He does these tests on his own. Ideally he can test them with the consumer to get feedback but that has its own set of problems. Any tweaks that need to be made the developer makes until the product is ready for handoff to either the larger project or the consumer.

Conclusion

So, why is it so hard for someone else to step into the shoes of an independent developer? If you are on the car team, and you are in the “obtaining parts/building the test car” part someone else can look at the schematics and work with the engineers in the fabrication company, assuming they know how to do that sort of thing. If you are in the planning phase someone else on your team has knowledge about the goals and how the team is going to meet those goals.

How would this work in an independent code project? There are no schematics for some other developer to pick up on, no team meetings to draw on for information.  In order to do it they have to first disassemble what is already built, look at each part, figure out what it does in the grand scheme of things and sometimes how it was built in the first place. If the project is still in planning the situation is worse. Anyone trying to fill the developer shoes would have to have knowledge about what was already planned and discussed. They would have to be familiar with all the info the developer gathered through the planning process to this point. Worse if the original developer is coming back they would have to know them and their development process well enough to not say something they shouldn’t. It is cliche at this point how often a salesman will sell something impossible. This doesn’t just happen to salesmen. Anyone unfamiliar with a product can claim it does or will do something it doesn’t or can’t.

Don’t misunderstand me. Any other properly trained individual can step into an independent developer’s shoes. It has happened many times. The problem is the time and effort involved in someone else doing it. If the original developer isn’t coming back it is probably worth it. If they are coming back by the time someone else figured out what needs to be done the original developer is probably back and has finished the task and 5 others.

 

Real life and Christmas

Wednesday, December 14th, 2011

In the last few weeks I’ve had little time to devote to my side projects (like DartCalc, Character Sheet, Minecraft, Music and so on). Real life (read day job) has been consuming most of my creative energy. This is not a bad thing in any way. As many who know me have heard before I’m one of the lucky ones who works a job I love. It does mean that some things I wanted to get done by Christmas haven’t happened. DartCalc’s new version hasn’t made it. I haven’t finished a song in months. I haven’t gotten a rev1 of CloudBank out. I have learned a lot for my current day-job project, I’ve spent almost 80 hours on it in the last two weeks alone. That’s more steady work than I ever do, and it feels great.

In the middle of the real-life work I’ve been doing Gabe had a birthday (yay!). Christmas is almost here too. I am not ready for Christmas, then again I never am. I have lots of ideas of things I want to get for people, but I rarely get around to actually getting them. I either have the idea too late, or it requires some amount of time that I either don’t have or have devoted to something else. If it were really the thought that counts almost everyone I know would be ecstatic this time of year. Instead I’ll end up getting the normal collection of gifts I think are good enough, and maybe that one or two that really show I thought about it and made it happen.

Normally I would try to make excuses for this behavior. “I’ve been so busy I haven’t had time.” “I couldn’t afford it.” “I would have to have ordered it and I came up with it too late.” There are probably a hundred of these lame reasons why I don’t do the things I want to do every year. I’m sort of tired of making them and the only person who has ever seemed to care is me. So, instead of spending this holiday season feeling guilty for what I haven’t done yet again I will instead be happy for the things I have done.

Almost every time I go to the local grocery store I buy a bag for the food bank. I’ve given to various non-profits. I know what I am going to get my wife (she’s easy to buy for since she tells you what she wants). I know what I’m going to get for the other people on my list too, save one. So Mom, if you read this before Christmas, tell me what you want! I have holiday plans. I have a date with my wife on Saturday with a babysitter and everything. I’m not stressed out, even though I’m working harder this year that I normally do. I haven’t yet blew up at my children, or let the gloomy skys get me down. Of course, it does help that we’ve been hovering right around 32 degrees every day and have almost no snow. I don’t really need snow in the valley for Christmas anyway. This isn’t a big list, it isn’t an impressive list. It is a list of the things I am going to do this year. Oh ya, and I made a list of the things I’m going to do, instead of only dwelling on what I didn’t get done.

So with that I hope your holiday season is joyous, uneventful, and entertaining. As always, have fun.

~Agathezol

On vampires and mirrors

Thursday, September 29th, 2011

I like vampire movies. Good ones, bad ones, smelly ones, doesn’t matter. I know most that are made are crap. Again, it doesn’t matter. I just like them. I don’t mind if they are cliche to the point that they fear crosses and don’t have reflections or if they are modernized to humanize/dehumanize them. I do get annoyed though when a lot of effort is made to create vampire society, humanistic in nature, and then the writers/directors/whatever feel it necessary to leave completely ridiculous cliches in.

The movie “Daybreakers” offers one of the best examples of this. An entire society, complete with corporate corruption, conspiracy, etc. The premis of the movie could easily have been that mankind was infected with a virus that made everyone allergic to water and they therefore cannot eat most foods or go out in the rain. It isn’t, they are vampires. Fine, no worries there. As I said, I like vampire movies. Why though, after establishing the ‘realistic’ reason for vampires to exist, do they not have reflections? What is the point of that? The sun reacts with them, fine, I can buy that.  However, after all the effort put into the film on behalf of making it a potential alternate reality why do something as stupid as making it so they cast no reflection? I can see them. That means they reflect light. The virus is unlikely to have made all light reflected off them polarized and at the same time somehow mutated all mirrors to also be polarized, but at the opposite angle.

So yes, this is a stupid thing to get my tail in a knot over on a thursday afternoon, but there it is.

Sandwiches and Decency

Thursday, September 15th, 2011

Today I got a sandwich at Worden’s. I like their sandwiches, great bread, and generally they are well made. When I got to the counter with my Pepsi and a cookie and my sandwich slip i got rung up at $2.89. I said “That can’t be right”. The gentlemen behind the counter was shocked that I’d bother to point out the mistake. Why? I got the sandwich. I was planning to eat it after all, why wouldn’t I pay for it?

The answer I fear is pretty clear. I could have gotten it for free. After all, it isn’t my fault the guy at the sandwich counter didn’t mark my sandwich on the little slip. I, as a normal person, should have taken advantage of that. Instead I said, no, I have a sandwich, turkey on wheat with seeds and olives. His response, “thank you for being so honest” saddens me. It shouldn’t be “so honest” to simply tell the truth and not intentionally rip off the corner grocery. It should be the normal thing to do.

New Website

Wednesday, September 14th, 2011

The AGASupport website is now back on WordPress. Apple it seems wants to do away with the web hosting side of .Mac (soon to be the Cloud). With it I’m betting iWeb will be turned out to pasture. As I’ve been using iWeb for a few years to manage my site content I had to make some kind of migration off of it. It has been unwieldy to use for a while now and more than once I’ve had to restore the iWeb data after corrupting the multi-gig file it has become. So it is probably a good thing that it is going away.

So here it is, the new AGASupport.com. I hope all the broken links are fixed soon.