rockymeza
Fusionbox is a software development agency located in beautiful Denver, Colorado. We are committed to the open source community and we're serious about architecture and design at every level of the stack.
We've built our name on Python development and security, but now we are looking for an experienced mobile developer to support our clients more fully.
## Job Description
You will be in charge of the iOS stack, working closely with the backend engineers and the designers to deliver top-quality products to clients. Ideally you are also fluent in Android application development.
At Fusionbox we open source anything not core to a client's business. Our rule is: if you've used a piece of code in more than one project, it's time to open source it. So you'll be tasked with maintaining your open source contributions.
Finally, you will be expected to have opinions. If you see some aspect where Fusionbox could be improved, whether it be in the engineering process or in the way the company is run, patches welcome. You understand iOS conventions and best practices and are willing to defend them.
## Requirements
We are looking for an iOS developer with at least 3 years of software development experience. You don't have to be an expert in all of the following subjects, but if you feel comfortable with about half and you are interested in learning about the other half, please get in touch.
* Experience with RESTful integrations
* At home with version control
* Understanding of relational databases and data normalization
* Knowledge of software security, including common attacks and how to prevent them
* Love of open source
* A need to do things The Right Way®
You would like to get paid to write open source software.For more information, contact [email protected]
Please do not contact us if you are a recruiter or outside of the United States.
https://pypi.python.org/pypi/wifi/0.3.1
It works ok and just wraps ifup and iwlist. It also reads and writes /etc/network/interface style config, so you can see what's going on under the hood.
But I agree. Getting it all work the first time (or when I encounter a new type of network) is just ridiculous.
> +1 for having a usable demo to play with off the bat.
Thanks.
The idea behind the versioning system is that for a lot of our clients, the people who are editing the pages are not actually allowed to publish them. Those users will not see a Commit and Approve button, they only have the Commit button. Later, somebody who has full privileges will review the commits (either in the History or in the Review Queue) and decide whether or not to approve those pages.
If you wanted to see the version that you were editing (we call it the working copy), you can click on the preview button located next to the Commit and History buttons. You can even test the form from the preview page and it will still work.
> Confusion lies in the commit part, or in the publishing process, order of process.
I think you are absolutely right that this flow is confusing. We will talk about how to make this flow better and more obvious.
> Some buttons looked deactivated
I opened an issue for that <https://github.com/fusionbox/django-widgy/issues/205>.
* https://github.com/fusionbox/django-widgy/blob/master/widgy/... - the widgy_mezzanine "contrib" app. It provides a Page subclass that has a WidgyField on it.
* http://docs.wid.gy/en/latest/tutorials/widgy-mezzanine-tutor... - a tutorial for getting started with Mezzanine and widgy.
[edit -- formatting]
I think there are some use cases where the tree structure really shines, where I haven't really seen anything that could really match the power that we give the user. For example, the Form Widget -- users can create their own forms just by dragging and dropping the form input widgets. Now this would be possible without the tree structure, but since we have it in widgy, users are able to intersperse non-form related widgets like text or images and also they can add structure widgets like the Tabs or Accordion widget.
> I also take your point about the tree of widgets thing, but there is always a trade off between conceptual-ease-of-use and power.
We do find that our clients are willing to take a little time to learn the interface in exchange for the ability to have more power.
itertools.chain.from_iterable(itertools.combinations(a, n) for n in range(len(a) + 1))we wrote this one at my company. It uses your mouse movements as a seed for the random number generator.
New Relic seems to support Python 3 now though, which is nice.