Thursday, December 24, 2015

Open House

Home Button has been the first application to be open sourced.
You can find it  here
Party in the streets.

========================
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-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Saturday, December 19, 2015

Ok let's talk

So here's the deal okay. I'm hoping to push out a Power Manager update before/around Christmas, and an update to QuickSwitch later in January. When these updates drop, they will come with a couple of major changes.

For Power Manager, this will bump the application to version 5, which comes with massive performance improvements and a UI refresh.

For QuickSwitch, the overlay has been replaced with a general notification, providing quicker access to toggles without requiring the system overdraw permission.

For both applications, major changes that are also taking place is that when the version updates drop for the respective applications, I will also update almost the entirety of the source code to my GitHub page (found through the link down below). The only file I will exclude from each of the projects is the file which defines their AD_ID used by AdMob. The application will be entirely open source otherwise.

And speaking of AdMob ads, the update to the new versions for both applications will come with a new setting: to optionally enable or disable to permanent banner ad. For those of you who use the application but don't wish to see ads, you will be able to visit the settings page and turn the ads off.

SoftGlow and Home Button will receive updates in the far future as well. SoftGlow's will be on a more major scale but adhere to the paragraphs above, and Home Button will be a minor bugfix but follow a similar pattern.

Following the changes that will take place, pyamsoft will be fully open source.

========================
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-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Friday, November 20, 2015

Viewing Ads when you close an application

So when you close out of my applications, they will attempt to launch a full screen Ad.

Woops.

Apperantly this is against the practice that should be taken. Sorry about that.
I will work to patch the applications that do this to launch ads in a more non-intrusive and respectful way.

Sorry for any incovenience this may cause any of you.

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-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Wednesday, November 18, 2015

Not quite Power Manager 5

Its not done yet, but its getting close.
There has been a lot of re-writing and re-working a huge part of the code.
As a result, APK size has decreased from around 4 MB to just under 3 MB (sitting at about 2.84 MB). Perhaps more important than that however, is the fact that the RAM consumption when running the MainActivity has decreased from 60 MB to 40 MB (for comparison, an empty activity consumed around 25MB on test devices, 18MB without Ads), and the memory consumption over time lowered from reported 108 MB to only 30MB, which is a significant improvement. The application is also generally faster, fixes a lot of issue with the UI including redraws and shadowing, and applies a nice coat of Material paint to the app.

Very little of the application is still a  "work in progress", the layout is almost set in stone.
Pictures and images still need to be worked in, as those can take some time to optimize, but the structure and backend of the application is sound.

Context leaks were fixed that are present in the older version 4, and some nice improvements to the interaction with the notification and quick toggles make for an all around fresher user experience.

Power Triggers have been made much more robust in version 5, and a new plethora of power plans can help you manage your device power on a even more fine grained level.

The bad new unfortunately, is that the release of version 5 will drop support for Android versions below Jelly Bean, and unfortunately any Android version above KitKat is unable to allow third party applications to manage mobile data. But I digress.

Stay tuned for more updates, and a release date in the future!

========================
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-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Friday, November 6, 2015

Home Button 3.0.0

Home Button 3.0.0 has been released, which brings with it support for Android 6.0 Marshmallow and drops support for Android version older than Jelly Bean (API 16 minimum). For those that currently have the application, you will unfortunately not be able to upgrade to the new release if you have a phone model running less than Jelly Bean, but don't worry, the overall functionality of the application has not changed.

Home Button is now officially in maintanence mode. This means that no new features will be added to the application. The only updates will be compatability or bugfix related. As far as features go, it is being officially deprecated in favor of QuickSwitch. You can check out QuickSwitch on the Google Play Store here.

The new update brings a refreshed visual theme based on the Material Design principles and a more smooth user experience regarding how the application is laid out.

Additional progress reports are soon to follow regarding Power Manager's 5.0.0 release, but things are coming along very nicely and a large portion of the application will be made simpler and easier to use.

More on that 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-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Tuesday, October 13, 2015

quickswitch 1.1.0

An update for QuickSwitch was released today which brings the application to version 1.1.0.

This adds support for the use of flashlight on many devices. This also is the first release of a pyamsoft application which moves the minSdk version from 10 (Gingerbread) to 16 (Jelly Bean). This move signifies the slow change in an attempt to modernize and standardize over various Android versions. Just as iOS developers cannot be expected (and are even discouraged) to support older iOS versions, and Linux developers cannot hope to always support the oldest systems, Android too experiences a lot of fragmentation (if not almost as much as Linux distributions). Making the minSdk version a required 16 instead of the many years old Android 10 will help as Android moves into the future.

Power Manager is undergoing a massive UI rewrite for version 5 which will incorporate new aniimations, and as much of the Material design kit as possible. A new, albeit simple application is also in the works, which will improve user experience when watching fullscreen or viewing immersive content.

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-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Friday, July 31, 2015

Updating the things that need updating

Power Manager update, one of the smallest ones ever.

This is in prep for the next major Power Manager release, version 5.0. I'm cleaning up a bunch of junk spaghetti code and making sure that things are as convenient as possible for those who are on Android 15 and those who are on Android 21 and up.

Why do I say 15 instead of the usual 10? Well as of a couple of months ago, the share for API 10 on the market is dwindling less than 5%. Let me voice that I wish nothing more than for everyone to be on the newest Android versions, so as a result, I will be dropping official support for those running a device of API version < 15. Let me clarify.

The application will install on API < 15.
It will run on API < 15.
It may not look as pretty or run as smooth or do as much.

I will most likely be phasing the same thing over for both SoftGlow and QuickSwitch, so be aware that if your device is older you may not be able to enjoy the same experience as those on newer devices such as Lollipop and upwards.

QuickSwitch has also been internally updated to verson 1.1.0, which brings support for a Torch flashlight toggle to the application. Some bugs need to be ironed out, as there are some kinks which prevent usual camera usage.

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-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Tuesday, July 21, 2015

I need better titles

So just some quickies.

Updated QuickSwitch to add Torch support. Right now it's extremely basic, and can sometimes lock up or disable other camera applications, or SnapChat, or messengers, or a lot of things. It's bad.

But it works, and so from this point I can iron out the issues to make sure that the interface I will use to access the camera will be satble, non-locking, and easy to work with. Torch support is just one of the things I hope to set for the next minor release milestone, as shown on the respective GitHub issues page. Give it a peak if you are interested.

QuickSwich development may appear a bit quicker due to the fact that when a new feature is added, I increment a minor version number to show backwards incompatability. It does not necessarily mean that QuickSwitch is unstable, or less stable than any other of the applications I release.

Also, if QuickSwitch gains in popularity, due to the fact that it implements the entire functionality of Home Button, I may be deprecated Home Button in favor of it.

========================
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-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Saturday, July 18, 2015

pstate-ithinkiknowwhatimdoing

So for the time being I've re-enabled sleeping in pstate-frequency by default. Reason being is that I observed upon system resume that sometime pstate-frequency would fail to control frequencies as similar in the reference issue. As such, I've once again added both sleep timeouts as well as the pstate-frequency-sleep.service for systemd. I would recommend that for those looking to use pstate-frequency as it was intended should enable all three systemd services that ship with the package, or create three equivalent services for distributions that do not ship systemd.

This works around a couple of issues that the intel_pstate driver is ironing out upstream. Hopefully in the future they will not be needed to control frequencie after system suspend.

Right now the patches are only sitting in the upstream dev branch for pstate-frequency. If you are wishing to use the dev branch, be aware that stability is not guaranteed, although I run it myself and have had no issues running pstate-frequency in all possible configurations.

========================
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-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Patch Saturday

Today on our patch saturday, I present to you an update to Power Manager! Woohoo!

It's just a simple bugfix which reduces the amount of network activity when loading ads, improves the UI cleanliness just a tad, and fixes a couple of bugs that have been introduced with the release of Android Lollipop.

Lots to do, little time. Will keep you updated for the future and looking to announce the next big thing for 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-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Friday, July 17, 2015

Updatayto

So here's whats up k.

QuickSwitch has been released. Woohoo! It's fresh, it's new, and it's waiting for you to try it out! And after you try it, be sure to rage uncontrollably and then feed me with your one star ratings and your endless anger about how my free application gave you cancer*.

plz.

No but in all seriousness, it's out and I think it's pretty cool. The road map from here is pretty much to incorporate all the functionality that I can. This means things like: flashlight/torch functionality, power off and power menu functionality, auto rotating the display, and placing individual triggers into a notification incase one does not with to use the entire Overlay, and only wants to use one or two features.

In another serious note, SoftGlow received a small update today which mainly fixed some bugs and also improved on the UI facelift it received in the earlier 2.0.0 update back some months. The roadmap for this application is to add a better timer to check for the current state of the glow overlay, and to refine the code which handles getting the time of day to a more precise algorithm.

