Category Archives: Uncategorized

Android Storage Wars

If you have ever tried your hand on coding for Android you certainly have found google’s JAVA based API to be somewhat of a incoherent mess in certain areas, which over time has evolved into an even larger incoherent mess in even more areas.

One of those messy areas is that of the android secondary storage API. All phones have a primary storage area, where you can store images, videos, apps, and application data, and some phones come with a secondary storage option. The API to gain access to the primary storage has evolved over time but allows you to seamlessly integrate proper functionality into your app.


Now you may assume that the Android secondary storage would follow the same paradigm, and grant the same access as the primary storage to your app. However you would be wrong making this assumption. The reason you have apps like the “ES File Manager” handling this for you seamlessly is purely through tricky code in the background which circumvent googles protective scheme for secondary storage, Aka a hack.

Dont do evil … yeah right!


Yes, google in its drive to push people into using their cloud storage is actively pressuring phone makers to get rid of that large secondary storage, or worse the micro-SD slot. That overarching goal of google is driving the API and the access rights to the Androids secondary storage media in a negative way.

Let’s start with a small bit of terminology. Since the dawn of Android, nearly every type of storage has been considered “external storage” even the non-removable flash memory that comes in every device. To distinguish, the non-removable flash memory is called “primary storage”<, while a removable micro SD card is called “secondary storage”. In the early Android versions, an app merely needed permission to WRITE_EXTERNAL_STORAGE to be able to fully access both primary and secondary storage.

In March, 2011, a drastic change to Android was made which changed how secondary storage mediums (external SD cards) were mounted by the Android OS. Specifically, the commit read like this: “Mount secondary external storage writable by AID_MEDIA_RW rather than AID_SDCARD_RW.” This meant that the media would now have to belong to the “media_rw” group to modify the contents of the SD card. As a result, a new permission, called WRITE_MEDIA_STORAGE, was added to the source code. Basically, WRITE_MEDIA_STORAGE replaced the original WRITE_EXTERNAL_STORAGE.

This change has a devastating effect on apps trying to utilize secondary storage because from now on forward only system apps could request the permission to read/write to the external storage ( I.e. sdcard ).

Android secondary storage

Since the WRITE_EXTERNAL_STORAGE permission could be used by any normal app and thus any app can write to the primary storage but not to the secondary storage (external micro SD cards). The WRITE_MEDIA_STORAGE permission could write to the external micro SD card, but regular user apps could not request the permission. This change took place on Android 3.2 Honeycomb, but due to the logistics of hardware and storage mediums at that time, it was barely noticed.

Quote: “Starting around the time of Android 4.4 4 KitKat, and even a little earlier, the implementation of the userspace FUSE filesystem, in conjunction with changes to the open source code, resolved this problem. Yet, still to today, even with Android 8.x.x Oreo, third party apps must explicitly get the user’s permission for both primary and secondary storage before the app can alter either storage medium in any way. And of course, the newer concepts of adoptable storage have alleviated problems in this regard.” — end quote.

Bottom line

Thanks to google the way that most apps now handle android secondary storage heavily depends on the Android version being used. Unfortunately at this time most phones will have a hard time working with the secondary storage, but some phones do. I have updated the file browser integration into my apps and have fixed the issue of secondary storage on some Android versions and not on others.

This whole debacle has not only cost me weeks of effort and research, it has negatively affected all apps with file system access and is the main reason that almost all apps only storing their data on the primary storage, which in most cases is much smaller than the external storage. At this tmie you can get a cheap microSD card with up to 512 GB. However what good is this in your phone if most apps can only use the built-in 16GB ?

Crypto Portfolio app

Keeping track of your overall Crypto Portfolio is not as straight forward as it should be. Investing into crypto currencies can leave you with multiple wallets and online resources. Each one may contain different coins and tokens for different purposes.

It is highly recommended to store all ( or as much as possible ) offline, detached from the internet. This way hackers won’t be able to get their fingers on your hard earned Bitcoins, Ethereum, etc.

I have started to look into Crypto currencies in early 2018 and I see great potential in the basic ideas behind the technologies. While my timing was especially bad I wanted to know what the fuzz was all about. The best way to understand things though is to start playing with them. So I did spend some time and money learning a new technology.

Shut up and take my money

Shut-up-and-take-my-money
Shut-up-and-take-my-money

You need to sign up with and exchange when you want to buy some coins or tokens in order to convert your dollars into a crypto-currency. With Coinbase being one of one most popular which people would recommend for n00bs.

Coinbase allows you to convert to deposit funds using your credit card or your bank account information. Paypal is no longer supported. You can then exchange your fiat currency ( I.e. Dollars, Euros etc. ) into Bitcoin, Bitcoin Cash, Etherium, or Litecoin. Any other crypto currency requires you to sign up with another exchange of which there are many to choose from.

Coinmarketcap.com, and coincap.io provide you the information as to which exchange supports the crypto token you are interested in.

Binance is one of those larger exchanges which has received good online reviews and has supposedly the lowest transaction fees.

Getting your hands on some crypto coins or tokens also requires you to safely store them somewhere. Here we have probably one of the weakest points in this area. Every crypto-currency has their own way of storing the tokens. You can keep them on your computer, in an online wallet, in offline wallets or as a paper wallet. You will quickly arrive at a point where you can lose track of your virtual wealth ( or as we have seen recently, the decline thereof ).

Crypto Portfolio

So I wrote a Crypto Portfolio app which will allow you to enter your token amount and then look at the market data for it. I will not store this information on the server but instead store it in your browsers’ cache so you don’t have to fear releasing any data to my servers.

One thing I quickly realized is that almost everything you do in crypto will cost you either a fee or a transaction cost.

Binance fees

So yeah Binance has a 0.1% trading fee however one thing which you will not see right away is that you will not be able to convert all of one crypto token into another crypto token.

Binance will always leave you with some leftover on their platform. These may vary but my worst case leftover position is worth about US$1.00.

On top of that Binance also requires a minimum transaction for certain coins. E.g. you require at least US$97.181- ( as of Feb 2 2018 ) in Etherium before you can transfer it out of Binance.

Then you have to pay for the actual transaction fees which for Etherium ar 0.01ETH, which is … well about $9.71 as of this date.

Since Binance does not display this information in a useful way I went ahead and added this into a table in my little app which you can sort to gather some more information on trading conditions of a certain coin. [ Menu -> Utils -> Binance Fees ]

So you add this all up and you end up spending a lot of money in the whole exchange process.

If you exchange E.g. $100,- by the time it leaves Coinbase you are down to about $97,- Then you exchange it for ETH on Binance and send it back to your private wallet, you end up with only about $85,- worth of ETH.

This of course does not take into account the huge market swings, which could increase or decrease your position a few percentage points in the time it takes to go through the whole operation.

To sum it all up

First though I have to remind you that; yes it is possible to lose money, which is why you should never put in more than you can afford to lose.

This app is in its early stages and I will certainly add more features as time permits. Please feel free to check it out here …

Please leave me some feedback for enhancements if you find it useful. Or follow the link below to the source code, make changes yourself, and then send them to me for integration 🙂

Resources

Graphing library used : NVD3 Re-usable charts for d3.js

If you click on the image below you can start using the app online from within my WebOS.
You can find it under [Start -> Utils -> Crypto ]. Note: This app does not send any data back to any server.

Feel you want to play with the code: follow the link to the Battlefield.

Startup ignite November 2017

Today I went to one of our local startup incubator called startup ignite.

Startup Ignite Flyer
Startup Ignite Flyer

The Meetup was originally started by Amu Fowler in ? 2014 ? And over the years I went to a few of these meetings on and off. I find it very interesting to meet new people, and see what ideas or dreams they have.

Meeting Amu at the Ignite Meetup
Meeting Amu at the Ignite Meetup

The Place:

This months Meetup was focused on patent on general and how they retire to a startup. You can find a link to the video below.

NOVA-Labs Logo
NOVA-Labs Logo

It was held at the NOVA-labs facilities in Reston VA, which in itself is another very interesting space to discover. I have a few projects which could use a 3D printed Chassis or use some of their tooling or build a 12ft tall Optimus Prime.  But I leave this to another time.

NOVA-Labs mad science going on
NOVA-Labs mad science

The People:

In the past I have mostly met and talked with people who were in the ideation phase or in the very initial phase of building a prototype or advancing their ideas. This time around I met a few folks who were in beta testing ( rukku.io ).

I had also a very techie talk with Keith Fowler, who is one of the organizers and likes to talk about programming languages probably add much as I do.

The good, the better, and the best:

Overall the Meetup was about twice the size since the last time I went and the content of the speeches and presentations were at a great level. I can only recommend to go and visit one of those meetups if you are ever in the greater northern Virginia area.

Maybe it’s just me, maybe it’s the free pizza or maybe it’s the flair of the startup scene … but whatever it is, you will leave the place with a great satisfaction and who knows you may catch the startup bug.

Startup Ignite crowd
Startup Ignite crowd

Results from Fiverr for a new backdrop

I needed a new backdrop image for my YouTube Channel and while I was trying to come up with a good idea I wanted to see which results from Fiverr I could expect.

Fiverr
Fiverr

So at first I wanted to try the “Request a Gig”. However I did not appreciate that this feature is a curated feature and my request was rejected the next morning for some technical reasons. Obviously I sent in a support request because I wanted to understand what I had done wrong.

