pyesetz: (arctic-fox)
InstantFox is an add-on for Firefox that makes its address bar act like Opera's.  Now I can enter the fake URL
      w Boris Johnson
to look him up at Wikipedia, or
      m Wilmot ON
to see Google's map, or
      wk 時刻
to see Wiktionary's definition for this Chinese word.

Doesn't that just brighten your day? 🔆
pyesetz: (woof)
Today, Rabbi Brian sent me a newsletter whose subject line was "Dealing with 💩 it.".  Obviously the subject is supposed to be a reference to excrement, but the U+1F4A9 PILE OF POO emoji was displayed as a box with hex digits inside, even though I had just upgraded my laptop to the latest Linux Mint.

So I installed the EmojiOne font, which includes colour drawings for the emoji.  It uses the new “SVGinOT” font-type which is supported only by firefox and thunderbird, which just happen to be the programs I use. In other programs (such as gnome-terminal), the emoji are monochrome.  In weird programs such as emacs, the emoji still appear as boxed hex digits.

There is also an EmojiOne picker app, which is for Ubuntu but says it mostly works with Cinnamon except for the long menus.  I haven't installed it.  Instead, I downloaded the Unicode 9 NamesList.txt file and then altered it so each line begins with an example of the character being named.  (This replaces my previous copy of the Unicode 3.2 names list that I downloaded back in 2002.)

Upgrade log

Jul. 1st, 2016 04:18 pm
pyesetz: (woof)

(Hi, [ profile] porsupah!  Thanks for stopping by again!  You are the only person who has commented on my journal this year.  In previous years, [ profile] xolo was often the only commenter, but he seems to have left LJ now.)

I decided in April that my Dell D620 laptop needed an OS upgrade.  The major issues were:
  • My 3-year-old fonts did not contain the latest emoji characters, which *everyone* has started to use all over the Internet.
  • Opera 12.16 was so old, it didn’t support the latest HTTPS standard.  Many websites refused to be visited by this old browser (“for your protection”).  Newer versions of Opera refused to install on my old OS.
  • Firefox 41.0.2 did not play well with the new Reditrᴀ, which was a forced upgrade (they didn’t tell me until after it was installed).  Most images displayed as blanks and memory usage was astronomical.

Now it’s time to say So long! to Linux Mint Debian Edition with Cinnamon 201303 (“Jessie”) and say Hello! to Linux Mint 17.3 with Cinnamon (“Rosa”).  I’ve been down this road before, so my hard drive is already partitioned into “/home” for files that should survive an OS upgrade, “/” for the OS, plus “/windows” for my dual-boot Windows 7.

April 28th: Finally get around to it: repartition /home to be 13 GB smaller, download Linux Mint 17, write it to a USB stick, boot it up, then let it install itself onto the new partition.  Then reboot back to the familiar old system.

June 5th: Boot up the new “Rosa” system for the first time, after first saving copies of all the dot-files in my home directory (since Rosa will upgrade them and then Jessie won’t understand them anymore).  Install some of my favourite Linux packages (emacs, wget, etc) and remove a few I don’t need (hplip, cups, bluez, etc).  Then back to the old “Jessie” system, which still has those three problems forcing me to upgrade.

June 23rd: Time to get serious.  The laptop’s FN keys for controlling volume and backlight do not work when logged in to Rosa/Cinnamon as ‘root’ (which I always do but it’s been deprecated for years).  I futz around with it for a bit, but eventually decide to “act normal” and log in as an unprivileged user (this means that I can’t use my main Emacs session to edit system files).  Firefox 47.0 works better with Reditr, although memory leakage is still excessive.  Thunderbird cannot see my mail archives and Opera has lost my RSS feeds, but I decide that Rosa is good enough to use for now.

June 26th: Opera 38.0 is not very good.  It has a wacky multi-level menu system that can no longer be turned off, making bookmarks much less accessible than they used to be.  Also it seems that all support for RSS feeds has been removed.  Looks like Opera will need to be demoted to my “backup browser”, even though Firefox does not have good support for search accelerators (with Opera I could type in the address “w Boris_Johnson” and instantly get a Wikipedia bio on this famous person, or type “e ProScan” to get eBay listings for matching products).
      I can’t figure out how to pull the list of RSS feeds from Opera’s data files, so I boot up Jessie (after switching my home directory to the saved dot-files) and start Opera to export the feeds as an OPML file.  Back in Rosa (switching dot-files again), I start manually adding feeds from the OPML file to Thunderbird, then discover a poorly-documented feature Edit → Account Settings → Feeds → Manage Subscriptions → Import, which just happens to accept an OPML list of feeds to add.  Those manually-added feeds are now duplicates, so I delete them.
      Firefox has a tool called “Subscribe” (it’s hidden by default).  It strongly promotes the use of Live Bookmarks for RSS feeds, but once you tell it to use /usr/bin/thunderbird instead then it Just Works™.  Clicking on a link in Thunderbird opens the web page in Firefox, so these programs seem adequately integrated for my needs.

