Wednesday, December 28, 2016

Late Bugfix update

Hope you all enjoyed Smissmas.

Small bugfix related update for Android applications. Finally fixes an annoying issue
with PadLock which caused it to sometimes fail to load lists.

Small bugfixes for git-ssh and update-hosts.

Also, a small update to the custom build of Faster Melee on the AUR, which brings the
package to 4.4 and ships many of the FasterMelee custom configuration files in the
package instead of having to dig around the Internet for them.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Wednesday, December 21, 2016

The Smissmas Update

Because there are no updates otherwise, I had the time to scrap up another bugfix update.

Nothing super exciting, just some stability changes. I found the time to work because I was not spending the time on other things because there is no Smissmas in sight to be seen.

As I write this actually, it seems that a Smissmas update has been released.

Shucks. Foiled again.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Monday, December 19, 2016

Ch Ch Changes

I have begun changing the build process for how the pyamsoft Android projects are built.

Instead of being built as individual modules in a single master project, each application will be split into its own project. This should allow for faster build times over all.

The migration will take some time, so no real progress will be made in the applications until the process finishes.

Sit tight.

EDIT: Since the original post, I have managed to convert both Home Button (a rather simple result) and Pasterino (slightly more complex, shows a separation of modules) to this full project format and out of the global Pyamsoft project.

You can check the GitHub repositories for these projects to see the difference.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Sunday, December 18, 2016

MuQSS is a strange one

MuQSS is, to my understanding, a replace for BFS.

It works great. Keeps heat low and is highly responsive and performant.

Except it one odd case. Playing the vidya gamez.

Normally, I would be able to run CS:GO or the dolphin emulator without having to
change the frequencies of my CPU (using pstate-frequency). But with MuQSS, for
some odd reason, I am forced to basically set the CPU performance governor to
reach the same frames that I would have with the mainline CFS scheduler.

As a result, when playing games I experience a bit higher of a heat increase than
with the mainline build, but I also experience a slightly better performance benefit
as well.

Overall, MuQSS is a great addition to the desktop Linux ecosystem, but I did find it
interesting that it performs oddly in very specific situations for my very specific machine.

Also, if GalliumOS could ship MuQSS in replacement for BFS, that would be awesome.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Tiny fixes for hopefully tiny bugs

Just applied some fresh bugspray to the cracks in the wall. Hopefully it will deter the smaller bugs from creeping out again, and hopefully it will not inspire larger bugs to suddenly awake.

All apps updated, should be landing fresh in a few hours. Sit tight.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Wednesday, December 14, 2016

Updates and goals

PadLock has gotten some stability fixes yesterday and today that should fix the brief flickers that you may see when loading large lists of applications.

I'm hoping to include in Power Manager 2 new modules, one to control brightness levels on the device automatically and the other to monitor wakelocks on the device. I may even be able to allow rooted users to release wakelocks on demand, but I will need to test stability before claiming this as a potential future. Most likely, the first release with wakelock support will be simply read-only.


devgoals

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

pstate-frequency updated

pstate-frequency 3.7.2 has just been tagged for release.

This is the update which cleans up the code and removes some deprecated features:

- Power Plans can only be specified by name
- Min and Max do not accept non-number inputs
- Turbo, Governor, and X86 do not accept number inputs

Please report any bugs you may find as GitHub issues.

kthxbye.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Tuesday, December 13, 2016

Bit rougher than usual

Tonight's round of bugfix updates went a bit rougher than usual, going through three betas and a hotfix.

All just general stability improvements, but a nasty list duplication bug has me running around releasing a hotfix for production versions.

Hopefully, I can write some decent tests to catch these issues in the future, but anyway. If you are an eager beaver and running any recently released *.*.0 version, please update to the hotfixed *.*.1 version of the application.

Thanks.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Thursday, December 8, 2016

Stuff

So

Yesterday I released some updates. Das coo.

Today, worked on PadLock and Power Manager some more. PadLock can now filter on the full application list and the specific application list. Filtering is more lenient on both lists and they are now entirely searchable.

Data is now only processed once to save memory and reloaded on demand. To fully refresh the lists, you can use the Swipe to Refresh gesture as always. A bug was also fixed in the Pin entry dialog, which allows it to be displayed more properly in Multi Window mode at the smallest size.

Power Manager had some power trigger improvements. There are also some small memory management improvements, and I will be tackling the reliability for operations that require root in the coming weeks.

WordWiz will be updated to handle searching for the number of specific occurrences in a block of text. ZapTorch will also be updated to reduce memory usage of working with the Camera on older devices.

SoftGlow will be given a face lift and should see a new release perhaps around the new year. I hope to use some new found knowledge to make it less intrusive and just generally easier to use all around.

Time will tell.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Wednesday, December 7, 2016

Update Wednesday day

Update time

Power Manager:

Smaller APK size, less battery consumption when running automatic code
to toggle device functions like Wifi and Mobile Data.
Improves reliability for starting on boot automatically.

PadLock

New version 2 released.
Adds ability to filter through items on the list.
Adds navigation drawer to interface with the application.

Pasterino:

General bugfixes and optimization

Home Button:

Improves reliability for starting on boot automatically.

WordWiz:

General bugfixes and optimization

ZapTorch:
 
General bugfixes and optimization
Adds a privacy policy in compliance with new Google Play guidelines.


========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Sunday, November 27, 2016

The Source of Legends

It is said that for some lower powered machines, the Source game engine may actually run the fastest with some unconventional settings.

Lets say you have a weak machine. Like the world's toastiest toaster. Maximum toast.
You want to play Counter Strike or Team Fortress or something like that with all your gamer friends on the Interwebs. You want to hit at least that sweet 60 FPS.

First off, try playing the game on all the recommended settings. The defaults.
Yeah I know, your craptop probably can't handle High everything and low on shadows on a 24 man CS:GO server. But the Source engine works in mysterious ways. Maybe it will, maybe it won't. Don't ask why or how. YMMV.

Second, try turning everything down to lowest. Duh. Everything except resolution if you're playing in full screen. Some monitors cannot display scaled outputs as efficiently as their native resolution and so lower resolutions may actually result in worse performance. If that fails too, drop the resolution as low as it can be to still be comfortable, and give it a shot.

For reference, I play all my games in a windowed mode at 1024x768 on a normally 1080p screen. While I dev. On a laptop. Don't ask why, it's just preference.

Third, actually try moving some of the video settings up a bit, from lowest to something like medium. The Source engine is old, and lowest settings will sometimes offload graphics work onto your CPU instead of using whatever low level GPU you might have. Bumping settings up a bit will hopefully make the engine use your CPU and GPU equally. YMMV.

Finally, if all else fails, consider tossing out your old toaster machine for a nicer machine, like a high quality microwave or a fancy shmancy broiler. Unfortunately, not every machine is capable of playing the vidja games, and such is life.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Saturday, November 26, 2016

Thanks

Hey so

Hi so

Okay.

Power Manager and PadLock received a small enhancement which reworks some of the back end logic. As a result, smaller APK size. Also, the applications no longer rely on Google Play Services to run. This should open them up to wider audiences in places like India and China which do not always run on Google Play devices.

General bugfixes in many of the applications, a lot of busy work behind the scenes, nothing all too noteworthy.

More stuff when I feel like stuffing.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Blogger is different now and I don't like change.



========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Thursday, November 17, 2016

Power Manager update released

Power Manager update has been released which brings support for things like automatic airplane mode, better Doze control, more reliable Power Triggers, and an additional option to fully enable or disable Root features in the Settings section of the application.

The update has been pushed to the store, expect a notification at the earliest tomorrow morning.

EDIT: A tiny hotfix has been pushed. If you are running on Power Manager 6.5.3, please update to the fixed version, 6.5.5

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

PadLock update released

PadLock update has been released which brings support for things like old application purging and ignore which the device is locked. It also reduces memory usage and optimizes some of the locking code to make it more effective.

The update has been pushed to the store, expect a notification at the earliest tomorrow morning.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Tuesday, November 15, 2016

Better Steam performance placebo

One of the processes that runs when you launch Steam is the Steam web helper process (steamwebhelper.exe) which is an embedded instance of Chromium used by the Steam platform to show you things like the Steam Store, Steam Community, and your Steam profile page among various other things.

The Steam Web Helper is great for those who enjoy the many social aspects of Steam as a platform, but for those just looking to open up Steam and launch Counter Strike so that they can lose yet another 1v1 Arena online, the Steam web helper is of little use. For these kinds of people, the web helper consumes a large amount of memory running a Chrome process, and can occasionally lead to crashes on platforms like obscure Linuxes.

By launching steam with:

steam -no-browser


The embedded web browser process is not started. This saves on some nice system resources, but unfortunately also prevents you from opening the Steam Store, Community, or Profile/Inventory in the client. For those with lower resource machines, or those who simply don't care about those Steam features, it can be a nice help.

Note that Steam does not officially support configurations running without the browser instance. I also assume no responsibility for anything you may mess up. I also cannot guarantee that the performance you may see improving is not entirely just placebo.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

update-hosts-updates

Update hosts has been updated to (hopefully) remove the reliance on GNU specific extension to command line tools like grep and sed. As a result, the script should run on systems that do not specifically use the GNU tools, although I'm sure most users will not notice a difference.

The sources list has been updated, one of the ipset sources was removed and iprange optimization is automically applied if you have the FireHOL iprange program installed in your PATH.

Other news, I would like to make a Power Manager release soon as it brings many improvements for normal and rooted users, as well as the automatic control of Airplane mode which is a big battery help.

PadLock has some improvements which allow it to not disturb applications on the lock screen, as well as purge any old applications that are no longer installed.

ZapTorch, WordWiz, Home Button, and Pasterino have all received general bugfixes to keep them up to date with the latest version of Android.

git-ssh was also updated to remove the need for risky evals by using a custom implementation of arrays in POSIX sh.

iptables-restrictor was updated to include better support for logging when packets are restricted and is better at automatically handling UNIX groups for you.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Saturday, November 12, 2016

pstate-frequency-notice

An update to pstate-frequency has just been pushed which changes the following:

A deprecation notice has been included for various --set options. The next release of pstate-frequency, 3.7.0, will remove support for these ambiguous input options.

The --set options for turbo, governor, x86, and plan will no longer take numeric inputs as valid. They will require a string input, things like on, off, or governor/ power plan names to work correctly.

The --set options for min and max will no longer take string inputs as valid, meaning that passing the values 'min' or 'max' will no longer work.

When running pstate-frequency 3.6.3, a warning will appear (unless you have suppressed all output with -qq) if you are running into a situation where you would be calling pstate-frequency with these deprecated inputs.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Wednesday, November 2, 2016

pstate-frequency and friends

A small update was released today for pstate-frequency and friends. The update fixes a bug in the processing of input as digits. Please update to version 3.6.1 when you next get the chance.

As for friends, iptables-restrictor now has the ability to create the group for you before adding iptables rules, and understands port ranges instead of just single ports.

git-ssh has been updated to remove the need for some hacky calls to eval. With these new changes, you can safely enter input without needing to use multiple backslashes to escape things. You can also embed symbols in your commit messages. It should be much more compatible now with the actual git program.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Thursday, October 27, 2016

In between video games I program.

In between losing at Super Smash Brothers Melee and losing at Counter Strike Global Offensive I also lose at Android programming.

PadLock:

- Added option to not show the lock screen if an activity is shown on the lock screen. This will prevent constant activity loops in things like the Camera on newer devices, and other applications which are able to show their contents while the device is locked.

- Added a screen to show any old applications which were once locked but are now uninstalled. The user can select to purge these old applications individually, or all at once.

Power Manager

- Does not toggle data if airplane mode is on

- Root users will be able to toggle Airplane Mode automatically. Airplane mode will be an exclusive toggle, which means that the user has the option to make it so that Power Manager only controls airplane mode. Airplane mode and Doze can both be managed in parallel even though both are exclusive toggles.

Other miscellaneous fixes.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Sunday, October 23, 2016

Updates, but wait!

Updates have been pushed for pyamsoft Android applications.