In the meantime I went ahead and was looking through the hundreds of designers who offered their services. This took about two hours of my time, which is exactly the reason I sent out the Request a Gig – request in the first place.

eventually I found a designer who had good reviews and was not asking for US $2800,- but a more reasonable $5,- for Basic, $15,- for standard, and $30 for the VIP package. Since I did not need VIP treatment but at the same time I though $5,- was on the cheap side, I went ahead and requested the $15,- standard package.

However I wanted to get at least one or two ideas / samples from him before I placed my order to avoid working with some one who is on a completely different train. So I contacted him, send him my requirements, and was surprised to see about 30 minutes later 4 screenshots with initial design suggestions.

Out of those I found one design which I considered a good starting point. So I asked him if he is willing to make some changes and replace some of the elements in the image with others. Wow, within about 15 minutes he had applied my changes.
I was impressed and wanted to place my order but he insisted that I first had to be happy with the results before I placed my order. I thought he wanted to avoid bad reviews, and as long as you don’t place an order I guess you can send a bad review ?

So anyways, long story short, it took a few hours back and forth, me on my smart phone, and he on his computer to eventually arrive to the image below.

Results from Fiverr

Backdrop created with Fiverr.

I was really happy with the results from Fiverr, and went ahead, placed my order and he sent the Adobe Illustrator file plus some rendered JPGs. However I found out that Inkscape on Linux would load the whole source file as a single Layer which was not what I wanted. So I asked him to send me the file as an SVG, which he promptly did, though yet again I could only see a single Layer.

I went again back and asked him to provide me the layers in separate layers, which he uploaded right away. All in all he provided me
12 layers
which I could then import in The GIMP in separate Layers and render to my liking.

Results from Fiverr

Overall this was a great experience and after I acknowledged the reception of my goods Fiverr offered the opportunity to give him another tip, which I gladly did.

All together, including tips and fees, I spent $27,- on the image and I had a great experience.

I have to say though that Fiverr is taking a bite out of you if you end up going for the $5,- Fiverr is charging you $1,- for a gig, Wich amounts to a whopping 16.66% of the total cost.

I will be going back and get some more artwork done for my SoftwareSamurai blog, or my YouTube Channel

Ordering a new TV

Going through the process of getting a new TV is always a stressful situation.

Wall Mount:

With our kitchen remodeling we were also in need of placing a TV over our fireplace. So the first search was for a proper wall-mount.
Finding one which fits the bill but does not bust the wallet was no easy feat and I finally ended up getting the AEON-5030, Pull-Down over Fireplace wall mount.


Pull down TV mount for fireplace - Aeon 50300

The Television:

Now this only took me an hour or two. Looking for a good TV on the other hand is a completely different beast. I wanted to get a 60 inch TV as 65 inch was too big to fit, and 50 inch seemed small by today’s standards.

So off I went to look at Walmart, BestBuy, Costco, Target and so on. Here were some of my requirements I was looking for in the new TV

  • 60 inch screen size
  • less than 60 pounds
  • 4k UHD resolution
  • Should be below $1000,-

Interestingly after some hours of wandering in the marketing forest, looking at different models of different brands, I found only one TV which fulfilled all of my requirements.

The LG 60UJ7700.

LG UJ7700

We picked our TV up at a BestBuy nearby for less than my set target of $1000,- and I am very excited about our new living room decor. I recommend you check out the LG 60UJ7700 at a store nearby, or if you like you can follow the link below and get one from Amazon.

AMAZON Affiliate link:

Now let’s talk some tech:

SUMMARY
Size 60 inch IPS display
Resolution 3840 x 2160
Display Type 4K UHD TVs
Display Format 4K UHD 2160p
HDMI Port(s) 4 (HDCP 2.2)
2 USB, 1 RF In (Antenna/Cable), 1 Composite In, 1 Component In, 1 Ethernet, 1 Optical
Operating System webOS 3.5
Active HDR with Dolby Vision™, Wider Color Gamut, Ultra
Natural Voice Recognition Yes

DIMENSIONS / WEIGHT
TV without Stand (WxHxD) 52.9” x 30.6” x 2.5”
TV with Stand (WxHxD) 52.9″ x 33.3″ x 10.7″
TV Shipping Dimensions (WxHxD) 58.7″ x 34.6″ x 6.9″
TV without Stand Weight 45.9 lbs
TV with Stand Weight 46.7 lbs

Review:

The LG 60UJ7700 features WebOS 3.5, the newest version of WebOS. As we know, WebOS is a smart TV platform which has a lot of low-level options but it still offers simple navigation. The user interface and layout is also designed attractively with strip bar at the bottom of the screen contains quick access to most of popular apps. Additionally, its performance is fast and responsive. Once an app is launched, the loading in time is very fast. Additionally, selecting between apps or multitasking also feels very responsive. Meanwhile, talking about apps provided, there are plenty of interesting and useful apps available. There are VoD apps like YouTube, Netflix, Amazon Videos, Hulu, Google Play Movies and more, web browser, LG Contents Store, Social Networking, and many more.