June 27th: Merge the old email archives into Thunderbird 38.8.0.  This is a royal pain because disk space is now very tight on /home and so I can move only a few emails at a time.  I delete the saved dot-files, which frees up a lot of space, but means I can no longer go back to Jessie.  While I’m at it, I clean up the email archives for my seven years at Company 𝔾.  It feels good to put that thing to bed, although it would be better if I had managed to find a replacement job by now.

June 28th: Java no longer works in the browser.  This has been deprecated for months, but I have IcedTea installed and it clearly does start, but then a blank screen appears instead of the Java app.  Same behaviour in both Firefox and Opera.  This is a problem.  I use to put trailing-stop protection on my stock trades, but it’s written in Java and is now obsolete.  I can still use which is mostly plain HTML, but that is for “investors” rather than “traders” and doesn’t offer trailing-stop orders.  I could use StreetSmart Edge®, which is a .net app, but then I would have to reboot into Windows any time I want to do something with the stock market.
      But wait!  One of the advanced new features of Linux Mint 17 is supposed to be improved support for VirtualBox.  Maybe I could run StreetSmart Edge inside a paravirtualized Windows system inside a GUI window under Linux, just like all the cool kids do nowadays!  It’s never worked for me before, but I try installing VirtualBox.  It needs a Windows installation disk, so I download the Windows 8.1 evaluation as an .iso file, then write it to a USB stick.  VirtualBox cannot reuse my /windows partition and needs several GB to create a simulated hard drive for windows, so I delete the .iso file to make room.  Then it turns out that VirtualBox cannot use the USB stick and wants to simulate the installation disk using the .iso file, so I download it again.  But Windows 8.1 refuses to boot inside VirtualBox, because my CPU is an old Centrino Duo which doesn’t have the VT-x instructions that Windows 8.1 requires when running in paravirtualized mode.
      So I download the Windows 7 Starter .iso from this slightly-shady site, figuring that I’ll reuse the product key from my dual-boot Windows.  But my officially-licenced product key is not accepted because it’s for Windows 7 Home Premium rather than Windows 7 Starter.  So I get a key from this rather-shady site, which is accepted.  But Windows 7 won’t install itself because it insists that the simulated hard drive needs at least 6 GB of space.  (I remember when operating systems would fit on a single floppy disk!  I used to use a computer whose entire hard-drive capacity was only 0.005 GB!  So get off my lawn!)  I decide to free up some space by deleting old Company 𝔾 stuff.  The most useless stuff is non-final versions of slideshows for conference sessions, which surely I will never look at again (nor will anyone else).  I try using an Emacs keyboard macro to select the non-final versions from a list of all conference-data files, but the list is long and the macro runs slowly.  So I write a Lisp function to prune the list, which runs in an instant.  It occurs to me that this is the first “computer program” I have written in many months.

June 29th: Windows 7 installs successfully inside the simulated computer, but it cannot access the Internet.  Google finds many people with similar problems, but most of their “solutions” don’t work.  It turns out that the default networking settings for VirtualBox are not compatible with Windows 7, even though there’s a drop-down menu with “Windows 7 (32-bit)” selected so VirtualBox will know what kind of OS it’s supposed to be supporting.  The correct answer is to tell VirtualBox to use the ”Bridged Adapter” methodology and simulate the ”Intel PRO/1000 MT Desktop (82540EM)” type of networking device, which is so old that even Windows 7 knows how to deal with it.
      StreetSmart Edge installs successfully and runs well.  The “Live Chart” function correctly updates once per second to show the latest prices on Wall St.  But the rest of my system lags a lot while VirtualBox is running.  I improve this some by telling VirtualBox to simulate a computer with only 0.75 GB of RAM.  (I spent most of my career writing software for computers with only 0.00003 GB of RAM, although those programs couldn’t do any fancy graphics.)  I only have enough hard-drive space to store one “snapshot”, so I set it to resume to the moment when StreetSmart Edge asks for my username and password.  I’m getting warnings that there’s *only* 1 GB of space available, so I invoke the wizard command “tune2fs -m 2” (kids, don’t try this at home), which reduces the /home partition’s safety margin from 5% to 2% and frees up another 2 GB of space.

