mindstalk: (food)
We have an improved website and introductory video of sorts. Marketing finally begins!
mindstalk: (Miles)
So, about my new job! (This will be a bit like a paid ad, insofar as
I'm talking about stuff I'm paid to do.)

Ever worried about someone stealing your pictures? Have you ever worried that all CCTV video surveillance streams could be easily edited? (Are you worried about it now that I've brought up the issue?) Have you ever noted that email has a Date field, which can be edited at any time to be anything, as can the whole email? That leaks of digital documents could easily be altered, or complete forgeries?

There's a fix for that! More than one, actually. The manual way is to make a cryptographic digest of your file and publish it somewhere not editable or revocable -- newspaper ads, bank transactions, something like that. No one knows how to readily forge a file to produce a digest, so if you later present a file that produces that digest, known to have existed at some earlier date, that pretty much proves the file existed then, without subsequent alteration.

But that's a pain. Kinnami's AmiStamp product aims to make it much more easy and scalable. Our client can scan your specified directories or files, send us the digests, and we tie those together, publishing a master stamp periodically. You can get a certificate from us, which is a list of digests, and later prove that your file + those digests = the master stamp. Again, digesting is one-way, so if our master stamp existed on 2017 June 11, and your file can be part of re-creating that stamp, then your file almost certainly existed, as is, on 2017 June 11. We tie it to your credentials too, further establishing that you possessed the file.

We're not a legal notary public service; while we link stamps to a user's alleged credentials, we don't certify that the user is legally that person. We certify that account id #4267 with alleged credential "John Doe" had a file, but not whether account id #4267 actually is "John Doe".

Signing up is free for anyone, and you get 500 free stamps with that. Paid Personal is $10/year, and adds another 10,000 stamps/year. Plus some special offer for students. If you just need to stamp a few files, or tar/zip lots of files and stamp the tarball, 500 should be plenty; our hope is that stamping will be so cheap and convenient that you just let our client automatically scan and stamp large swathes of your home directory, thus the large numbers.

Applications: stamping your photos, your blog posts, your research files, emails, notes you're taking on your abusive boss, notes you're taking on your feckless employee... anything where you might want to prove "I had this, as is, then."

There's a more detailed User Guide on the site, but at the moment you have to sign up to read it. We should get that changed soon, but I'm not the webmistress.

Edit: no Linux client yet, though. Could release a CLI one easily enough, but GUI takes more work.
mindstalk: (Default)
Speaking of aggravating values of fun... I foresaw a day of boring editing in my future? Well, I managed to make that half a day. I'd looked for programmatic solutions but they all seemed half-assed in bad ways, especially in breaking the logging information (filename, function name) we want. So I went through by hand... and a good mastery of vim commands and maps. It's funny, I haven't had to make a new vim map in forever, but the skills are there.

Samples: (Edit: all the [] should be angle brackets; I forgot how Dreamwidth swallows them.)

map CP :s/,/+/g #turns commma to plus, down a line
map KE cwkinnlog.error([Esc]A)[ESC]CP
#changes word under cursor to 'kinnlog.error(', appends ')' to line, invokes CP
map KX cwkinnlog.exception([Esc]A)[ESC]CP
map fp /print^M # fast search for 'print', since CP changes the current search to ','
map St istr(^[ #inserts 'str(' and goes back to command more.
map stt a)^[ #inserts ')' and goes back to command more
map kld cf(kinnlog.debug(^[ #changes everything from cursor to a '('

I got to show off more simply last week, too; I was setting up the product for Co-worker, and had to edit the IP address in a bunch of files.
$ vi *.json
/[IP 1]
C[IP2]",
n #search next
. #ditto
:wn #write, move to next file -- which preserves all the state, so I can keep going 'n' and '.'

She was impressed by my speed. (If you're wondering why not regexes, there were only 1 or 2 addresses per file, this seemed as fast or faster as recalling a ':%s/...')

*******

All that said and done... Python makes it easy to write code. Python has an awesomely nice standard library, including a logger module with many handlers like RotatingFileHandler. Python makes it easy to rip out the guts of a stub logging module and replace it with something sophisticated.

Python 2 has a print statement which can take an indefinite list of things, and print them all, without any type information.

Python 2 does not provide any function that does something similar, so converting from those print statements to calls to actual logging functions was terribly painful and/or un-typesafe. I mean, a lot of the time I can't tell easily what the type of the value of a variable is where it's being used. Granted you can wrap almost anything in 'str()', and maybe I should have been more thorough about doing just that. Python doesn't have a compiler, and as long as it's basically syntactically correct, will be happy until it tries to actually execute the code. I really hate this.

So yeah job

2017-Apr-11, Tuesday 21:16
mindstalk: (Nanoha)
I haven't been practicing tight infosec and have leaked a lot, but here's Ye Officiale Announcemente: I have a job. Started a bit over four weeks ago. I wasn't shouting about it because I felt traumatized after over a year of searching, and takebacks-shy after December's "we'll tell you we'll make an offer, then disappear" firm. Plus a bit of paranoia about whether I'd be out of work-shape and get into trouble. But I've gotten my second paycheck, so this seems real and ongoing. They can pay me! I can keep earning getting paid!

It's a tiny startup, I'm literally the first person to get paid in money and not just equity. Back-end work on a web services (more or less) company, with C++ in my distant future, but right now lots of Python. After lots of virtual machine wrangling (see previous posts.)

I've been learning a lot, it's been fun[1], I like my boss and co-worker, and the hours are agreeably flexible for someone with sleep disruption and a nomadic existence.

[1] For somewhat aggravating values of fun.
mindstalk: (escher)
My boss apparently figured out the problem with the VMware clone: fakes3 (for faking a local Amazon S3 service) apparently behaves badly if given the local hostname (or just localhost?) rather than an IP address, and I'd probably edited the clones files to use a name because why wouldn't you.

And I tackled my VBox again, and got shared directories working! I'd found a different set of instructions, which worked for manual mount, and then even automount from fstab. Going back, I reproduced the error I'd gotten from the Arch instructions: I'd been using '/vmshare /vmshare' (Window and guest locations, a la VMware FUSE command syntax) when it actually wanted 'vmwshare /vmshare' (short name of the shared directory in VBox, guest location). "Protocol error" is a pretty terrible error message, but I can see now what I was doing wrong.

I also found VBox's Seamless Mode, which I don't quite see the deep point of yet, though it does reclaim screen space from the Windows title bar while still leaving the start/monitor bar at the bottom, but it's allegedly similar to VMware Unity Mode, except Unity says it doesn't support Linux Guests.

So VirtualBox seems strictly better than VMware in features, since it does everything one would want, while VMware doesn't do Unity or (more important to me) touchpad scrolling. OTOH we probably have the VMware clone at least behaving the way we expected it to. Though I'm not sure this was actually tested on it, I think it's a prognosis based on fixing something on the Ubuntu machine.

Also VBox is open source and doesn't charge you money for running more than one VM at once. OTOH we already paid VMware the money.

I haven't tried comparing performance.
mindstalk: (Default)
The work system has two kinds of debug/logging statements.

One is a class with the standard methods (trace through critical) which are just print statements that add "DEBUG" or "INFO" as appropriate. There's not even a hint of output throttling. But it is a class, and so I can rip its guts out and replace them with calls to Python's logging module, and it works.

Then there's the 500+ naked print statements, with "ERROR" or such in their constructed output strings. I can search for them easily -- though I can just search for 'print', I think these are the only uses -- but I don't see any programmatic way of converting them, especially as the logging output formatting needs types (%s, %d) which are totally absent from the existing statements. (And it's python 2, so they are statements.)

I see a day of boring editing in my future.
mindstalk: (Default)
My Arch VMware still doesn't do touchpad scroll, not that I've tried.

I cloned it for my co-worker, edited the accounts, tested the system, it worked fine. Copied it to the shared hard drive, then to her laptop. And now it has quirky IP address or hostname lookup issues that we can't figure out, such that the boss decided to start over.

With OpenSUSE! He trusted the official VM tools, it didn't work. May have tried Open VM Tools, I stopped paying attention.

Co-worker moved onto Ubuntu, using an image from OS Boxes, which I view as potentially NSA/mafic front, but hey, it's not my IP. That seems to be working, possibly in all ways.

I was inspired to go back to VirtualBox, and started over from scratch. After 40-50 minutes, mostly waiting for packages to download and install, it was ready, with X and XFCE and Firefox. Display resizes, cut and paste works, even scrolling works! Everything... except shared folders; I thought I followed the Arch instructions, but I get a "Protocol Error".

Sigh.

I have continued to realize VMs are cool. I could have a second Arch VM and play with desktop environments without messing up my working one. Or play with Ubuntu and Red Hat without rebooting. Or you could skip "will Linux work on this laptop?", install VBox or QEMU on Windows, then go full screen and ignore Windows almost entirely.
mindstalk: (bujold)
LXDE was happy starting from startx, but it doesn't have a way to configure move-on-focus. Searching about "you can't" and "apply this 100 line XML file somewhere". So I moved on to xfce -- the full thing, not just xfwm. It's not happy starting from startx/.xinitrc, or I'm doing something wrong, but it provides its own startxfce4. It resizes, doesn't crash, and had a single step for turning on the One True Mouse behavior. Was also able to configure my usual X keys (I have some function keys mapped to window raise/lower/minimize). Plus it's supposed to be fairly light weight. So that's where I'm at for now. Haven't explored it much since; if it lets me move my windows around, I'm good. (I'm used twm after all, which pretty much is nothing but that.)

On the downside, touchpad scroll still doesn't work. This may be a VMware problem. I was working on a VirtualBox image, but it didn't go smoothly. First I tried export/import, which didn't seem to work -- frozen boot screen. But when I went to Close it, the proper display flashed up, and I've been able to find that it does boot and have my account. But it's not *usable*. Possibly X would fix that. I also tried a pure install, but after applying some tweak to make console resize, it didn't want to boot at all. I haven't had time to go back and try pure vanilla. And the VMware image I'm working with is getting more and more developed, it may be hard to switch.

I also found a program to make *Windows* use move-on-focus. I should probably tell you what it was, but I don't remember, and the info seems to be only on the office machine. But it's SO useful, at least for my workflow which uses overlapping windows a lot. (Often a full-screened browser or VM (or browser in VM) and some other window I'm taking notes in.)

OTOH I really wish I could make *Windows* raise and lower windows with a key.

New co-worker coming Monday, she'll need a VM too. Rather than re-installing, I simply cloned mine. Easy! And purged my limited personal info on it, a bit more work. And got the system working on it... that was a lot more work, we've got too much hardwiring of local IP address. Which will interfere with putting code in source control too, so we've got a double incentive to fix that.
mindstalk: (CrashMouse)
My new work laptop has Windows 7 Pro at base, which we need at some point, so for Linux we've been trying to put Linux into a VMware Workstation. Since I use Arch, I tried for Arch, even though it's not listed as supported. It's been a fun couple of days. Some of that my own fault: though I did wonder about boot information, I missed the "choose and install bootloader" instructions three times running. Some, well, while Arch does tell you to enable dhcp, you have to click through and read everything; it's easy to think it's up by default.

Then there's VM Tools. Supposedly even VMWare tells you to use "open-vm-tools" rather than what they provide, but a couple webpages said certain features would work with the official tools. But its installation script failed straight out of the ISO, on a clean install. That's never good...

There's a site OSBoxes.org, which provides VMWare and VirtualBox images of various OSes. No idea who they are, and I'd be paranoid about trusting some unknown OS image. OTOH, I did end up downloading a few to see if things would work at all -- Arch CLI, Arch KDE, Ubuntu.

Discovery: don't think I like KDE or Ubuntu's UI, but the latter did have full screen and cut-and-paste between Linux and Windows. The Arch ones didn't seem to, so it didn't seem worth trying to track down a difference in configuration.

One cool thing about VMs is that you get to treat 'machines' as documents. I'd started making copies and snapshots, and when messing around with official VM Tools failed and broke things, I was able to pop back to an instance before that. Woo.

And with that, trying open-vm-tools again *very carefully* and avoiding conflicting paths, I got shared folders working -- even without the auxiliary tool the docs said I would need. Sweet! But fullscreen and pasting still didn't work.

OTOH, by default I use startx and the ancient environment of twm. xfwm4 didn't 'work' either. Finally I tried Cinnamon... the window manager of which promptly crashes. But the session hangs around, and voila! fullscreen and paste! So I guess I'm going to need some sort of full session for this thing, not just a WM.

Also twm was able to take over the apps, and then the Failsafe Desktop or something becomes a window managed by twm. That's just surreal.

LXDE was happier starting from startx, and that's what I've got now.

Still missing: touchpad scrolling, which is a big loss. Hope I can get it...

October 2017

S M T W T F S
123 4567
89 1011 1213 14
15161718192021
22232425262728
293031    

Expand Cut Tags

No cut tags

Style Credit

Most Popular Tags

Syndicate

RSS Atom