LG Magic Remote
The Magic Remote comes as the controller for the LG 60UJ7700. Like previous versions, there is a built-in microphone for voice navigation. The remote acts as a “point and click” input device which functions like a mouse on your PC. This certainly makes entering text, surfing the internet, and other navigation easier. However to fully enjoy those activities a external, physical keyboard with trackpad would do much better.

The use of an IPS panel causes black level and contrast produced by the LG 60UJ7700 to be weak, however this allows the LG 60UJ7700 to have a very wide viewing angle which is far better than TVs without IPS panels. This means the picture quality will look more consistent when the TV is viewed from the side.

Now as you can see from the picture below, in our case that won’t make a whole lot of a difference to us but it is worthwhile noting.

Construction Site
Construction Site

I will post some more images once we put this one up on our wall.

Spam-Me-Not

Whow, I just started this blog and not even e week into it I saw my first wordpress spam.

On my article DyGraphs Pie Chart Plotter I received the following comment.

To mitigate errors in throw ratio calculations, projectors with zoom
capabilities and lens shift are highly recommended.
You will find the projector machines in any lead store.
You should also consider something which will support DVDs as well as Blu-rays since
few of you will have gotten around to rebuilding your film collection on Blu-ray.

This seems to be a wordpress spam but what does it mean ?I googled for the first sentence and I found 8 occurrences of the exact same sentence, followed by other sentences, which taken together made no sense.

For example the following nuget from a chinese forum:

An Analysis Of Foot Streaming Advice
Learn about Some of the Best Home Theater Seating Manufacturers
The late NFL Playoffs 2015 live stream and TV game time on Saturday will feature the first in the NFC Divisional matchups because Panthers vs. Seahawks is featured. Cam Newton attempt to steer his team to a major upset over Russell Wilson and also the defending Super Bowl champions. The winner moves on to experience either Dallas or Green Bay in the NFC Championship round. Which team are able to advance past this matchup within the latest live streaming and televised NFL playoff game?
Netflix was originally conceived like a DVD delivery and rental service that permitted you to order DVDs web you can keep them shipped to your property. You could easily mail them back, get more from your specified Queus list within a couple days, and make them being released and in a cycle. Then Netflix developed their Instant Watch feature, that has been a lot more movies and television shows that might be watched \"On Demand\" through their site as streaming video. Not only was the Netflix Instant Watch great for watching films from the computer, it could even be integrated on to your TV with gaming consoles and Apple TV and in many cases in your iPhone while using Netflix iPhone app. The Netflix service doesn't only have to watched through the website in any way and now you can even integrate it while using Windows Media Center as Microsoft has included it like a built in option.
BYU features Tanner Magnum, who spent his last two years with a mission in Chile. The 22-year-old stepped looking for injured starter Taysom Hill, when the quarterback suffered a season-ending foot injury. Magnum was the hero in the game, tossing a last-second touchdown to help you give his team the 33-28 miracle conquer Nebraska. Magnum delivered more magic last weekend against No. 20 Boise State, throwing a 'go-ahead scoring' pass to Mitchell Juergens with just 45 seconds to go. That pushed BY on the 35-24 victory over then-ranked Boise State.

The critical aspect in a ceiling mount video projector is positioning. Different projector designs include unique throw ratios, which is the relationship between projector distance and the width with the screen. Throw ratios are usually 1.8 or 2.1 to, which suggests 1.8 feet of throw distance for each foot of screen width. To mitigate errors in throw ratio calculations, projectors with zoom capabilities and lens shift are highly recommended.
1. Enroll yourself in an affiliate program determined by what you need. Affiliate marketers are among the high earners in terms of work from home jobs. You can earn approximately $5,000 to $10,000 or maybe more every month; you may want some serious working out for this. There's a lot of techinicality using this type of kind of position, but a great deal of risk of online marketing. There are training programs that you can enroll to online, with this particular you are able to enrich your understanding on your own niche and creating your blog post or site. Thus type of business is very technical, you have to learn SEO and increase your online skills to produce your website competitive; there isnrrrt a real have to devote to it. Before enrolling yourself into just as one online marketer, you must research about the companies; ask around for it's reputation if they are promptly whe it comes to paying. Analyze if your offers are reasonable or if it's too good really was.
Should you adored this article along with you would like to acquire guidance with regards to voir le match kindly go to our site

I believe the reason these comments are sent is so that the original poster creates a higher visibility to the search engines. I am not 100% certain but I may do some more research on this at some later point in time.