June 30th: Begin writing up this document, which requires examining the log-files from the old Jessie partition.  Some of the ”facts” documented above might be inaccurate because I didn’t keep careful records as I went along; sorry.

July 1st: Time to get rid of the old Jessie partition to free up 12 GB.  To move partitions around on a hard drive you must boot from someplace else, but my usual USB stick was overwritten with Windows 8.1, so I download Linux Mint 17.3 again (meanwhile, Linux Mint has released version 18.0).  Write it to the stick and boot it up.  Remember that I haven’t set up Rosa to act as its own web-server yet, so save a copy of Jessie’s /etc to Rosa in case I need it.  Then use gparted to delete Jessie, make /windows be 1 GB bigger, and put the rest of the released space into /home.  This requires moving 21 GB from one spot on the hard drive to another, which takes half an hour.  Despite all the warnings that this could make my hard drive unbootable, Rosa boots up just fine.  Windows also boots correctly, after first spending a lot of time on chkdsk which finds no problems.
      So now all that’s left is to remove Jessie from the boot menu, since that menu item no longer points anywhere.  I use the wizard command “grub-mkconfig” for that.  All done!  Happy Canada Day!

pyesetz: (woof)
[ profile] porsupah mentioned this writing-analysis test from IBM's Watson.  I fed it my Mass. trip report '14 and it said:
You are inner-directed.

You are calm-seeking: you prefer activities that are quiet, calm, and safe. You are unconcerned with art: you are less concerned with artistic or creative activities than most people who participated in our surveys. And you are deliberate: you carefully think through decisions before making them.

Your choices are driven by a desire for discovery.

You are relatively unconcerned with both achieving success and taking pleasure in life. You make decisions with little regard for how they show off your talents. And you prefer activities with a purpose greater than just personal enjoyment.
pyesetz: (woof)
(Yet again, this distance took just about exactly *twice* as long to cover as Google Maps had estimated.)

Herkimer Motel (Herkimer NY).  A receipt for $124.49 for one night’s stay is slipped under our door in the wee hours of the morning, but the credit-card charge slip says it was run through at 9:54pm last night.  This will be our last stay at the Herkimer, which will be changing its name to “Red Roof Inn” as of November 1st.  The owner assures all guests that nothing will change because he is merely “affiliating” with Red Roof, not selling out to them.  We decide to give this hotel another chance on our next trip, whenever that will be.  We always stay here because the rooms are huge and “60% of the total trip” is just about right for one day’s travel.

Advance Auto Parts (Herkimer NY, 11:03am).  I look in my car’s owner’s manual and determine that it needs a type 9007 headlight bulb.  Replacement requires removal of three screws, a retaining ring, and the electrical connector.  Installation requires not getting any oily substance (such as human sweat) onto the glass bulb.  The store offers multiple models of 9007 headlights at different prices, but I have no idea which one to get so I pay $11.90 for the mid-range.  My tools are all at home, so the store lets me borrow a screwdriver — but the screws are all torqued too tight, so they loan me a hex ratchet, which is effective.  Kid #2 helps with the repair.
      While Kid #2 and I are at it, I am reminded of the phrase “working together on the car”, which was used by [ profile] ozarque (Dr. Suzette Haden Elgin, b. 1936, fl. 1965‒2011, frontotemporal dementia) to invoke a scene where boys are working together towards an intellectual goal, rather than belittling each other or fist-fighting.  You see, the car actually matters, so the boys actually think about how to make it work.  But cars nowadays are too difficult for most boys.  In my life it has usually been “working together on the computer program” but few kids today write their own software.  So I don’t know what the modern version of this scene would be.  Perhaps “working together on their MMORPG character stats”?
      So anyway, I take the new bulb out of its packaging and place it next to the old one to demonstrate that it is in fact an identical replacement.  Then I put it back in the package and place it on the engine while attempting to disconnect the old bulb, pontificating all the while about how getting any oil on the new bulb will drastically shorten its life.  But while wrestling with the old bulb and its connector, I manage to jostle the wire-harness.  This causes the new bulb to fall into the depths of the engine, which of course is covered everywhere with oily grime.  Oops!  Kid #2 is a polite fellow and does not laugh.  But the day is saved because the bulb did not fall out of its opened package and remains untouched by oils.  I make some comment about how important it is to keep the bulb in its package until use, then insert the bulb into the lens-assembly while thinking of the kids’ game Operation.  Touch nothing on the way in!
      Success!  The new headlight works great!

