Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Igloo: A simple Windows automation tool (easyigloo.org)
148 points by easyigloo on Oct 20, 2019 | hide | past | favorite | 33 comments


This is a really neat project. But the website undersells it. It took me until reading the docs to understand that this is an alternative to many raw Windows utilities / PowerShell commands, which (to me) are notoriously hard to remember and have goofy capitalization.

For example:

    update
Instead of

    wuauclt /updatenow

Or, to enable Windows Biometrics:

    install feature biometrics
Instead of:

    dism /online /Enable-Feature /FeatureName:Biometrics
Really, really great. But both the landing page and the About page desparately need a "quick to see" example of the project. I didn't even read past the first paragraph in the About page, to be honest. Make it prominent what the app is right away on the splash page.

Edit: The new About page is much better!


Your examples aren't Powershell commands, they are Windows command line utilities and could be run from command prompt. Real Powershell commands are quite intuitive, support pipelines and are object driven. Give it some credit! For example:

Install-WindowsFeature Biometric


Also, PowerShell comands themselves come with aliases, like cls for Clear-Host

And it's not arbitrary reason . PowerShell is closer to a OOP language than other shells.


Not only that, but aliases are also guessable as they are created using the same pattern, one or 2 letters for noun and usually 2 for verb: rjb Remove-Job, etsn Enter-Session, gc Get-Content, gps Get-Process (but also ps for historical and even more discovery resons)

In my book, anybody complaining about terseness of powershell knows 0 about it and should be treated as ignorant. Give me a random bash command and I will probably make it shorter in Powershell without any custom made mumbo jumbo.


Thanks. I updated my post. I don't really do Windows command-line, so it's easy for me to conflate the two.


Is that really really that great?

It is a collection of syntax sugars, anybody can make one in an hour. Here is mine:

* https://github.com/majkinetor/posh/tree/master/MM_Sugar

In it you can see things like `groups` in `Show-Group` that can be used to show Windows groups you belong to, or typical linux commands for machine restarting in Shutdown.ps1 (halt, reboot...) and something I use zillion times a day:

    function Enter-Parent  { cd .. }
    function Enter-GrandParent { cd ..\.. }
    sal ..  Enter-Parent
    sal ... Enter-GrandParent
Aim of the project is probably to have more standardized syntax sugars rather then each person inventing their own...


Or you could just create an alias for commands you use often.

For that second command Install-WindowsFeature Biometrics is almost as long and you're tab completing anyway.


Thank you for the excellent feedback.


> Windows command-line interface with syntax that is terse and easy to understand.

Funny. The verbosity of Powershell was definitely a turn-off before I started using it... but it wasn't long before I came to see it as one of Powershell's greatest strengths. Verb-Noun is great for discoverability and a script that avoids aliases should be understandable by someone who doesn't know the first thing about Powershell, what the script does, or even scripting in general.

Terseness is an anti-feature. K&R got it wrong.


> Terseness is an anti-feature. K&R got it wrong.

I disagree. You spend very little time learning a language, compared to the amount of time you spend using it. It pays to take the up-front cost of learning the language in exchange for increased productivity later.

EDIT: consistency, discoverability, and user-friendliness are all important. But those are all as part of productivity, where productivity is optimized for people who have already spent a decent amount of time learning the shared language; that is to say that terseness, consistency, and discoverability all work together. This is why sed syntax is not so terse as machine language, because sed is still designed to be used by humans.


On the contrary, that is exactly why terseness is an anti-feature.

Most of the stuff only gets written once, and is read multiple times across the years from team members and external consultants with different degrees of skill levels.

Automatically completion on CLI and IDEs have solved the "too many letters" problem for decades now.


Again, this is why user-friendliness and consistency are important. Terse code should still be easy to read. It should be easier to read than the equivalent less-terse code, since there is literally less visual material that you have to parse. It's a language; you have to learn it.


It seems like what you’re saying makes terseness seem worse. If you’re only writing once as you say, then the terseness will make any debugging or going back to the code much harder.

The only gains you’ll get are the minimal speed gains with terse names.


See my reply to the sibling - https://news.ycombinator.com/item?id=21304987


Thats irrelevant observation since Powershell has both terse and short variants.


No, it doesn't. PowerShell has aliases like `cls` for `Clear-Host`, but no "short variants". Maybe this is a bit nitpicky, but wording is important since aliases should for example not be used in scripts as they may be changed, hence you should always use the terse or complete commands.


Yes it does. Its not only about aliases but number of other mechanisms such as shortening of parameteres to unique substring, parameter aliases, proxy functions, pipeline vars, pipeline properties, default global properties etc. All those together enable short variants.

> Aliases should for example not be used in scripts as they may be changed

Nonsence. Default aliases din't change at all from v2 - v5, they changed a bit by necessity with pwsh (v6), and cmdlets can and do change, and changed more then aliases (particularly with v6, especially network). Using full name doesn't guarantiee more stable script then using aliases, you need to use full qualified cmdlet name to have that which is not something anybody uses.


>K&R

Could you be a little less terse here?


Probably means Brian Kernighan and Dennis Ritchie. Authors of Unix/C and the book "The C Programming Language".

I believe it is also used to refer to the format/syntax of C before ANSI C was standardized.


They were joking.


Very cool! Some thoughts:

1. As a replacement shell, it's not scriptable. If you haven't already, you should make it such that you can do one-shot commands from a regular shell without entering the full environment. For example:

    igloo crypto connect <name>
2. There is no highlights section on the website talking about why this project is awesome. You need examples of things that any IT person will instantly recognize as gold.

3. I was having trouble navigating the docs section from a mobile device. Desktop interface works perfectly, though.

4. Change your about page. You're denigrating yourself, and making yourself and the project look weak. This project is an amazing accomplishment, so present it and yourself as such!


That is great feedback. Thank you.

I took your advice and changed the About page. Thanks for your encouragement.


How does this compare to AutoIt?

[edit]

Igloo simplifies Windows administration by offering pre-made aliases for lengthy PowerShell commands. For example, displaying outbound firewall rules in PowerShell uses the following syntax...

Totally different.


Yeah, unless I'm missing something, "automation" seems to be a misnomer. I was looking at it thinking along the lines of something like Autoit, Puppet or Ansible, which just made me confused reading the docs.

Calling it a "simplified administration shell" or "logically organised cli shortcuts" would be closer to what it really is, I think.


This wasn't that well received by sysadmin's on reddit:

https://www.reddit.com/r/sysadmin/comments/bvrlh6/i_created_...


This is an alternative command line, just in case anyone thought it was going to be something with a UI.


Looks sleek! I'd definitely use it if I were still on Windows.


neat project, but awful landing page. dont force technical users to immediately click about to get a remote clue what it's really about


tldr: Bunch of syntax sugars. No automation at all.


Syntax sugars are definitely a part of the app, but it does a lot more than simple 1:1 aliases. I used it to back up the running configs of around 400 Cisco devices last week. Thanks for your feedback in any case.


It's entirely unclear as to what this actually is.

The blurbs read like one of those "we create solutions for complex business needs" kind of things.


How so? They clearly show their set of tools in detail in the docs.


Im sure I could eventually figure out what tensorflow is for by reading the code, but there are correct ways to convey information about the purpose of a thing.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: