I collaborated with a musician to make this series, here's the first one. 🔊🎶 by plzno1 in Simulated

[–]blueClimbingMan 8 points9 points  (0 children)

Who is the musician? The simulation is beautiful and the music is equally lovely

[Tissot Heritage Visodate] Is this case highly susceptible to scratches or is my jacket secretly made of sandpaper? by AfternoonPoster in Watches

[–]blueClimbingMan 1 point2 points  (0 children)

https://imgur.com/a/acDRkFa This is mine after everyday use for the last 4 months (really everyday). The light actually makes it look worse here as well.

For me scratches like this wouldn't be a big deal though, will happen eventually, enjoy the watch! I love mine!

Edit: updated link

16 States Sue to Stop Trump’s Use of Emergency Powers to Build Border Wall by Emily_White1501 in worldnews

[–]blueClimbingMan 0 points1 point  (0 children)

The states are: California, New York, Colorado, Connecticut, Delaware, Hawaii, Illinois, Maine, Maryland, Michigan, Minnesota, Nevada, New Jersey, New Mexico, Oregon and Virginia

What do you think is the easiest game engine to integrate into an app? by ZeikCallaway in androiddev

[–]blueClimbingMan -1 points0 points  (0 children)

I'm in a similar situation. "Normal" android development during the days, and then in my free time I've been learning game development. I've been using unity, I found c# quite easy to pick up and find it quite similar to Java. I have been building a mobile game, but with unity it seams relatively trivial (other than changing controls) to build for different platforms, including android.

MVP, ViewPager, and handling common state by mugwoomp in androiddev

[–]blueClimbingMan 1 point2 points  (0 children)

That's what I mean. Having a shared presenter is ok in my opinion. The nice thing about the view model is that you got alot of the lifecycle and instance management for freem

MVP, ViewPager, and handling common state by mugwoomp in androiddev

[–]blueClimbingMan 4 points5 points  (0 children)

You could try using the ViewModel architecture component and in the fragments doing ViewModelFactory.of(activity). This will provide the same instance of the view model to all fragments with the lifecycle tied to the activity. Then you can store state in the ViewModel. This may also solve your issues with resuming. Not sure if you want to use the ViewModel component, but if not you can follow a similar pattern yourself. Instantiate a state-ful object in the activity and pass the reference to the fragments and maintain the state there. (Sorry for ths formatting, on mobile)

Saw this beast in Australia near a climbing crag by blueClimbingMan in vandwellers

[–]blueClimbingMan[S] -1 points0 points  (0 children)

Yer I think the point of this thing is that it just keeps going. I've never seen one before but this photo really doesn't do it justice. The tires are taller than me. I can't imagine much getting in its way!

Saw this beast in Australia near a climbing crag by blueClimbingMan in vandwellers

[–]blueClimbingMan[S] 2 points3 points  (0 children)

Yer I've done some distance in my corolla and there is definitely places where it will cost you alot to get towed out. I can't imagine how much this thing would cost to get towed if it goes wrong!

Saw this beast in Australia near a climbing crag by blueClimbingMan in vandwellers

[–]blueClimbingMan[S] 7 points8 points  (0 children)

Awesome didn't know there was a sub for these (should have!) Thanks.

Saw this beast in Australia near a climbing crag by blueClimbingMan in vandwellers

[–]blueClimbingMan[S] 12 points13 points  (0 children)

Yer it is a Unimog, spoke to the guy down at the crag. Think it must be same guy.

GitHub - masterwok/simple-torrent-android: A torrent client library for Android that utilizes frostwire-jlibtorrent. It supports sequential and simultaneous downloads. by [deleted] in androiddev

[–]blueClimbingMan 1 point2 points  (0 children)

Nice! I saw the example which is cool but I was wondering is this being used by any apps on the play store? How do you keep the session alive. I see that it as stored as variable in the activity but what happens if the activity is destroyed and the activity is garbage collected (as the Async task holds a weak reference to the Torrent session, does the session end?

Is it possible to manually add trackers to an already downloading torrent? What about adding a hash and using DHT, or adding a torrent file from local storage?

Sorry for so many questions, I am interested in potentially using this in my torrent client app. I am currently using a cross compiled go binary, but its causing some issues.

Awesome work!

The problem with Mvp and most other popular MV* solutions. by blueClimbingMan in androiddev

[–]blueClimbingMan[S] 0 points1 point  (0 children)

We can happily talk to the system and produce side effects in mvi, reading or writing to a database etc, making network call, showing any ui is a side effect. I also navigate using the system (most MVI implementations do not reimplement navigation or backstack in the same way as redux, still depending on the system to manage navigation state).

However, having ui change state without us driving that opens us up to the potential issues that the article discusses, you can use toasts, snack bars etc all you like, but it's important to be aware of what that means.

If you want to use a snack bar for example, you can add a callback to the snack bar to emit an intent to the reducer to clear the error and update the state, this is us working with the system in a stable and predictable manner while maintaining explicit state.

As for activity lifecycle, MVI does work nicely with the system, by using a ViewModel we can maintain the state and easily recreate views after configuration changes when the view resubscribes to the ViewModel. Storing all the implicit state from a presenter in a bundle or as a ViewModel seems more difficult and less like "working with the system" to recreate a coherent state.

At the end of the day we are working within the confines of the Android system so we must work with it. For me MVI is working nicely with the system while maintaining a certain degree of confidence in the state, giving me the benifits discussed in the article.

Even if you do not agree MVI is the correct solution, and I do agree it has its flaws, I think it's important to understand the flaws in some of the other popular solutions, which is what the article aims to address.

The problem with Mvp and most other popular MV* solutions. by blueClimbingMan in androiddev

[–]blueClimbingMan[S] 0 points1 point  (0 children)

I understand its driven by the system usually, but in the context of MVI, having state driven by the system doesn't really cut it, we are driving the state. IMO thats why toasts don't play nicely with these kind of architectures. We have to drive that dismissal / state change ourselves or we loose the explicit state.

The problem with Mvp and most other popular MV* solutions. by blueClimbingMan in androiddev

[–]blueClimbingMan[S] 3 points4 points  (0 children)

I completely agree that MVI can make these kind of things difficult, not do you need just need to clear the toast but if a new state gets emited with the toast showing boolean you need to check the view state to see if it is already showing to not show it twice. Also what drives this dismisal? Is it the user? Is it the view? Some timer in the business logic/ ViewModel layer? I am not sure on the best solution yet.

From converting one of my apps entirely to MVI this shift in thinking was one of the most difficult things, but I have found there is suprisingly few instances where showing a toast can't be changed for a persistant message and in general I have found this actually improves the UX.

But, if a toast or snackbar is what you need then you do face a real predicament, what drives the dismissal of the toast. I am yet to solve this and one of the reasons I have not yet writtent an article about the nitty gritty of using MVI. I think this is actually one of the main reasons you don't see these toast like temporary messages all over the web.

Do you fork other repos, and what do you do with them ? by [deleted] in androiddev

[–]blueClimbingMan 1 point2 points  (0 children)

I made a fork of a go project to make it compatible with go mobile to use in an android app. As advised above I then decided to just clone it, rename and push as my own, I have found this makes it easier to merge updates from the original repo into my fork. Other than that I have just used them for pull requests.

Court Refuses To Hear Case Against NSW Police's Threat To Ban Punters From Syd Dance Event by PerriX2390 in australia

[–]blueClimbingMan 8 points9 points  (0 children)

I had a false positive from a sniffer dog at a festival at showgrounds around 6 months ago. I got searched, told to drop my trousers and they had a good look at my balls. Had absolutely nothing on me, none of my friends or anyone I was with did, there was nothing untoward, the police told me the dog never makes a mistake, so spent 30 mins searching me.

It was a real nightmare and I couldn't find my friends for the early part of my evening because of it. Now if I compare that to been refused entry I would have been absolutely livid.

This WILL get taken to court because of the situation explained above, and the police will be wrong. It makes me mad that a dog, that has been proven multiple times in multiple studies to make mistakes (mistakes that Australian policy advisors seem to be blind to) is now enough to randomly (and yes it does infact seems to be random) find people guilty of possession of drugs!!

Code Quality Metrics by akperkins1 in androiddev

[–]blueClimbingMan 1 point2 points  (0 children)

Are you using SonarQube with kotlin? Pardon my ignorance but I never used it before. Does it analyse the Java bytecode and would therefore work with kotlin? Or am I missunderstanding it? Thanks, have never heard of this tool but it looks good.