New York Thruway.  Pay toll; no receipt.

Massachusetts Turnpike.  Massive traffic jam!  As we near an exit, there is a sign announcing “bridge work ahead; seek alternate route”.  We are unable to determine whether the jam will end soon when we reach a bridge or whether it will go on for many more miles, so we take the exit and pay the toll.  We do not have a roadmap of Massachusetts in the glove compartment.  The only relevant map is for “Eastern USA”.  It suggests that we can take some minor-league state and national highways to get to MA route 9, which Wifey and I remember from our student days at UMass.  The detour is only an inch on the map, but each map-inch represents 1,385,000 inches in real life.  Two hours later, we finally locate Route 9.  It would almost certainly have been faster to just crawl along with the traffic jam.

McDonald’s (Belchertown MA, 3:48pm).  After finding Route 9, we stop at a CVS to buy a map — but they don’t have any.  We try a gas station, but they don’t sell maps anymore because everyone has a smartphone these days.  This causes Kid #1 to gripe yet again about how far behind the times our family is, with one crappy “feature phone” shared by the entire household.  But she could just buy her own smartphone if she *really* wanted one.  Anyway, we stop at McDonald’s to access Google Maps on our laptops.  $10.67 for snacks.  I get a chocolate shake, which gives me a brain freeze and then later I have flatus.  Apparently I’m starting to get lactose-intolerant in my old age.

MA route 9.  In Eastern Mass., this highway is a fairly straight East-West route, but in Central Mass. it is a winding road.  I vaguely remember that I avoided this route when driving to my parents’ house from UMass because it took four hours (vs. three hours for MA route 2 further north, or only 1½ hours for the Mass. Pike on a good day).  Anyway, we eventually get to Interstate 495 and return to our pre-printed directions from Google.

99 Restaurant & Pub (Franklin MA, 8:11pm).  The girls get chicken broccoli penne (but hold the broccoli for Kid #1, add house chardonnay for Mommy), while the boys get the 9oz top sirloin (medium rare for Kid #2, medium for Daddy).  This restaurant chain is named for the address of its original location at 99 State St. in Boston.  Only $68.72 with taxes and tip!

Stop & Shop (Franklin MA, 8:20pm).  $47.25 for 15.651 gallons of gasoline at $3.01⁹/gal.  This was the only gas-pump during the entire trip that didn’t refuse my business due to lack of a zipcode!


Dec. 13th, 2013 08:44 pm
pyesetz: (woof)
I didn't do much today.  The wind-chill was nasty all day, but most of the things I was supposed to have done were on the telephone.  One item: I was supposed to call one of the local "Chamber of Commerce" type places to ask if they know of any other Job Fairs like the one they held a month ago.  (They had 55 vendors, I handed out 5 résumés, went home thinking there were actually two companies I'd like to work at, but later found out that one doesn't need a software guy right now and the other has run into funding issues and can't hire anyone.)

I was also thinking of asking them where I could find a part-time semi-retired salesman for a "Linux system administration outsourcing" company, because it seems that I could actually form such a venture but none of us wants to be the guy who goes out and hawks the product to potential customers.  One of the nice things about sysadmin is that you really can create virtual full-time people by packaging up a bunch of part-timers (as long as work-documentation standards are strictly adhered to).  Two half-time contractors get paid less than one full-timer, so there's "margin" and "value-add" and all that lovely business stuff.  But I didn't call.

Today, PZ Myers wrote about the first time he asked out his future wife, which reminded me of my difficulties in picking up the phone to ask those two companies from the Job Fair why they hadn't called me back.  (You never know — I once got a job several months after a different job I had interviewed for had funding difficulties, because the interviewer remembered me.  And *that* job led to Company ℱ where I worked for 17 years.)  Professor Myers writes, "She was the brave one when she said yes."  Yeah, if any salesman were to agree to take on this gig, he would have to be a brave one.  Right now I have only one customer (that I would like to replace, or at least augment) and the method I used to acquire that one probably wouldn't work again.  I have no idea how to sell such a service, or how to determine what price the customers would pay for it, or how to find people who should buy it.  If you know that you're not good with sysadmin, then you don't think about sysadmin approaches to solving your problems, so you don't "feel the lack" of a sysadmin on your staff and don't realize that you could benefit from hiring an outsourcing firm.