Well, they were pushed last night. For whatever reason, I have been waiting for the entire day for Google to process (or reject :( ) the recent updates but for the past almost 24 hours there has been no progress. While this is not a problem per se, it has never taken Google so long to process a couple of my applications, especially seeing as they processed application betas within minutes.

Anyway, should be coming soon. It may be a result of the recent DDOS attacks that have been ongoing.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

pyamsoft open beta

pyamsoft applications are now in Open Beta on the Play Store. Note that most of the time, the beta builds released will be close to, if not exactly the same as the release builds. Beta channel builds are used as a final checking mechanism to run through some automated tests and make sure the publishing works well.

To join the beta for a pyamsoft application, visit the store page for the application you wish to join up on. You should see a beta link near the bottom of the page.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Tuesday, October 18, 2016

Why does it show pyamsoft applications have Ads in the Play Store?

The more observant of you may have noticed that the pyamsoft applications show up in the Play Store with the "Contains Ads" banner. Rest assured, there are no advertisement networks in place in any current pyamsoft application, nor will there ever be.

The label was added to comply with Play Store policies about the inclusion of advertisements. The banner at the bottom of pyamsoft applications by default can be technically deemed an advertisement, even though it does not connect you to an advertising network, nor does it reward me should any user choose to view, or interact with the advertisement.

For those who are curious, the code for advertisements in pyamsoft applications is freely available for viewing and modification on GitHub in the PYDroid library. Note that the advertisements shown in pyamsoft applications are optional, you can choose to turn them off via the settings and never see them again. They only advertise other pyamsoft applications, they do not talk to the Internet. Clicking on an advertisement will only open the Play Store link for that application, nothing more.

For those who are concerned about the presence of advertisements, you are free to modify the source to remove the code entirely (see AdvertisementActivity). If you do not have the programming understanding to do so, rest assured that the Settings toggle to turn off advertisements will always be respected should you choose to do so.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Friday, October 14, 2016

General updates all over the place

Updates today, lots of em.

All of the APKs have been updated with a smaller size and a fix for donation processing. If, in the past, you received a donation related error message, please try again with the new APK version. It "should" be fixed.

Crashes and other general bugs were fixed, couldn't catch everything this time around but I figured this update was important enough to push out with most things addressed. I will be going back to fix the remaining issues that I am aware of later on.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Power Manager updated

A Power Manager update has been released which brings additional bug fixes and stability.

For more in-depth information about the recent update, see the changelog included in the application and these blog posts.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

PadLock updated

A PadLock update has just been released which brings some bugfixes and improves Android N compatibility.

For more information, see the changelog in the application and these blog posts.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Wednesday, October 12, 2016

Some Progress

Power Manager had some fixes recently committed:

- Allows the ROOT user to toggle mobile data if they grant super user permission on Android Lollipop and higher.
- Fixes a bug where the data display would only update when the total device network connection changed.
- Improves visibility of overview sections.

PadLock had some fixes committed as well:

- Removes the strict number of LockScreenActivity instances. Previously it was limited to two, but to better support complete freeform windowing, this restriction has been removed. This will generally only affect users on Android N and above, other users should not notice much difference if any.

The media player application announced yesterday got the following changes as well:

- Control media playback from an Android Wear device
- Control media playback from media notification

More later.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Tuesday, October 11, 2016

Here's What's Happening

ok.


so.


Power Manager:

- Fixed a crash when scrolling too fast on the Manage screen
- Cleanup code for Power Triggers, should silence an annoying message and allow for faster trigger creation.
- Fixed buggy management handling when searching for valid Wearable devices
- Square images in the overview.
- Smaller APK size
- More tests
- Reset the 'Start on Boot' setting when clearning the application settings

PadLock:

- Fixed an issue that pops up on Android N causing the lock screen to launch over and over again.
- Fixed an issue which could cause the LockInfoDialog to crash
- Lower memory usage
- Smaller APK size
- More tests

Home Button
- Smaller APK size

Pasterino
- Clear the service when clearing all settings
- Smaller APK size

WordWiz
- Show the changelog on demand
- Smaller APK size

ZapTorch
- Fixed a torch bug on API <21 devices
- Smaller APK size
- Clear service when clearing all settings

SoftGlow
- Tint the screen based on the time of day or the current amount of light in the room.

And, for something new, a media player.
It's just a simple media player, doesn't need the internet and can quickly and easily load all of the tracks from your device local storage. I created this after getting fed up because of a certain other music player which refused to load the local media library when there is no network connection (Why you need internet to load the local media library, I'll never know). After days of frustration and trying to fix the other media player, I gave up and angrily created my own. It turns out that it's "not bad" but I recognize that it may not fit every person's listening patterns. More on this in the future.


No updates yet, as I'm still cleaning things up. But just know that all of the work is still alive and kicking.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Wednesday, September 21, 2016

Updates

Updates have been released to the pyamsoft scripts on GitHub.

This release brings pstate-frequency to version 3.5.1 which brings support for custom power plans that can be housed in /etc/pstate-frequency.d/ and make it easier to override the actions of the default power plans. Also brings documentation fixes.

steam-wrapper has also been updated to 0.6.0 which fixes a dbus related crash on ArchLinux and allows steam to launch in a 32-bit namespace when running under 64-bit Linux.

update-hosts has been updated to 2.1.3 which brings it up to date with the uBlock0 unbreak list in version 1.9.4

Android work has been underway on Power Manager, PadLock and SoftGlow and I look to have updates to those in about 2 weeks or so.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Monday, September 19, 2016

Last Announcement for a while

I feel as though I've lost my way.

When I started developing for Android, my goal was to create applications that, first and foremost, helped me through my day to day. I wanted to make an application that I wanted to use, in the hopes that others would want to use it to.

When I went to open one of my applications during development and saw it crash from a Firebase error and then leak memory from the black box that is mobile Advertising, I knew that this kind of experience was not what I set out originally to create.

I had thrown away my principles and my values all for the small chance that I would make a couple insignificant pennies.

I have a love/hate relationship with mobile applications and the growing trend to devour all permissions and do everything at once. I dislike strongly that I need to ask Internet for something as simple as Home Button, but I like that I get built in crash reporting for free. When I attempted to handle crash reports by user-submitted methods, I received zero reports and went on for months without even knowing certain bugs existed.

With crash reporting, I fixed around ten long standing bugs in the span of a single day, just because I knew they existed.

I will be keeping the Internet permission to allow for crash reporting in all of the pyamsoft applications as I truly think it improves the user experience at the end of the day.

I have completely and permanently disabled Firebase's Analytics because I have no want or need for them. While I'm sure it is nice to see how long people use my applications for, I do not care. I don't care if nobody else in the world is using my applications. What I care about is making a good product, and a good user experience.


As such, here is the future:

I will update all of the current pyamsoft applications by the end of today (September 19 PST).

Advertisements will be removed, and it will return instead to a simple image based photo banner at the bottom of the application showing the user about other pyamsoft applications. It will be freely disabled by going to the Settings page of the application.

Analytics will be disabled, because I could not care less.

Effective immediately as of this post, advertisements will no longer appear in Android applications or on this blog.

As such, this means that there are no more Pro applications. For those who did purchase one in the past, thank you. Please think of your purchase as a good natured donation towards my efforts. But because there are no more advertisements, there is also no longer a need for Pro applications. They will be removed from the Store immediately.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

More updates, again, part 2, return of the update

More stuff:

PadLock

Fixed a crash caused when attempting to open the information of a package that has a large number of activities. This is not an actual crash, but the Package Manager will stop working which causes some problems to occur such as the list not being displayed, or in some cases, the
ErrorDialog being shown asking you to restart the application.

The current fix is just a band-aid workaround, but it prevents the application from effectively halting whenever it meets a binder transaction error in the package manager.

This has so far only been observed when attempting to view Google Play Services, so user be warned.

pstate-frequency (dev):

Version bump to 3.5.0

Adds support for custom power plans via configuration files. Config files can either specify:

PLAN_AUTO_AC and PLAN_AUTO_BAT meaning this is a shim plan that calls through to actual power plans based on whether the machine is on AC power or battery.

PLAN_CPU_* which means this is an actual plan which defines values to set the CPU to.

Currently these config files are simply sourced by the shell process, meaning that can technically execute arbitrary code. The plans shipped with pstate-frequency are safe, and you should not notice any change from older versions like 3.4.0, but please be careful when adding in custom plans as any complex logic you may have in the plan file will be executed potentially as root.

Currently pstate-frequency ships with 5 plans which are set to mimic the old functionality when power plans were hardcoded into the script. Hopefully by using custom plans, users will be able to better configure pstate-frequency to suit their individual needs (such as my own like setting a CPU max of 85 for balanced plans) without having to do so many command line overrides.

steam-wrapper (dev):

Version bump to 0.6.0

Adds support for running in a 32-bit namespace using linux32 which may potentially fix issues with games that run a 64-bit client for 64-bit hosts and cause performance issues (looking at you, CS: GO). The default value of this option is 0 (off) but it can be overridden in the conf file or on the comand line using the -b option.

Fixes a dbus-crash on exit which was observed on ArchLinux systems.


========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Sunday, September 18, 2016

New iterations of old products have successfully been released to a wider audience

Stable updates.

PadLock

Fixes a crash and a potential memory leak. Also fixes issue on Android N devices which have a large number of applications installed that could not see the lock list.

Power Manager

Better stability, some power trigger fixes. Less battery consumption, more power saving.

Home Button

Still takes you home, now just does it with more stability.

ZapTorch

Fixes a bug on older devices using the "old" Camera API.

Pasterino

Fixes a bug which prevented the notification from showing, making the application not able to actually paste anything -_-

WordWiz

Some stability improvements and fixed a small memory issue.


SoftGlow has once again (I promise) entered active development. I hope to have updates for you once it has settled on a stable code base, but for now it tints the screen a pleasant red based on either: the position of the sun relative to your location, when you manually specify it to, or based on the amount of available light in your current area. Neato. API 19.

More later, as always.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Saturday, September 17, 2016

The future

So unfortunately, we can't all have nice things.

Currently there are ads in the applications, and ads suck.

Currently there is an easy way for users to disable ads by simply clicking a button, awesome.

Unfortunately, this model is unfair to the number of users who purchased a pro version of an application in the past with the intent of removing Advertisements. Because of the lack of need for a special unlocked version, the users have essentially just wasted money (or gave a donation depending on how you look at things). As such, I've made the unfortunate decision to once again lock down the applications via advertisement supported Free versions, and Ad-Free pro versions.

Purchasing a pro version of an application will allow you to toggle advertisements on and off.

In the future I may remove ads again if another business model proves sustainable, but for now, this is the unfortunate state of things.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Wednesday, September 14, 2016

SoftGlow and QuickSwitch

Both SoftGlow and QuickSwitch have been unpublished from the Play Store due to stagnation in development time. SoftGlow and QuickSwitch both have not been looked at for quite some time, and there are currently more appropriate alternatives on the store for both applications.

SoftGlow will be looked at in the future and hopefully be re-released with a more robust application.

Current users of both applications will still be able to see the store pages for the respective application.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Tuesday, September 13, 2016

Here's where things stand

Just some updates on the going on in versions that are yet to be released

PadLock:

- Fixed an NPE that would cause the lock screen to crash, causing it to not launch in response to a new application being opened. This is a very rare crash and it was never reported :( but I was able to reproduce it and at least establish a fix. Note that the current fix will set option values for ignore time and exclusion to defaults of 0 and False respectively. However, if I predict correctly, the crash would never occur when a user is actually attempting to use those entries, and so this shouldn't cause much trouble.

Power Manager

- Fixed some UI jank in the Notification and on the various device Manage pages when selecting the toggles to turn things on and off.

- Fixed a crash resulting when a custom time was too large to be handled

- Fixed a crash which caused the custom time to not be saved when the screen was still loading (happens rarely but has happened)

All of these bugs were only recently addressed because I recently became aware of them. They occurred multiple times but they were never reported by any users.

Please report bugs and crashes or else I will spend months not knowing that said problems exist. When an application crashes, please send a bug report so that I can at least know that your problem exists.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Monday, September 12, 2016

Updates released

PadLock and Power Manager have been updated with some bug fixes and better battery life.

Power Manager fixes a particular bug which would sometimes cause radios to not be managed, and in some cases would not toggle Data successfully on API levels below Lollipop. Unfortunately, the auto toggle of mobile data is still inconsistent and has not yet been re-enabled for Lollipop and upwards. :(  Some typos were also fixed, as well as a crash that would be possible in the manage configuration pages.

PadLock gets battery life improvements and some small bug fixes to improve memory management.

Both updates will be live later on, please update when you next find the time.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Friday, September 9, 2016

PadLock advances

Some improvements have been made to the current development version of PadLock which should reduce its battery consumption by about 30%.

PadLock is naturally a more battery hungry application. Because it uses an AccessibilityService, which always runs and receives window notifications, it will naturally consume more battery than other applications. By reducing the amount of open accesses to the database PadLock uses to store its entries, the battery and memory usage has been significantly reduced.

Hopefully I will roll the update out in the coming weeks.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Wednesday, September 7, 2016

Quick PadLock bugfix

If you are using versions of PadLock between 1.6.1 and 1.6.4, please update as soon as possible.
A bug was discovered which would cause entry white-listing to fail, resulting in the Lock Screen failing to launch on the rest of a given application, unless entries were specifically selected to be locked.

The recent update, to version 1.6.5 should fix this issue.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Tuesday, September 6, 2016

Another round of updates

Another round of updates today, small bugfix release for all!

Power Manager, Home Button, PadLock, ZapTorch, Pasterino, and WordWiz have all received small updates which bring the following improvements:

- Memory management improvements (through PYDroid)
- Shows the various open source libraries used in the projects. For smaller applications, many libraries appear included because they are a requirement of the PYDroid common library which is used in pyamsoft applications.
- Adds a background version checker. The version check will show a small dialog to you when starting the application letting you know there is a new version available. If you do not wish to update, you can safely ignore the dialog.

While this update is small, it is very important as it will make it easier for me to deliver future improvements to you.

Plz update.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Saturday, September 3, 2016

Please update

Yesterday I updated a large amount of applications on the Play Store but there were some issues in the updates which affected the application stability.

Please update to the latest version of all pyamsoft applications as soon as possible.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Friday, September 2, 2016

Firebase

Guy's gotta eat.

Soon, new updates will be rolling out which add Firebase AdView's at the bottom of pyamsoft applications.  If you view the ad, I make some money.

I know that in the past I said no ads, but unfortunately, a guy's gotta eat.

Fret not, if you don't like ads, they can be disabled from the settings menu in all pyamsoft applications (Home Button will get an update too to allow this). Also, rest assured that all applications will stay open source except for the private bits of information (like developer keys and advertisement IDs). All of the actual code that runs in the applications will still be visible online on my GitHub: https://github.com/pyamsoft.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Wednesday, August 31, 2016

WordWiz

A new app already, wowzers.

The other day I was writing using my Android device and wanted to check the current word count of my paper. I found to my dismay, that there was no quick and easy way to do this already, and that many solutions on the Play Store required me to copy and paste my text into a special application, causing me to leave my paper and thus lose my train of thought (and my immersion!)

I thought to myself, there has to be a better way, and there was. Enter WordWiz.

WordWiz is a very, very simple application. It places an additional entry into the system Text Selection overlay on Marshmallow and up, the Word Count option.

Selecting that option will take a word count of your text selection and then return you that value in a little Toast message.

An um.

That's it.

Programmed in just under 2 hours, the application is currently very basic. I hope to further extend it with commands to count the occurrences of a given token in selections as well as any other useful tidbits I can think of.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

PadLock updated

An update to PadLock has just been released which brings it to version 1.6.0.

This new version is minimum supported on API level 19 and up. The new version brings support for Activity whitelisting, which allows you to exclude an activity from being locked. This is usually wanted when a user does not specifically lock any activities, and rather just locks the package, but still wants a couple of screens to not get locked.

If that sounded confusing, just try using it, it shouldn't be all that tricky.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Sunday, August 28, 2016

KitKats

With the ever changing Android ecosystem, old things come and go.

Minimum SDK 19 is now a thing for all modern pyamsoft applications.

PadLock, Power Manager, ZapTorch, and Pasterino will all require at least Android KitKat going forward. This means you must be running on a system which uses an Android version that is at least 2 years old.

This will allow these applications to take advantage of newer Android technologies. Please upgrade if you are not already on at least Android KitKat.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Sunday, July 31, 2016

Some future tasks

Here's how things are looking on the horizon:

PadLock will be receiving an update which brings some visual bug fixes with the Floating Action Button(s), a more robust database reset feature, other general bugfixes, and the ability to display an optional "password hint" on the lock screen. The password hint will be entered via a mini FAB that will appear on screen once the user creates a lock password. Once the hint is set, the user can view it on the lock screen by enabling the hint (on a per prompt basis).

The next release will also bring some visual styling to the lock dialog, which will pop out more and be easier to quickly glean information from. It will also bring some improvements to the "Additional Info" option on the Lock Screen.


Power Manager will bring more robust handling of Doze on Marshmallow devices. Because Doze is such a powerful feature, Power Manager will be configured in such a way that regardless of what other radios Power Manager is handling, if Doze will be expected to run in a given situation, Doze will take priority over all other radios. This means that Power Manager will forgo turning off the device Wifi and in exchange, will only handle Doze. The Android system will then take over and manage device radio's automatically, providing the same benefits as Power Manager would normally with even more power savings.

Doze can also be configured to turn off the sensors on the device so that upon entering Doze mode, the device will not wake out of Doze mode upon being moved or other actions. The device will awake from Doze mode normally once you begin using it again. The device can also be configured to always enter Doze (even when charging) and never enter Doze mode if you so require.


SoftGlow will be updated as well to follow a new backend system where instead of basic screen tinting around the time of day, SoftGlow will read from the current light in your area. If the room you are in is dark for example, SoftGlow will activate, even if it is high noon. This change will be breaking and will bump the minimum supported level for SoftGlow, but it will maintain API 16 compatibility with a backwards compatible implementation of the old time based system.


Pasterino will be getting looked at to see what can be done with the issue of pasting into WebViews (which are not accessible by accessibility services...) to allow you to paste into fields in applications like Amazon and Google Chrome automatically.


ZapTorch will be getting looked at to see if it is feasible to add a partial wakelock to catch button keypress events even while the screen is off. If this is estimated to have too large of a battery impact, this feature will not be added, or will be added under an EXPERIMENTAL tag.

Home Button is still in maintenance mode, QuickSwitch may be looked at for a full reworking.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Tuesday, July 26, 2016

Power Manager can toggle mobile data on API 21+

As the title says, in the most recent git commit for Power Manager, it is now able to manage Mobile Data on devices running Lollipop and up.

For those who are unaware, when Android Lollipop was released it removed the ability for applications to toggle the current state of the device's mobile data. This meant that for a two year period, Power Manager was unable to automatically manage the mobile data on devices running the newest Android.
Power Manager is now able to toggle the mobile data on all supported devices from API 16 (JellyBean) all the way to API 24 (Nougat). No root required.

When you launch the application and navigate to the mobile data page on a device running Lollipop and above, you will be shown a dialog box which instructs you how to enable mobile data toggles on Power Manager.

tl;dr You will need access to a machine which has adb installed. Connect your device with Power Manager installed to your machine and run the following command:

adb -d shell pm grant com.pyamsoft.powermanager android.permission.WRITE_SECURE_SETTINGS


Close and re-open Power Manager and you should be able to now toggle mobile data on your Lollipop and up device.

Oh and by the way, Power Manager can now force Doze mode on Marshmallow using a similar command as above, but granting a different permission:

adb -d shell pm grant com.pyamsoft.powermanager android.permission.DUMP


See the Data and Settings pages in the Power Manager application for more info.

The Power Manager update is being processed in the store now and should go live in a couple of hours. Stay tuned!

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Sunday, July 24, 2016

Finally

So updates.

Power Manager version 6 is out. Consider this to be a softer release than usual, as I wanted to push out all of the bugfixes even if the application did not have all the features I wanted it to. This is in aggressively active development and will be improved considerably in the coming weeks.

PadLock has been updated to fix some bugs as well as add the ability to remove the full database when it is cleared.

ZapTorch has been updated to fix some bugs.

Pasterino has been updated to fix some bugs.

Home Button has been updated to fix some bugs.

All of the applications come with an optional display banner. This is, I suppose in essence, an advertisement. But this does not use any Ad SDK, but rather just displays an easily dismissed banner displaying other pyamsoft applications. These will not show all the time, and can be easily dismissed.

Because I promised no advertisements ever, these banners can be disabled by simply toggling a switch in the application settings. If you don't want to see them, you won't have to. Sorry.

But hey, at least you can learn about the other applications I work on if you are not following here as often.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Wednesday, July 20, 2016

Script updates

pstate-frequency update has been released which bumps the stable version to the new 3.4.0.

This release is mainly bugfixing and code cleanups, bringing hopefully more POSIX compatible shell script and less bashisms.

steam-wrapper has also been updated to handle some new libraries which may be stale on non Ubuntu 12.04 systems, and has been redesigned to be hopefully POSIX compatible including the removing of many bashisms in the code. Do note that this release removes support for long options passed to the wrapper on the command line and slightly changes the syntax of the configuration file.

Both releases are admittedly small and the user should not notice too many differences.

update-hosts has been updated to address a small issue which leaks a line into the final hosts file. git-ssh has been updated to address an issue regarding the parsing of SSH command line options.

Power Manager update is coming along smoothly, perhaps later this week I'll be ready for an open beta. Once bugs are ironed out, version 6 will release.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Monday, July 18, 2016

PadLock 1.5.0 released

An update has just been released to PadLock which addresses the following:

- Fixes a number of crashes that would only surface on devices below Lollipop. These related to lock screen closing crashes and crashes when loading Vector images.

- Adds support for periodic device re-checking to lock the screen. When enabled, PadLock will queue up re-check jobs. These re-check jobs will fire once the unlock time has elapsed. When the re-check job fires, PadLock will check what the currently active window is. If it is a window in an application that is meant to be locked, PadLock will automatically lock the device again. This allows devices to be periodically re-secured if this kind of security is desired by the user. This options is disabled by default and can be changed in the Settings page.

Power Manager is coming along nicely and I hope to release an open beta for the application in about a week or so. Stay tuned if you're interested in that!

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Saturday, July 16, 2016

Trimming the fat

Power Manager and PadLock both implement a Job Scheduler which uses GCMNetworkManager to handle queuing on API <21.

When one attempts to use the Job Scheduler, it pulls in the permission to access the Internet and the network state, even if the Internet is not actually used by Power Manager or PadLock.

To make sure that no unnecessary permissions are required to run pyamsoft applications, Power Manager and PadLock both explicitly remove the GoogleApiActivity and the Internet permissions from the manifest so that both applications will not have the ability to access the Internet.

This does pose a potential problem, if library code attempts to access the network it will fail without the Internet or network permission. So far, testing does not indicate any area that should cause the application to crash due to this. However, do note that in exchange for increased privacy when using the application, it may crash randomly due to network permission errors.

Submit bug reports should it happen, thanks!

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Supporting Jelly Bean

Jelly Bean, API 16 is old. The last update of Jelly Bean was released way back in 2013, and its starting to show its age.

Jelly Bean is supported on all pyamsoft applications that can afford it, this means Power Manager, SoftGlow, and PadLock for example. However, the need for new features has pushed applications like Pasterino and ZapTorch into the realm of supporting only a minimum of KitKat (19).

Due to some recent events, there is no longer any user testing done on Jellybean (16). While applications that support Jelly Bean should "work" there will be little to no support for the issues that may be Jelly Bean specific.

In fact, I am looking to move the minimum supported for all of the modern pyamsoft applications up to a minimum API of at least KitKat (19). Assuming that progress continues as it always does, this will not be in the near future, but it will be coming some day.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Thursday, July 7, 2016

Script updates

update-hosts, git-ssh, and pstate-frequency have all received updates which fix a couple of bugs but more importantly bring clean POSIX compatability to all of the scripts.

The script should now properly run on systems like Debian and Ubuntu which default the sh to dash, which originally had issues because it did not respect the local option used in each of the scripts.

They should also, technically run on non-Linux systems as well (except for maybe pstate-frequency which requires Linux).

I'm still learning shell script, but with each of these updates I think I'm progressing along quite nicely.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Monday, June 27, 2016

stuff about things

update-hosts has been, well, updated.

Version 2 brings support for ipsets along with hosts files. The tool will aggregate ipsets from various sources around the Internet. It will parse these set in the same way that it handles hosts files, and then will add them into the ipset if it exists. If it does not exist, it will not touch anything. It "should" be a bit faster than a script which calls into the ipset command directly to add sources, and by default will save its configuration of ipset to /etc/ipset.conf

Along with the addition of ipset support, the 2.0.0 update brings better handling of errors mid script and cleans up after itself more reliably.

Later today/tomorrow, PadLock update to fix some bugs and add (a) new feature(s). This update will bump the database version, so you will need to re-create your locked application list.

Later on Power Manager, later still SoftGlow.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Saturday, June 25, 2016

Prepare for update

Padlock update soon.

This will fix a bug with the dialog not displaying if you navigate to the Settings screen and back.

This will also change how locking is handled. Right now, each time you navigate to a new screen, you may be re-locked, even if you are in the same package. The next patch will update to lock each application globally by the package. By default, this means that unlocking an app will leave it unlocked for a given amount of time. Individual activities in the package can still be locked for an additional layer of security, and these individual activities will live by different timer rules than the package itself.

This should mean that you will see PadLock less, and it will do a better job at securing only the activities you ask it to.

Also, Power Manager update. This will bring job scheduling and better support for power triggers. More triggers can be handled more quickly, and multiple triggers can be ran at the same time with more fine grained control.

A small ZapTorch bug fix, and possibly a Home Button freshen up as well in the later days, stay tuned!

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Wednesday, June 22, 2016

Pasterino plzarino

Pasterino is released.

Programmed in essentially a single day, Pasterino serves as a global text paster.

Awesome.

Gonna go write Power Manager now.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Saturday, June 18, 2016

Copy Pasterino

So I don't actually know when this began, but never the less.

It seems like recently, you are not allowed to use Copy-Paste functionality into the text entry field for the Google Play purchasing dialog.

This means that if you are like me and use a password manager application to handle your credentials, and like me you do not actually know all of your passwords, then like me you have been unable to purchase items on Google Play due to this change.

I know that the change was added for security. And security is good. But so is choice.

Because I was left without the choice to paste text into this field and enter my password into the purchase dialog, I did what any developer would do in this situation.

I built a work around.

Enter Pasterino.

It's quite simple. It runs an AccessibilityService, monitors for the views that you are currently focusing on (like text entry and such) and allows you to paste the contents of the clipboard when you press a simple notification button. Awesome.


And that's it.

The basic functionality is already done, more or less, and was coded up in about 30 minutes plus some additional time spent reading the AccessibilityService documentation (which is admittedly sparse). I still need to add tests and flesh out the UI and some basic options but overall, the application is finished and should be published soon.

But hey, it's something.

As always, open source, ad-free, and up on GitHub for your viewing pleasure.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Thursday, June 16, 2016

Managing Power

So nobody asked.

But I did anyway.

Power Manager is being re(-re)-written (again) to be better at doing the things.

The next version 6.0.0 will remove Ads.

I have removed the old code which required two different services to run to handle simple screen events. It has instead been replaced with a job queue which relies on the Google Play Services GCM scheduler for devices below Lollipop, and uses the Framework JobScheduler for Lollipop and above.

Even though the GCM scheduler requires the Internet permission, rest assured that Power Manager does not actually access the network in any way. The GCM scheduler should also not actually access the Internet, and only uses that permission to check if the network is available when it is needed for Job requests.

RxJava will once again drive the train here as far as multi-threading requests go. The APK should also be much smaller as it does not rely on the entire Ad SDK (though it was never too large to begin with).

It won't look all too different from version 5, since even though its been a while since I last updated Power Manager, I liked the colors and the flow of the application.

As always, its open on GitHub. The master branch will show you the old code for Power Manager 5, and the dev branch holds the current version 6 in development. I hope to put it out before too long, but we'll see.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Wednesday, June 8, 2016

Things I should have done before

Surprise, that's right. Tests.

Unit tests. Instrumentation tests. UI tests.

I'm working on it, I promise (the last couple commits should show that).

Right now, I'm using Robolectric so that I can run Android tests on the JVM (because my presenters are badly designed). The reason for this is, one, its faster than booting up the emulator. And two, my application data repository is the device's package manager. You need the Android classes to invoke the package manager (even though I end up having to fake it for tests).

By mocking the rest of the classes that would normally be injected by dagger, I'm able to write tests to handle things like the presenters, and the interactors to make sure that any new code I add (see: removing view pager for fragment) does not introduce any regressions.

Once I get a test battery which works against and validates the existing code base, I will start adding tests for new code as I write them. This way, the application will be smoothly tested while it is being developed.

I hope to include tests in PadLock, ZapTorch, and SoftGlow when they are next updated, but we will see as time permits.

After some pain in figuring out how to shadow the PackageManager, I've been able to really get testing underway for PadLock. ZapTorch will arguably be more difficult, since its feature relies on hardware in the device itself. I will have to mock up situations of both success and failure and hope for the best.

More to come.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Monday, June 6, 2016

Android N and Padlock

PadLock is meant to restrict access to applications that the user deems sensitive. And when there is only one application running on the screen at a time, this works reasonably well.

When there are two, a hole different problem emerges.

PadLock, by design, only launches a single Lock Screen which is the almighty in this context, and handles the restriction of all sensitive applications. Perhaps this is bad design, but nevertheless, this is how things work and the design is now stable and in production.

When two applications take the screen then, it is expected that PadLock will only be able to lock one of them, usually the first one. This effectively breaks PadLock, as it allows a user to avoid the restriction without knowing the passcode. That's not good.

A working patch on the dev branch seeks to fix this issue by allowing multiple instances of the LockScreenActivity to be launched. This allows PadLock to restrict multiple applications on the screen at the same time. Beautiful.

However, not all is easy. Normally, allowing multiple LockScreenActivity instances would create duplicates in the Recent Activity stack. I have changed the way that the LockScreenActivity cleans up after itself, which should hopefully avoid this issue.

I will be pushing the patch forward far before the release of Android N. Do note then, that the oldest version of PadLock that will "work" on Android N is the to-be-release 1.4.0. If you are running on an older version of PadLock at the time you upgrade to Android N, you will enter multi-window hell.

Also note that if you do not use an ignore-time for PadLock, that by design, when switching focus between multi-window apps, PadLock will re-lock the application. This can be very frequent (and also very annoying). This is by design - since as the user you have requested there be no buffer time where a passcode is not asked. If you would wish to avoid this scenario, configure PadLock to use a non-zero ignore time value, like 5 minutes or - in the future - a user configured value.

Android N is the future. And the future is looking very cool. Hopefully PadLock, and all of the other pyamsoft applications, can be similarly chilly.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Tuesday, May 31, 2016

Quick updates

Hope you all enjoyed the weekend.

PadLock was updated to 1.3.1 which removes the tab view pager interface in favor of just separate screens per fragment. This should give more vertical screen real-estate when using the application in landscape modes.

Also cleaned up a lot of the application with those annotations I love so much, hopefully when things crash I can expect them to now.

ZapTorch also was updated to 1.1.2 which allows for switching which Camera API controls the flashlight at runtime. It will also be nicer about displaying error dialogs regarding permissions or just plain errors.

SoftGlow rewrite for version 3.0.0 has begun, but no real progress has been made on it other than some cleanup and updating dependencies. I hope to get more serious work done on it later in the week.

Brief today. More later.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

Wednesday, May 25, 2016

Firejailing Steam

firejail is an application sandbox that uses technologies I don't understand to make using my computer more difficult. It also provides a basic security sandbox and helps protect me from malicious applications.

Remember that by default Linux is rather secure, but depending on the user's needs there may be situations where more fine grained control is desired. Firejail allows a novice user (like myself) to apply all of these existing security technologies already built into the kernel to give them a safety net should an application go rogue. It does so via profiles, which control how much - or how little - additional securities should be applied to an application.

There is a steam.profile, which ships with the firejail application as a supported profile. For 90% of games, this profile works fine, but there is a single instance that I have observed so far where applying this steam.profile crashed the game. The game in question, is Unturned.

I am not placing blame on either developer here, I am just stating what I noticed and what worked for me.

Unturned crashes for whatever reason when the default steam.profile is applied via firejail. The crash can be worked around by ignoring the protocol line in the steam.profile file, which limits the application to using only the Unix socket protocol, and IPv4 IPv6 protocols. Unturned apparently needs something more, and even adding all of the protocols available into the steam.profile did not fix the crash. But, by ignoring the protocol line by passing the --ignore option when running firejail, Unturned launches fine. Beautiful.

$ firejail --ignore=protocol steam 

Go grow a tomato farm and kill some zombers you. It's free.
On an unrelated Linux steam note, the microphone in CS:GO just does not work. The game also hard crashes if you try to load a map using changelevel <map> instead of map <map> in the console. Valve plz fix.

========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================

AsyncTasks and You

Let's talk about threading (again), and about AsyncTasks. I am not going to explain them, but rather assume that you are an Android developer who has just stumbled across this class in the framework and are trying to use them to do all the things.

As with all parts of the framework, you must always understand where it ties into the lifecycle. So first, let's leak some memory (prepare for some handwritten, from memory code).

public class MyActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        new AsyncTask<Void, Void, Void>() {
        
            @Override
            protected Void doInBackground(Void... params) {
                while (true) {
                    // Loop forever.
                }
                return null;
            }
        }.execute();
    }
}

Alright, so this leaks. If the instance of MyActivity is destroyed, the AsyncTask does not stop doing its background task. The AsyncTask holds an implicit reference to the MyActivity context, which leaks the entire activity. Blah blah, all things you've heard before.

You've also probably heard to avoid AsyncTask because they are bad and all that other fun stuff too. Well, sometimes you can't just use something else, or ship with RxJava or anything nice like that. Sometimes, all you've got is the Android framework. So take a moment to learn about AsyncTasks.

One of the easiest things you can do is to never create anonymous, non-static AsnycTask instances. Instead, you can create a static inner class which extends AsyncTask, or create the anonymous AsyncTask in a static function. This will prevent the AsyncTask from capturing the implicit reference to your Activity and should plug the hole on a major source of AsyncTask memory leaks.

The other thing would be to add checks during any long running doInBackground() code to see if the AsyncTask isCancelled(). If it is, you can stop the background operation and the AsyncTask would be able to be cleaned up at that point. In order to make this worthwhile though you would need to hold a strong reference to the AsyncTask itself in your Activity and call cancel() on it during onDestroy(). It is more work, and this should generally only be used if you really need to reference something in your Activity itself like an ImageView, and it should always be used along with the advice above about static classes or functions.

Finally, if you are holding an ImageView for example in your AsyncTask so that you can modify it onPostExecute(), you should always try to not hold a strong reference to it. The ImageView will also be held by the Activity itself, so your AsyncTask can get away with holding a WeakReference to it. If you are holding a Context, see if you can hold the Application context instead of the Activity context.

Finally finally, remember that on modern Android, AsyncTasks are run one after the other. This means that there may be cases where your task leaks just because it is waiting for the other one to finish its long running operation. Sometimes you are able to apply a parallel executor to the AsyncTasks, sometimes you are not. There is no silver bullet for AsyncTasks, you must remember to test and verify that your AsyncTasks work as intended and do not leak any precious memory.


========================
Follow pyamsoft around the Web for updates and announcements about the newest applications!
Like what I do?

Send me an email at: pyam.soft@gmail.com
Or find me online at: https://pyamsoft.blogspot.com

Follow my FaceBook Page
Follow my Google+ Page
=========================