Some bugfixes for Power Manager to follow, and then I'm going to crank out some updates to QuickSwitch, and maybe a video game.




*note: /s

========================
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-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Tuesday, July 14, 2015

Android's mysterious XML

Recently I was coding a part of a project which involved launching a new Activity, and creating a new instance of a fragment in said activity. Typical stuff.

So typical, it worked on all versions of Android, but only up until Lollipop.

Why Lollipop, why?

The application would consistantly crash with an XML Inflation error about an unknown class name: <unknown>. Obviously something is up.

Preloading the class in advance ended up fixing the error, so I will leave my resolution here for future reference.

Say for example, the class name in question is com.pyamsoft.fragmentx. If normally launching this fragment in Android Lollipop in a situation similar to the above mentioned fails with an XML inflation error but works on all lower versions of Android (as it should), the following code may assist:

    try {
        Class.forName("com.pyamsoft.fragmentX");
    catch (Throwable e) {
        // You may safely ignore this part if you wish
    }

Place this block before you call the fragment onCreateView to inflate the XML, and you should be able to load up fragments properly. This fix is similar to the work around for the AsyncTask class, which had a loading error in one of the recent Android SDK versions.

For notes about the AsyncTask bug, see bug 81083 in the Android Bug Tracker.

========================
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-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Lets chat

So I have just submitted the QuickSwitch Pro application to the Play Store. Once it is processed it will be available to download, and like the similar Pro applications I have released before it, it will serve only to remove ads from the Free version of the application.

So as I'm sure you have guessed, it is pretty useless without the Free version also uploaded to the store.

Currently, I am in the process of fixing up some last minute make up. I hope to release the application later in the week, aiming for Friday at the latest. As always, we'll see depending on my mood. Just know that progress, though slow, is happening.

EDIT 07/14/2015: Fixed typo.

========================
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-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Tuesday, June 30, 2015

Qucker Switching

I have finished adding all initial features to QuickSwitch. Currently, the application has a primitive material design implemented, including some new animations, usage of the elevation API, and the new Floating Action Button. Content is regrettebly limited at the moment, as I wanted to focus on pushing out a stable application rather than one which was packed with similarly buggy features. The application can handle locking the screen, simulating the Home button, changing the audio, display brightness, and various device radios all with the touch of a button. The application supports hiding to the notification bar on a long press, and stickies to edges of the screen for unobtrusive access.

Further improvements will be: torch support for quick access to flashlight like usage, placing individual switches (like locking the screen or changing display brightness) into the notification bar for those who do not enjoy the Overlay, reducing the memory footprint of the application, and essentially trying to replace as much of the physical button and otherwise based interaction with a software replacement.

Essentially: the road map for QuickSwitch will be to release small incrememntal upgrades to the application over a long period of time in the hope to create the most useful button toolset replacement possible.

Ambitious, to say the least.

========================
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-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Monday, June 8, 2015

AUR4

The AUR4 became accessible to developers today so I have just finished the porting of all of my currently mainated pacages over to it. These packages are as follows:

pstate-frequency
pstate-frequency-git
steam-wrapper
steam-wrapper-git

Any other packages that may have once been mine should now be considered orphaned as I have either no time to maintain them, or no will to do so.

I am also hoping to release QuickSwitch soon to the Market, but some theming complications and a conflict over the direction of the application, have so far prevented me. I will update again when I have deliberated on the proper application for QuickSwitch.

========================
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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Saturday, May 23, 2015

pstate-frequency updates

pstate-frequency work today. Updated it to handle some new arguments as well as handle errors better. The options "turbo", "max", "min", and "governor" can now handle string arguments as well as int arguments. This means that to set, for example, the powersave governor, you can do

  #   pstate-frequency --set --governor powersave

OR

  #   pstate-frequency --set --governor 0

* This assumes that the powersave governor is first on your system list of governors.

Entering an invalid governor name will print out the list of available governors along with their associated number values. The same print out will also work for the power plans.

The --turbo / -t option can now handle the words "on" and "off" as well as the values for no_turbo directly. It will change handling based on the pstate availability of the system.

The --max and --min option can now handle the  arguments "max" and "min" to set the CPU frequencies to the highest and lowest possible respectively.

More error checking has been implemented, and now non-numeric strings will not be evaluated to 0. So now, for example, one is unable to enter

  #   pstate-frequency --set --turbo asdajhsdadjasdk

and enable the turbo boost. This pstate-frequency program will instead catch the error and exit gracefully, cleaning up any used memory.

Currently all of these additions are only available on the "dev" branch, but once I test them further I will look towards pushing them onto the master branch.

========================
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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Tuesday, May 19, 2015

Open Source Applications

<rant>

It's a topic that has been bugging me in the past as its something that I have always wanted to do. But I can't for the reason that if I allow my source to be viewed and copied, it will inevitably end up on the web on some shady spam serving mirror. It will be patched to include malicious code. It will violate my users rights and privacy, and I cannot have that.

I have wanted to Open Source my Android Applications for a long, long time now. But what prevents me is the fact that if I create an project and host it at some Git*.com, I can be sure that there will be some kind of service which my rip my APK and charge users for it elsewhere, perhaps even on the Google Play Store. That doesn't sit well with me, as a random Joe could install this bootlegged application and not know what runs behind the scenes as long as it sort of works.

The problem will perhaps, never be solved. The current Google Play distribution model relies on trust. You as the user must trust the developer to not be a malicious, bad meaning person. You need to hope that the developer is competent, and able to design secure interfaces for your data. You place your full trust in the developer.

One can argue that 99.9% of people who use Android applications do not care, or know, or understand the importance of open sourcing code for programs. They don't know how to read, or understand code. Some struggle just to understand their own device for that matter. They don't care that they downloaded a questionable closed source rip-off because it works for them well enough. They don't know about the moral and ethical struggles behind development. They don't have the time to read over the entire source tree of systemd to see if it will work as a replacement init system. And frankly, they couldn't care less.

The sad truth of my (and many other developers') current situation is that the Android Market is the only reliable medium of application distribution. And the Android Market in its current state is not suitable for open source application distribution.

</rant>

========================
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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Sunday, May 10, 2015

Doing the things

QuickSwitch, the new button replacement application, is almost ready for release. The first release will be rather small, bringing basic features like Home Button, locking the device, changing the audio levels and ringer volume, changing the screen brightness, and toggling the device radios like WiFi and Mobile Data (for Android versions that support it). The application is small and will hopefully run on devices as new as Lollipop 5.1 and as old as Gingerbread 2.3.

Looking to get some screenshots or an interactive video up later in the week, 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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Tuesday, May 5, 2015

QuickSwitch

So after no activity last month I am updating again just to let you all know about a new application I am working on. QuickSwitch expands on the ideas behind Home Button and offers a full software replacement for almost all phyiscal device buttons, including the audio, and device lock buttons. The app is already working on a test device of mine and is lightweight and simple to use. I'll update more when more progress has been made.

========================
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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Tuesday, March 31, 2015

Updates

So SoftGlow is "pretty much done" (unless I decide otherwise), and I'm looking to put in into final bugfix testing in a couple of days, but time is tight and my energy currently is limited.

Power Manager is undergoing a large change with its next version, expect to see Material features, animations, shading, quicker interaction, and an all around easier experience.

Home Button is looking to receive a small bugfix update as well in the near future.

A fourth project I have been thinking of expands on Home Button's idea of a software button replacement, only it changes a couple of things. For one, the scope of the project will be larger. Instead of just the Home Button, expect to see other functions, like volume control, brightness, lock screen actions, and of course, the home button all emulated in software. Also instead of being a static notification, the interface to the application will be floating, like the overlay currently in Power Manager.

Maybe, maybe.

========================
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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Friday, March 20, 2015

Supporting Old Versions

First off, Old versions (API 10 Gingerbread) will still be supported by newer applications. But with the changes that Material brings there are many features, most importantly animation, that cannot be supported below API 15. While this sounds like an issue, as there are 5 API levels that are unsupported, there is only an estimated 6 percent of all Android users still running on an API below 15, and that 6 percent primarily consists of users on Gingerbread API 10. If you are one of those users I am sorry that you will not be able to take full advantage of the newer improvements, but I digress that I must continue to push for the adoption of new and improved Android versions, and creating applications which tether towards those versions over older one is one way to accelerate the push for Android versioning standardization.

tl;dr No animations for 15 and below, sorry!

========================
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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Monday, March 9, 2015

i3-wm and Tiling Window Managers

So over the weekend I switched one of my systems from OpenBox to i3-wm and so far have been enjoying the experience. I have used tiling managers in the past, starting with DWM and then AwesomeWM, but went over to OpenBox because I wanted to try out a floating manager. But as it turns out, for most use cases in OpenBox I would simply maximize the windows or part them to both sides of the screen, kind of like what a Tiling manager does automatically.

So why continue to use OpenBox then if all I am doing is manually tiling windows myself in a stacking manager. So I made the switch, and right now its a very minimal system I've got going on. But I'm enjoying my time and especially enjoy the fact that i3-wm has operating "modes" ala Vim. More on that maybe 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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Thursday, March 5, 2015

Power Manager released!

An update to Power Manager has been released onto the store, and you should be receiving notifications on your device(s) soon. The update brings stability improvements, fixes a nasty crash with a bad vesion of Google Play Services, and introduces the first implementation of power triggers into the application. The fixes introduced are of large importance, and the update is recommended for all users to please download and install as soon as possible. With the release of 4.4.0, Power Manager will go into a stability period, where efforts will be focused on other projects, and Power Manager itself will shift it's focus to the next version, which looks to implement a cleaner UI, the themes and idea behind Material Design, and a smoother and more reliable operation all around.

========================
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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Wednesday, March 4, 2015

Home Button

Home Button bugfix finally dropped as it took me a while to figure out what the problem exactly was. Initially, it appeared that the crash was happening in Android native code, so there was nothing I could do to fix it. Turns out it was a tiny bug in the Google Play Services package that caused a NoClassDefFound error. A simple fix and now we're rolling.

Power Manager is planned for the next week or so, although schedules will serve to decide when exactly I get around to finalizing it.

SoftGlow is going through a very long update process which I apologize for. There was a lot of cruft in the original release and I feel like this update merits a lot of work hours that are being put into it. Seeing as the last version was released about five months ago, I want this next version to really shine with its polish.

========================
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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Thursday, February 26, 2015

Power Manager Enters Final Testng

The Power Trigger implementation should be completed in the next couple of days, meaning that Power Manager 4.4.0 will be entering a feature freeze in preparation for its release. After the freeze, I will only be fixing bugs, not adding any new features to the application. Development efforts for Power Manager will then be focused on the next version, which will bring a new visual theme as well as smoother interface and faster operation.

SoftGlow is still going through some rougher testing as I decide the direction I want to take with the application, though I believe I will figure that out soon.

Home Button is getting bugfixed for an occasional crash (that actually has to do with Google Play Services, not Home Button itself) that should be released soon as well.

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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Wednesday, February 25, 2015

Something something

The plan. The plan is.

After Power Manager updates to include Power Triggers, it will basically be stablized and the feature work will be frozen for a time. Work will then be focused on the next version of Power Manager, which I hope to be cleaner looking, more animated and faster, and smaller on memory.

But BEFORE that can happen, SoftGlow will be patched to stabilize both the included features and work towards the addition of new features like better time management for the amount of tint applied to the screen.

And a small patch for HomeButton that can help resolve a "maybe" issue, which I have been unable to reproduce but have received a couple of reports about.

========================
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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Monday, February 23, 2015

Using Android as a SOCKS server

Yeah as a server. Why? There were plenty of pages floating around the web which said how to connect your Android to a SOCKS server, but very few told you actually how to use it as the server. So this is what I'm going to try and explain.

First let me state why I found this neccessary. My phone carrier disables the use of mobile data through a USB tethering setup except in the event of the user purchasing a "mobile data tethering plan". As a result, when I connect my device to a laptop and enable tethering, the laptop does not receive a network connection. So I set off to try and get around this limitation by tunnelling through a SOCKS server that I would host on my phone, therefore making it appear that the Android was making all of the web requests: no tethering plan needed.

By setting up a SOCKS server, you can use your phone's mobile data to power the network of your other systems, including a laptop which otherwise does not have any other connection to the network.

Essentially the setup is as follows:

Tether your Android by USB to your system.
Get an IP address on your system.
Get an Android SSH server application
Start an SSH server on the Android device
Start a SOCKS server off of the SSH server
Connect from your system to the SOCKS server and bind to a local port
Proxy any connections (browser, mail) through the local bound port.

So here we go.

Tether your Android. Google around if you need to know how to do this, as explaining it will be out of the scope of this post.

Once your Android is tethered, get an IP address for your system, either statically or dynamically. I used a simple dynamic address for this, using the Linux dhcpcd program. On other operating systems (and Linux distributions) the command will vary, so dig around.


NOTE

This post is written only with functionality in mind. It is up to you to figure out the necessary security measures for your specific setup. Some of the steps here may be insecure, or leave you visible to eyes on the Web. I will not be held responsible for your failure to adhere to good security practices.

Now the good stuff.

First you are going to need an SSH Server for Android. In this case, I used Servers Ultimate Pro which was free on the Amazon app store a few months back. You first need to open Servers Ultimate. Keep in mind this was written for version 6.3.10, though it can be applied I'm sure to other versions as long as they support/supported SSH and SOCKS servers. For this, you'll also need the free Server Pack E, which adds support for SSH.

Once inside the application, navigate to the "Servers" tab. Click the Action icon "Plus" to add a new server and select an SSH server. Name the server, give it a (random) port, and make sure that atleast the "Enable Shell" option is selected under the Protocol section in the "Specific" tab. You can also take the opportunity to add your own public key, if you know what that is, although the how to for doing that is out of the scope of this post. Click the save icon and you should be good to go.

Add a second server and make it a SOCKS server. Give it a (different random) port, and that's fine as well. Click "Save" and be on your way.

Click the Play button in the top rght of the "Servers" screen to start your SSH and SOCKS servers. Woohoo!

Now at this point you should have and know the following four things:

An IP Address for you Android Device which is tethered to your system, android-ip
An IP Address for your system needing Internet, system-ip
The port for the SOCKS server, lets call it socks-port
The port for the SSH server in general, lets call that ssh-port

Add one more thing to your list, which is the local port to bind to. Though the default is 1080, for the purposes of explination I'll be using a different port, called bind-port.

Now the part which may unnerve you if you aren't too command line familiar (although why would you be looking for SOCKS server setup instructions). You will ssh from your system to your Android. The command will look something like this:

    ssh -L <bind-port>:<android-ip>:<socks-port> -p <ssh-port> <android-ip>

    ssh -L 1080:192.168.0.111:1080 -p 22 192.168.0.111

alternatively you can use the dynamic port option instead:

    ssh -D <bind-port> -p <ssh-port> <android-ip>

    ssh -D 1080 -p 22 192.168.0.111

This will do the following:

Request an SSH connection to android-ip on port ssh-port. Once connected it will forward the local port bind-port on your system to the socks-port on the Android system. Now you've hacked together a SOCKS proxy for your system from an Android server.

At this point, your proxy is located at localhost:<bind-port>. Some programs have SOCKS proxy support built in, in which case you're good to go. For those that don't you may be able to pass the proxy as an argument to different programs for them to be able to use it, for example:

    google-chrome --proxy-server=socks5://localhost:1080
    curl --socks5-hostname localhost:1080


Finally you can create a configuration file in $HOME/.ssh/config which can contain something like the following:

    Host <proxy-name>
    Hostname <android-ip>
    Port <ssh-port>
    DynamicForward localhost:<bind-port>

and then you can connect to your proxy using

    ssh <proxy-name>


Using this, I was able to pull system updates, git updates (and push), emails from a Thunderbird client, and browse the web on Google Chrome and Firefox, without any WiFi connection or Ethernet connection.

And all without a mobile data tethering plan too.


NOTE

This post is written only with functionality in mind. It is up to you to figure out the necessary security measures for your specific setup. Some of the steps here may be insecure, or leave you visible to eyes on the Web. I will not be held responsible for your failure to adhere to good security practices.

Your mileage may vary.

========================
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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Thursday, February 19, 2015

Handling Power Triggers

I'm wondering how to go about doing this.

Should I allow triggers to have the same names, or limit names to be unique only? Do I allow the user to leave a field blank and have it auto-populate, or do I force you to fill in everything? What to do, what to do.

Also, big update for pstate-frequency. Cleaned up all the ugly (lazy) exit calls, so now the program should exit without any memory left over. Refined the automatic power plan logic and removed the old crusty log interface. Number of allocations has been reduced significantly, takes very little memory now. Speed of execution has also been increased, which is always good, although the tool is arguably already fast enough.

More things as they occur.

========================
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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Wednesday, February 11, 2015

Reflection

Let's talk about reflection and "private" APIs.

Power Manager uses this specific snippet of code to be able to toggle Mobile Data on (almost all) Android devices. Up until Android Kitkat(4.4), this was a perfectly working, albeit ugly solution, which used a feature of the Java programming language called "reflection":


/*
 * Get the state of mobile data
 * returns false if disabled, true if enabled
 */ 
public final boolean getMobileDataEnabled(final Context context) {
    final ConnectivityManager manager = 

        context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    final String methodName = "getMobileDataEnabled";
    final Method getMobileData = ConnectivityManager.class 

        .getDeclaredMethod(methodName);
    method.setAccessible(true);
    return (Boolean) method.invoke(manager);
}


/*
 * Set the state of mobile data
 * true enables data, false disables data
 */ 
public final void setMobileDataEnabled(final Context context, final boolean state) {
    final ConnectivityManager manager = 

        context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    final String methodName = "setMobileDataEnabled";
    final Method setMobileData = ConnectivityManager.class 

        .getDeclaredMethod(methodName, Boolean.TYPE);
    method.setAccessible(true);
    method.invoke(manager, state);
}
 

This ugly reflection solution was all that a developer could do to work with the mobile data on an Android device, as there was no public API available for standard use. Was reflection good? No. It was a hack to get around limitations, it was unsupported on some devices, and it could disappear with no warning. But reflection was all we had as developers. And it stuck around on Android for the first 19 versions, all the way up to Kitkat 4.4.

In the new Android, Lollipop (5.0), all of this has changed.

There is no way to access or modify the state of the mobile data connection in Android Lollipop.
No way at all*. Any developer looking to perhaps, save power by toggling the state of mobile data on a device, will have no way to do so on Android Lollipop, and there is nothing that anyone can do at the moment.

With the growing adoption of Android Lollipop, I would just like to make this knowledge known in the hopes of avoiding angry users who do not understand why they can no longer use Power Manager or other related applications to toggle the mobile data of their device any longer. If you boot up one day to find Lollipop on your phone, and Power Manager no longer works to toggle data, please understand that I am powerless to do anything about it.

*Technically, there are system-accessible methods which do exist to change the state of mobile data, however, they are unusable by normal applications. See Android Issue tracker (78084, 81091).

========================
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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Ads

There's going to be a couple more Ads in applications now, unfortunately. I have added non-intrusive Ads to the places that I deemed to be the most logical, the bottom of the Activity and the bottom of the Notification. The Ad is small and you will most likely not notice it, that being said, if you WOULD notice the Ad, it would be of great help to me.

I am conflicted about adding more Ads into my application, as I myself do not like Ads, and even go so far as to run an adblocker on my own websites. I do not want to cram ads into the faces of my users, which is why I am so hesitant about additional ads in applications, so I have made sure that the ads do not distract from the actual usage of the application. I have added only one more ad to Power Manager as of this writing, which will bring the total count of ads to 1 in Home Button, 4 in Power Manager, and soon to be 4 in SoftGlow.

Buying the Pro key versions of applications will remove all traces of Ads from the application experience.

Being vigilant and ignoring them as I have done may however be more your style.

At the end of the day, it is your choice as users to use my applications, and I will fully understand if the addition of more ads to an arguably ad filled application causes backlash in my audience. If you choose to leave, please leave me a comment on the application page, and I may decide to rethink the ad usage in my applications.

========================
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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Tuesday, February 10, 2015

Website updates and other things

So the website is, for the time being, all white and grey.

I'm thinking of customizing the template, but seeing as this takes time, I've opted for the time being to use basically the simplest Blogger template ever. So there's that.

Also I've added tab links to a couple of pages which serve generally as place holders, but in the near future will be fleshed out to display in depth information about each and every one of my Android applications, GitHub projects, ArchLinux AUR packages, and whatever else I suppose I get my hands on.

Give 'em a click-click and make sure they go to proper, valid addresses.

More to come soon, 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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Monday, February 9, 2015

Update of rather small importance

But dang it if didn't take some work.

pstate-frequency has been updated to better set your p-state frequencies.

I know.

I know.

The commits in question add support for displaying debug messages throughout operation so you know exactly what's going on behind the scenes, suppressing all non error output, and even an extreme setting which stops pstate-frequency from (hopefully) displaying any output at all. EXCEPT. For if you miss an option, you will still get that annoying option printout about invalid options.

GAH.

But anyway, lots of small changes accumulate to bring one big change in the end. Code on the dev branch ugly's up the code a bit more to reduce the number of dynamic allocations in the code from around 900 to only 500 (effectively half). That being said, pstate-frequency on even its ugliest day should still be quick, light, and robust, so these changes are more for me to not pull my own hair out.


HOPEFULLY ANDROID.

Maybe in the next couple of days.

========================
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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Hopefully Bugfix

The theme of this episode is hopefully.

A small update was pushed out today which hopefully fixes a crash that some users were experiencing in Power Manager and Home Button. Though the crash was vaguely defined, it should have been patched with the removal of a legacy class implementation. This being said, as the problem was only observed once on my developing device, I am unable to claim that this problem is completely fixed, only that progress has been taken towards attempting to patch it. If any problems persist in the coming days please, please, submit the crash report. It does not send any kind of identifying information to me, all I receive is the actual code that was running on the device when my application crashed. It is a great help as it not only lets me see what it going wrong, but alerts me to the fact that there is a problem present in the first place.

Submit your reports please!

========================
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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Tuesday, February 3, 2015

Power Profiles

Its trickier than I thought it would be, power profiles that is.

They're coming along, I hope to have them in a basic (beta) state by the next minor version release. It will most likely come with a disclaimer that while working, the feature is not very tested and may cause some problems. As such, for the first couple of releases, please utilize this feature at your own risk.

Other updates include more performance, and a fix for a crash that seldom occurred but was very annoying for some users.

SoftGlow is getting a slight UI makeover, and progress on the game is coming along. I'm going to be using libgdx to program the game, so I'll see how that goes as it progresses.

========================
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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Wednesday, January 28, 2015

steam-wrapper and Linux performance

Currently Steam for Linux is only officially supported on Ubuntu. This means that Valve is only obligated to really provide support for Ubuntu systems running some flavor of version 12.04. Of course, this has not stopped almost every distribution from adopting Steam into their repositories and adapting the install and other scripts to work on other distributions. The performance on these distributions however, can sometimes be questionable.

Steam provides a runtime which is used for compatability accross a wide range of distributions, using libraries that are standardized to stay in line with Ubuntu 12.04. This allows systems running older libraries like old Stable distributions, and bleeding edge distributions with newer library versions to all run Steam with a similar experience: standardized library versions.

On many systems however (Debian, ArchLinux) the Steam runtime links to a version of gcc that can be outdated or provides less than optimal performance. To remedy this, a couple of files can be removed from the Steam runtime to cause the system to fall back on the native built ins, which are reported to provide increased performance. Some users even choose to go so far as to disable to runtime completely using STEAM_RUNTIME=0, making Steam run entirely on native libraries.

steam-wrapper is a generic bash script which attempts to remove the stale or outdated gcc libraries and then passes relevant arguments to run Steam. It provides an easy way to set the runtime and other variables for Steam. And although it is purely made for convenience, because it may help those who were unaware of library issues or other conflicts, I have decided to post it on GitHub under the name pyamsoft/steam-wrapper. It may help you, it may not.

If for any reason you are experiencing problems with Steam and wish to restore the runtime to its default state and not have to reinstall all of steam and your games, you can launch Steam from the command line like this:

steam --reset

which will reset the runtime back to the default.

Woohoo!

========================
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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Thursday, January 22, 2015

Small Things

My attention span, for one.

But also, small updates pushed out today. Home Button and Power Manager. Tasty little animations added to both, lots of bugfixes in Power Manager, and a couple of refreshed visuals to top it all off. This should hopefully fix the issue with radios randomly turning off, as I've had mine running fine for a couple of weeks now. But like always, fingers crossed. It seems like every time a new feature is added onto Android, or a new device announced, new bugs appear in things that I always assumed would work. Oh well.

Hardcore SoftGlow work, as I've wanted to release for a while now but never could quite get it finished.

Also one big thing. pstate-frequency has been rewritten to use C++ cause I find it a bit easier to expand upon and handle new interfaces with.

And after that, perhaps a game.

Who knows.

Well.

I do, but. Still.

========================
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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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

Wednesday, January 7, 2015

Cruft Cleanup

Got a lot of work done today on various things.

Power Manager

Added animations to transitions between fragments. Ooh. Ahh.
Visual correctness when transtioning between application states.
Thread safe code for manager interfaces.
Better handling of precision screen events down to millisecond accuracy.
Performance increases.
Memory usage improvement.
The color blue.

SoftGlow

Added extended screen options, ridiculous range for screen dim. To the point where things are starting to get too dark to be visible.
Floating Action Button because woohoo material design

Home Button

Added better handling of startup options. I know.
Couple other fixes.

pstate-frequency

Better handling of automatic power profiles. Smaller memory, lower number of allocations (significantly lower), reduced file accesses, reduced code depending on compile time options.

Woohoo


========================
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: http://pyamsoft-official.blogspot.com/

Check out my Android Applications
Check out my Github Repositories
Check out my AUR packages

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