I had a much easier time asking out my future wife than Dr. Myers did.  I just posted a "mating call" to a University BBS.  She was the only female respondent, so — years later — I married her.  Now if only I had some income to put food on the table for our children...
pyesetz: (woof)

(warning: salty language about website design)
pyesetz: (woof)
It was about Emacs!  And stock-trading!  And the people I was speaking to didn't like any of it!  And I sort of knew that would happen before I even started!  I guess I'm just a glutton for punishment, because I keep trying to tell people things I know they don't want to hear.

Anyway, here is a transcript for my talk, which you should definitely click on if your preferred reading material contains text such as "Um, oh, okay, so there we go.  All right, so, perhaps if".  Clearly, I am not one of the world's best public speakers.

The timestamps in the transcript do not correspond to the original talk, but to this version (which you probably shouldn't bother clicking on).  I used audacity to reduce the tempo by 40%, which — due to the magic of mathematics — had the effect of increasing the size of the recording by 70%.

In other news, my Panasonic CF-Y5 laptop's LCD died again, so I got a Dell D620 to replace it.  So I had to give this talk using a computer that I had just bought, with an operating system (Mint 15!) that I barely knew how to use.  Considering that, things actually went reasonably well.

I had hoped that the guy from OpenText would be there again, but no such luck.  So, after my talk, I gave my résumé to the Company ℙ guy, but I guess there's no reason to expect any employment interest from him any time soon.
pyesetz: (felix)
Yesterday I did something a little different: I attended a meet-up for software developers.  It was sort of like a furry meet-up in that most of the people present were of the feline persuasion and very few of them said anything.  Basically, a few people played "exhibitionist" and showed off their naughty bits software code to the people playing "voyeur".

One guy showed off his Haskell program for XMPP messaging on multiple platforms, to get around Google's new (evil?) restrictions on IM chats.  I've never used Haskell, but it does seem to do a reasonable job on such multithreaded tasks.

Another guy showed off his shell script for grabbing videos from YouTube and queueing them for background downloading to his laptop.  He said that his mother once complained about YouTube's new advertisements and he hadn't even noticed them because he never actually views videos at their website!  His T-shirt was too short and he displayed some bellyfur whenever he gesticulated (which was often).

A third guy showed off a chat robot he uses to keep his programming team on the same page.  It contained various silly features and inside jokes.  I asked him why his company was hosting these meetings and providing free pizza and pop, but he couldn't really explain that and just mumbled something about "exposure".

After the main meeting, I whipped out my laptop and showed off some code from Company 𝔾's website.  I mentioned that I had processed the data using Lex "because I'm just that old", but the shell-script guy said he also uses Lex, even though he's probably 15 years younger than I am.  I mentioned that I was looking for a new job, because seven years with Company 𝔾 is just too much (the average programmer changes jobs every two years).  One fellow who works at OpenText said that his company was hiring.  I suppose I could do that job, but it's full time and I was hoping for a semi-retired position.  And there's some Windoze programming required.  And they've outsourced their HR department; I was hoping to avoid the cattle calls by schmoozing at a programmer's meeting instead of spamming my résumé all over the Internet.

Dunno yet whether I'll go to next month's meeting.  I certainly have plenty of code I could show off, but... what exactly is the point of these meetings???
pyesetz: (flag-over-sunrise)

Isn't it cute?  The data-set is a bit of a mongrel, though: the yellow and blue show how many seconds my program took to run (seven times a day, five days this week), while the red and green show how many mistakes the program made (corrected once each day).

As you can see, VPSville is much better than HostMDS!  I recommend them for all your Canadian web-hosting needs.  One caveat, though: you do need to be comfortable with the Linux command-line.  VPSville doesn't put a lot of effort into fancy graphical interfaces, they won't act as your registrar, their DNS support is minimal, their replies to customer emails are slow — all they offer is screaming-fast compute and network performance and lots of it, for no more than the others charge for a crappier product.

When I look at this chart, I see green logs in front of red tents, in front of a frozen tidal wave, in front of yellow mountains.  What do you see?

pyesetz: (Default)
I made a shiny thing!  Click to embiggen.  It is supposed to show off how effective my new stock-trading strategy is, but we'll have to see whether that really works out.

I had to piece this together from images in my Firefox cache due to bugs at the website, which silently throws away colour-spots on the left of the picture if you add "too many" spots on the right — surely nobody would want to add over 100 colour-spots to their chart, right???  And there are many other bugs at that website, that often cause all the colour-spots on a chart to be silently thrown away.  Remind me again why I am paying them a monthly fee to use this crappy software?

* * * * *

Earlier this month, after four years of putting it off, I finally got my attic insulated!  And it cost NOTHING, as long as I agreed to apply urethane foam-sealant and weather-stripping elsewhere in the house, and pay $300 to have the house inspected twice.  In return for that, I will get a government grant for the attic insulation that is LARGER than its out-of-pocket cost, plus I'll get a prize for having done a good job sealing up my house.  The prize only *partially* pays for the inspections and sealant and weather-strips I had to buy (and would have covered those completely if I had sealed up the house just 3% better and gotten into the next prize category).  Net cost: $200.  Supposedly these improvements will pay for themselves with one winter's savings in heating bills, but it's hard to tell this year because it's been a very warm winter so far.

Dear diary: I never did get around to telling you that, after three years of putting it off, I finally got a sump pump installed back in Fall 2010!  It works great!  The basement is now dry-er but of course it's still damp.  During last spring's rains the pump got quite a work-out, but the water never rose above floor-level.

Last summer, I got my air-conditioner replaced.  It was quite old and its evaporator coil was full of pin-holes and so could no longer hold refrigerant — and the refrigerant that it used has since been banned for contributions to Global Warming.    The replacement unit works very well!  And hopefully it will work even better next summer, when the new attic insulation will help keep the heat out of the house so the A/C doesn't have to work so hard.  Last month, the people who installed it for me called to say that the government grant they had promised me hadn't been issued yet, and would I go to Ontario's website and click some buttons and scan+upload a copy of the receipt?  So I did that; hopefully there'll be a cheque in the mail sometime soon.
pyesetz: (stock)

It slices!  It dices!  It juliennes prices!  And don’t you want to know how it works?  No, of course not.  (See obsessive details.)

I had a drawdown a few weeks back, for which the standard response is “stop trading and start analyzing”.  So I wrote an analyzer program, because — unlike stock-trading — that’s something I actually know how to do.  My program looks at weekly historical data for a stock and uses rules to calculate what the buy and sell prices would have been; from those it computes, for each week, how long the stock would have been held if bought then and what the profit would have been.  That was the easy part.

Then I added calculations for various technical indicators such as MACD.  Doing this required that I learn how those indicators really work.  MACD is especially difficult because it is the difference between two exponential moving averages, and EMAs are very sensitive to round-off error.  I don’t know how people managed to calculate these things back in the olden days of pencil and paper: if you make an arithmetic mistake in your EMA, it will continue to screw up your results for more than a year afterward.

To avoid having to write a graphing module for my program, I tried to make my indicators produce the same values as the indicators at so I can use their free charts to display my results.  This was mostly successul except that I think their values for Parabolic SAR are bogus and I refuse to match them; whenever a stock has a wide-ranging week following by several narrow-range weeks, from then until the next stop-out the pSAR values shown on their charts are just way too low in my opinion.  But I got everything else to match, down to at least one decimal place and usually two.

Now the creative part: I assigned limit values for each indicator.  If the indicator was on the wrong side of its limit, that meant the stock should not be bought.  For each week, if none of the indicators said “do not buy”, then my program would pretend to buy the stock and see how it would have done.  Then I used a technique much like simulated annealing to adjust the limit values for maximum gain.  Result: only 1% of weeks were selected for purchase and those weeks yielded a 6% gain on average.  Then I doubled the number of stocks being analyzed (from 50 to 100).  Result: average purchase yielded a loss!  So I tweaked the limit values some more and got the average gain up to 4% per purchase.

additional boring verbiage )

