u/daveidfx

8 post karma · 87 comment karma · joined Jun 2011

daveidfx

If you can get by with just 2 NICs, I’d recommend having a serious look at the ZimaBoard 2 (https://shop.zimaspace.com/products/zimaboard2-single-board-server). I’m using one for pfSense CE and have been delighted. I did have to change one ACPI setting to prevent errors when updating, but why would I want my firewall to sleep anyway?

Quad core x86, dual Intel 2.5gbe NICs, luxurious amounts of RAM for a pf box (8 or 16 gb), optional dual SATA if you’d rather not use onboard flash, all for less than the 2100. On, and it is also fanless like the 2100 with roughly the same power consumption. Looks a little funkier, for better or worse.

Now, tbh I haven’t actually got a chance to try it at gigabit speed because my ISP connection isn’t that fast, but on paper it should be good.

daveidfx

Great minds! This ended up being what I came up with, almost precisely. It also allowed me to take several attempts at the proper approah per template and compare the results.

Hooray brute-forcing. Still feels like there really should be an easier way, but this is approach did enable me to fix my code, so I'm gonna hang the answer on this one.

Thanks for your help!

daveidfx

Yeah, I've been going layer by layer, building up, so no offense taken. I think it may be the only sane approach. And on several of those layers, I hit these unhelpful errors, hence my meta-question.

Thanks for taking a stab, though. I do appreciate it.

daveidfx

Thanks for the reply. I intentionally left out any example code because my question isn't really about getting this current code to run, it's about how to get useful info out of CloudFormation (or logging!) when writing any future code.

But for what it's worth, the current hiccup is on creating a CloudFront CDN:

Conditions:
  ThisIsProd: !Equals [ !Ref Environment, "prod" ] 
... 
Resources: 
... 
  AppCDN: 
    Type: AWS::CloudFront::Distribution 
    Properties: 
      DistributionConfig: 
        Aliases: 
        - | 
          !If 
            - ThisIsProd 
            - !Sub "cdn.${!Ref AppDomain}" 
            - !Sub 
              - "cdn-${Env}.${Domain}" 
              - Env: !Ref Environment 
                Domain: !Ref AppDomain

At least, I assume that's the critical part. The latest error kicked back is:

The parameter CNAME contains one or more parameters that are not valid. (Service: AmazonCloudFront; Status Code: 400; Error Code: InvalidArgument; Request ID: xxxxxxxx-yyyy-zzzz-aaaa-123456789012)

Which is fun, because there is no such thing as a CNAME parameter. So I assume it's talking about the Aliases parameter.

I'm definitely seeing what you're saying about debugging being a pain. But this should be a pretty easy fix if I could just see the malformed value to let me figure out how it went wrong.

daveidfx

Thanks for the reply. I left cfn-lint out of my OP by mistake. Whatever my current error is, it's skating past cfn-lint without any problem, too. And previous errors caught by cfn-lint have had the same problem - it'll tell me which value is wrong, but not what the value was.

daveidfx

A

Pyst?

daveidfx

And is HoloLens-Only with forced AR.

daveidfx

Vim is incredibly awesome, but I wouldn't say it's great for someone who wants to avoid complexity.

daveidfx

I don't know if you've looked into IPython or its relatives at all, but you may want to.

IPython by itself is just an enhanced version of command-line Python, with some nice features like auto-completion and being able to paste blocks of code in gracefully.

Jupyter notebooks and JupyterLab are built on top of IPython (well, not exactly, but close enough for this discussion), and turn your web browser into your IDE, sort of. Data science folks like these a lot.

Maybe that works for you, maybe not. But they're relatively simple. If you want to take a look, the easiest way is to install the Anaconda distribution of Python.

daveidfx

Thanks for the reply.

It's possible that bridge firewall{} bit is wrong - certainly something must be. But I though since eth0, 3, and 4 were tagged in the zone-policy stanza at the end that that covered it. This config is trying to use zone policies on ethernet interfaces instead of rule groups on the bridge to get around the bidirectional problem. I can't tell from the documentation I can find on zone policies if that's valid or not.

daveidfx

I feel you about that rain issue, but (off-topic) what frames are those, if you don't mind my asking? I kinda like 'em.

daveidfx

Just commenting here to say you're not alone. I discovered Dash just a little while after you did, and I'm puzzling through mostly the same questions.

daveidfx

Ah, okay! I was looking in the wrong place, I guess. Great, thanks!

At that price, I'll have to see what I can get approved from work, but I appreciate the pointer!

daveidfx

oooh, for extra credit, Blender can run Python... You wouldn't need physical dice...

daveidfx

I like it better already.

daveidfx

Except it's also not. Nexus focused on making solid, un-crapped-up exemplars of solid Android design. The Nexus line served as a role model to other manufacturers to quit making Android phones such crap, and it largely worked. With the exception of continuing security updates, 3rd-party Androids are way better than they used to be. Then Google messed up, and dropped Nexus for Pixel. They also stopped making solid. role-model phones and started chasing iPhones and gimmicks. Borderless, headphone-less, notched-screen wannabes.

I still have my Nexus 6P. The battery is shot, but other than that it's still an outstanding phone. All these Pixels are disappointments.Sad.

daveidfx

I assure you you're mistaken. They used more corporate terms than that, but someone at Microsoft at some point absolutely said something about not getting user uptake or market penetration, and speculated about IT gate-keeping instead of looking at whether their feature was any good or not. Or a good fit for the individual orgs in question.

For a long time, Microsoft has been watching in envy as Apple rode a wave of shadow IT into corporate ubiquity. They absolutely want that. They absolutely want user adoption to drive IT adoption. Whether they care about IT's stance on that, I'll grant, is debatable.

daveidfx
daveidfx

Depending on your website and what software it's running on, autoscaling like sirfraz mentioned might be a good fit, or you might be able to use Elastic Beanstalk, which includes autoscaling, health monitoring, and load balancing. https://aws.amazon.com/elasticbeanstalk/

Elastic Beanstalk is probably most useful when you control the code that runs the site. That said, you can run some off-the-shelf website software on there, too. For example, see this whitepaper on running Wordpress on this service: https://d0.awsstatic.com/whitepapers/deploying-wordpress-with-aws-elastic-beanstalk.pdf

Hope that's helpful!

daveidfx

The watchers on the firewall...

daveidfx

Thanks, I hadn't thought of checking the channel width. It turns out 2.4 and 5 GHz were set at 20 and 40, respectively, as recommended. And I did set the channels to non-overlapping values. I haven't changed the Transmit power from Auto, though; I may play with that and see how it impacts performance.
Thanks for your input.

daveidfx

Hmm. Might be a little tricky with the ceiling tiles and plenum mounting, but definitely easier than the whole run. Worth a try, thanks.

daveidfx

For things you want hard-coded and immutable, Group Policy is great, if sometimes daunting to implement. If you want to set up more sensible defaults, but still let users make changes, which I'm guessing is the case based on your request for a script, your choices are more murky.

I just recently discovered some tools that seem promising, and geared toward client-side tweaks like these; I can't exactly vouch for them, since I'm just learning them myself, but I'll put them here so you can investigate whether they'll work for your needs.

One is Carbon - "a PowerShell module for automating the configuration of computers running Windows". It has a ton of functions, but a lot of them seem very low-level, very fine-grained. For example, I don't see a function to un-hide file extensions, but if you could find the relevant registry entry for that function, you could set that registry key with Carbon's "Set-RegistryKeyValue" command. Possibly worth noting that I'm not sure Carbon fully supports Windows 10 yet. If not, I'm sure it will soon.

The other is Boxstarter, which seems mostly focused on installing software (via the neat Chocolatey system), but also has a handful of features for configuring Windows. They seem higher-level, so there are fewer options, but they're easier. For a parallel example, the same file extension tweak as above would just be "Set-WindowsExplorerOptions -EnableShowFileExtension".

Come to think of it, if you don't mind doing the research to translate what you want to the registry setting(s) that governs it, .reg files are pretty flexible and intelligible, too. Not quite as nifty and new, but very powerful.

Hope that's helpful!

daveidfx

The three drum beats at the end of the mini drum solo here around 2:15 in Whammer Jammer by The J. Geils Band: cued up here

The whole song is just this face-melting virutoso harmonica assault tumbling over itself, and then the drummer gets maybe 3 seconds of the stage to himself and just owns it.

The whole song is great, but those three beats just kill me.

daveidfx

Came into the thread just to make sure someone pointed this out. Was not disappointed. Have an upvote.