I slapped a GPL on my program, but I don’t plan to publish it yet until there are some realized gains to show.  It is written in Emacs Lisp, which is the best language I know for writing programs where you don’t know where you’re going until you get there.  It is a little slow: 0.03 seconds for a weekly scan of three years for a stock.  But the speed is fine if I am just testing individual stocks that has already selected for me.
pyesetz: (stock)
Up 0.3%, vs 1.1% for SPY.  More details here.  If you really need to see this in your ƒ-list, someone who still has a paid LJ can add it as a syndication feed.  As of now, my stock blog has zero followers and no comments.

Blogger's Compose editor hates <p> and always converts them to <br/>, but this throws away the whitespace between paragraphs.  I've turned off the "Compose" function to make sure this doesn't happen by accident.  Without "Compose", previewing is very easy: just press Ctrl+Shift+P to see the preview, press it again to return to editing.  But be careful!  Ctrl+P without Shift means "publish"!  The preview always treats blank lines in the HTML text as <br/> even though I turned that off in main options; published posts display properly.  Looks like I'll be continuing to write my blog as HTML documents on my laptop and upload them only when finished.

Google's idea of "friends only" is that the entire blog is restricted to a list of named individuals who must be signed in to Google to see anything.  There is no concept of "locking individual posts".  But it's easy to "unpublish" an entry: just edit it and click on "Save as draft" to remove from the blog's front page.

Changing the publication date for a post doesn't seem to work.  The new date shows in the editor, but the main page shows the original date!

The "Export" function downloads the entire blog as one big lump of XML, without even the decency of linebreaks between posts.  Unlike LiveJournal, there is no way to download just the changes since last backup.  On the plus side, comments are backed up with their entries, rather than through a separate and poorly-documented process.

* * * * *

I finally upgraded to Opera 11.  Ick!  Everything that didn't work in 10.63 is still broken, plus new stuff.  I've basically stopped using it except for reading feeds. Flash is not working. Java is still not working. Feeds now insist on displaying the "mail" sidebar.

Opera formats my stock post wrong, with extraneous linebreaks in the table. Also extraneous breaks in the Company 𝔾 site header!  In 10.63 this problem affected only Bugzilla's site header.

Opera displays my stock blog's "Neuton" font wrongly (always bold, so the explicitly-bold stuff doesn't look any different).

Opera no longer displays "favourite" icons for websites.  Instead it shows a security icon that seems redundant with the padlock.

What is Opera ASA's problem?  They seem to have lost their touch.  I'm back to Firefox.
pyesetz: (Default)

pyesetz: (Default)
The next “Company 𝔾” conference is coming up very soon!  Three customer complaints came in over the last two days, saying that the website wouldn't let them have their sets of slides for sessions-not-attending, even though it had already given them the slides for the sessions they did plan to attend.

The problem is here:if ($x == "all") {
    …some code…
So, does some code get executed or not?
‣ Yes if $x is the string "all";
‣ No if $x is the empty string "";
‣ No if $x is Boolean FALSE (which prints as an empty string);
‣ No if $x is the number 1 or the string "1";
Yes if $x is Boolean TRUE (which prints as "1").

I can sort of see why the PHP folks might have thought that it should work that way, but that's not what I meant!  Fix:if ($x === "all") {
    …some code…
The third equals sign means exactly equal rather than close enough.

Of the 536 customers for this conference, only 52 have tried so far to get their non-attending slides.  Because of this bug, the software told all of them that their downloads were “unauthorized”.  Bad software, bad!  Fourteen customers got around the problem by using the download-in-parts function, which is just supposed to be for large books downloaded via slow, unreliable modems.  As for the other people?  It seems they meekly accepted the computer's claim that they were not entitled to their books (which were supposed to be included in their conference purchase price).  “Mr. Bear” sent them emails apologizing for the computer's impertinence and asking them to please try again to get their books for the conference.
pyesetz: (sozont)
How do you start to write a book?  Hint: the wrong answer is "reading an article by a blogger who at this very moment is procrastinating finishing his own book by writing about how you should start yours."

Rands in Repose
pyesetz: (woof)
Yup, I'm a businessdog now!  I just finished paying my employees workers one-and-only subcontractor.  [ profile] shiver_raccoon should get the money by tomorrow.

When I told one of the homeschooling moms that my payroll consists of going to my bank's website and pressing some buttons, she asked: "Is that legal?"  I've gotten that before, when I tell people that my job consists of sitting in my basement and pressing buttons on my computer, then money magically shows up in my chequing account.  Because of the paranoia that the mass media churns up about "hackers" in order to sell their advertising, a lot of people assume that any kind of electronic transaction that they are not personally familiar with must be a criminal activity.

No, the money magically appears because "Mr. Bear" tells his bank to take the money out of his pocket and put it into mine.  The money being sent to Shiver was withdrawn from my account.  There's a lovely audit trail and everything!
pyesetz: (fire-hunter)
The yum update command is supposed to fix problems, not cause them.  It installs only carefully-vetted changes that merely improve security and do not change the function of any program.

Yesterday I ran yum update on company 𝔾's servers.  It found 14 updates, including one called "httpd.i386 0:2.2.3-31.el5.centos.4".

Today I got an email:
From: anonymous@Company 𝔾.com
Subject: Output from your job 97
To: apache@Company 𝔾.com

This account is currently not available.
Well, isn't that special?  I like to use the adverb "currently" a lot, but that message doesn't appear in any of my code.  A Google search says it comes from /sbin/nologin.  Apparently the update for httpd had silently "fixed" the "problem" that my system allows Apache to run batch jobs, because surely only an Evil Hacker would ever want to allow such a thing so it should just be fixed without even mentioning it.  So I edited /etc/passwd to reënable (hi, Logan!) the batch jobs, but obviously this problem will come back with the next update and next time I might not be so lucky that the email shows up soon after the update so I can connect them in my head.

There's remarkably little on the web about this.  Allowing Apache to run batch jobs is so mind-bogglingly insecure that no pundit tries to defend the practice.  For example, this page tells people to "temporarily" enable Apache logins, but is preceded by the text "NOTE !!! only change the following for testing purposes so that you can su to apache from root and test xmms !!!!" because of course there could never be any legitimate reason to do such a thing non-temporarily.  Earlier on that page, another commenter recommends using sudo, but with the proviso "Major security risk - do it only if you really need to run some commands as different users (nologin users) and if you are really lazy :)".  Apparently his preferred solution is a cronjob that runs constantly, looking for work to do.  Since when is polling to be preferred over an interrupt-driven approach?

I guess I'll write a setuid program to run the batch job as some random user.  It doesn't matter who; the batch job is already using a setuid program to read a logfile that's restricted to root, and the results are written to a MySQL table.  It'll be just another useless layer of indirection to placate some paranoid person someplace, with minimal actual increase in security.  If nobody else in the whole world allows Apache to run batch jobs, then nobody will aim a virus at that attack-vector and I'm completely safe!!!  And why is it so much more horrible to let Apache run batch jobs than to let it run programs like "batch" in the first place?
pyesetz: (felix)

The subject above is a surprisingly-popular answer for the poll at the bottom of this diary over at DailyKos.  I had originally sent it to TorFur, but the initial response was rather poor (I had been warned that job postings to furry lists usually don't get much of a response), so I reposted it to DailyKos.

In case you're wondering (and who wouldn't?), the [CENSORED] items are
  • Dogbiscuit crumbs and Nutella
  • Wear a diaper and not bathe
  • Cute foxboi
As of today, I'm still talking to one of the TorFur respondents and one of the dK respondents, but so far no one has actually signed up for the job.  So my unblemished record of "always a programmer, never a manager" continues!  I expect that becoming a manager will cause my headfur to go grey overnight, because management is one of those "life passage" things that causes your body to think that you need to start looking older and more distinguished.
pyesetz: (Default)
Google says I have 61 friends, which makes sense since LJ says I have 62 including myself.  But LJ's list includes five former journals that no longer exist, so really it doesn't add up.  Google's list includes Brad Fitzpatrick twice (once at LJ, once at Facebook even though I'm not his friend there).  It lists "Ka Crow" who no longer exists (and [ profile] just_the_ash is not my friend anymore).  It includes Corin in NH who unfortunately had to prune his friends list (including me) many months back.

For "Secondary Connections" Google lists my friends-of-friends.  Apparently I have only one: [ profile] eliki who is a friend of [ profile] serge12261 who no longer posts.

It lists as a primary contact, even though I have never heard of them.  It says they are connected to me via [ profile] kraant even though they are not mentioned in his journal.  Shouldn't this be a secondary connection?

Overall summary: Not very impressive, Google.  But keep trying!  And if this is the best you can do, why should anyone be afraid of the big bad Total Information Awareness wolf?

Hat tip: Cog Dog's blog.


pyesetz: (Default)

August 2017

13141516 171819


RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 21st, 2017 06:58 am
Powered by Dreamwidth Studios