• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 02:46
CEST 08:46
KST 15:46
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
[ASL21] Ro4 Preview: On Course12Code S Season 1 - RO8 Preview7[ASL21] Ro8 Preview Pt2: Progenitors8Code S Season 1 - RO12 Group A: Rogue, Percival, Solar, Zoun13[ASL21] Ro8 Preview Pt1: Inheritors16
Community News
Weekly Cups (May 4-10): Clem, MaxPax, herO win1Maestros of The Game 2 announcement and schedule !10Weekly Cups (April 27-May 4): Clem takes triple0RSL Revival: Season 5 - Qualifiers and Main Event12Code S Season 1 (2026) - RO12 Results1
StarCraft 2
General
MaNa leaves Team Liquid Weekly Cups (May 4-10): Clem, MaxPax, herO win Code S Season 1 - RO8 Preview Behind the Blue - Team Liquid History Book Weekly Cups (April 27-May 4): Clem takes triple
Tourneys
2026 GSL Season 2 Qualifiers Maestros of The Game 2 announcement and schedule ! SC2 INu's Battles#16 <BO.9> Master Swan Open (Global Bronze-Master 2) GSL Code S Season 1 (2026)
Strategy
Custom Maps
[D]RTS in all its shapes and glory <3 [A] Nemrods 1/4 players
External Content
Mutation # 525 Wheel of Misfortune The PondCast: SC2 News & Results Mutation # 524 Death and Taxes Mutation # 523 Firewall
Brood War
General
BW General Discussion Pros React To: Leta vs Tulbo (ASL S21, Ro.8) ASL Tickets to Live Event Finals? [ASL21] Ro4 Preview: On Course Flashes ASL S21 Ro8 Review
Tourneys
[ASL21] Semifinals B [ASL21] Semifinals A [Megathread] Daily Proleagues [BSL22] RO16 Group Stage - 02 - 10 May
Strategy
[G] Hydra ZvZ: An Introduction Simple Questions, Simple Answers Fighting Spirit mining rates Muta micro map competition
Other Games
General Games
Stormgate/Frost Giant Megathread Warcraft III: The Frozen Throne PC Games Sales Thread Path of Exile Nintendo Switch Thread
Dota 2
The Story of Wings Gaming
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
Vanilla Mini Mafia Mafia Game Mode Feedback/Ideas TL Mafia Community Thread Five o'clock TL Mafia
Community
General
US Politics Mega-thread UK Politics Mega-thread Russo-Ukrainian War Thread YouTube Thread European Politico-economics QA Mega-thread
Fan Clubs
The IdrA Fan Club
Media & Entertainment
Anime Discussion Thread [Manga] One Piece [Req][Books] Good Fantasy/SciFi books
Sports
2024 - 2026 Football Thread McBoner: A hockey love story Formula 1 Discussion
World Cup 2022
Tech Support
streaming software Strange computer issues (software) [G] How to Block Livestream Ads
TL Community
The Automated Ban List
Blogs
How EEG Data Can Predict Gam…
TrAiDoS
ramps on octagon
StaticNine
Funny Nicknames
LUCKY_NOOB
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1533 users

The Big Programming Thread - Page 959

Forum Index > General Forum
Post a Reply
Prev 1 957 958 959 960 961 1032 Next
Thread Rules
1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution.
2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20)
3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible.
4. Use [code] tags to format code blocks.
WarSame
Profile Blog Joined February 2010
Canada1950 Posts
May 15 2018 04:16 GMT
#19161
I have a task in my Android app that needs to run asynchronously. It contributes to the UI and requires context(needs an object from the Application). Do I use an AsyncTask, Fragment, or something else?
Can it be I stayed away too long? Did you miss these rhymes while I was gone?
berated-
Profile Blog Joined February 2007
United States1134 Posts
Last Edited: 2018-05-15 11:07:27
May 15 2018 11:06 GMT
#19162
On May 15 2018 13:16 WarSame wrote:
I have a task in my Android app that needs to run asynchronously. It contributes to the UI and requires context(needs an object from the Application). Do I use an AsyncTask, Fragment, or something else?


I personally always thought the fragment thing was a hack. We ultimately use loaders for this type of stuff, but async task can work. You just need to make sure that when the async task runs on the main thread that you realize the activity that started it could be destroyed.

Disclaimer most this information is from Android 2 years ago, don't know if they have new options but that looks like the same stuff.
Acrofales
Profile Joined August 2010
Spain18291 Posts
May 15 2018 11:15 GMT
#19163
On May 15 2018 20:06 berated- wrote:
Show nested quote +
On May 15 2018 13:16 WarSame wrote:
I have a task in my Android app that needs to run asynchronously. It contributes to the UI and requires context(needs an object from the Application). Do I use an AsyncTask, Fragment, or something else?


I personally always thought the fragment thing was a hack. We ultimately use loaders for this type of stuff, but async task can work. You just need to make sure that when the async task runs on the main thread that you realize the activity that started it could be destroyed.

Disclaimer most this information is from Android 2 years ago, don't know if they have new options but that looks like the same stuff.

Doing UI stuff from asynctasks is a bit finicky. You need to use a Handler, and ensure the UI element you want to manipulate still exists (and the activity that called it is still there). However, it is one of the better ways in Android for short little things. If what you want is something persistent, you should probably use an intentservice or a futuretask (interaction with the UI is similarly finicky or even more so).

Fragment has the advantage that it is a UI element, so changing the UI is easy. However, doing computation on the UI thread is a terrible idea, and if you want to run stuff asynchronously, Fragments are not the place for it: they will block the UI, and cause your app to stall/crash/get killed.
WarSame
Profile Blog Joined February 2010
Canada1950 Posts
May 15 2018 15:30 GMT
#19164
Yes, Fragment runs on the main thread. I tried it and couldn't handle the 1/2 second delay.

I tried it as an AsyncTask, too, and that seemed to work fine but I was wondering if there was a "better" Android way to do it.

From what I've read and experienced it seems hard to pass data back from an IntentService to a particular Activity. I've mostly been sending information to the user from them in Notifications.

I'll look into FutureTask.
Can it be I stayed away too long? Did you miss these rhymes while I was gone?
Hanh
Profile Joined June 2016
146 Posts
May 15 2018 23:44 GMT
#19165
Changes to your model data shouldn't be coupled with UI anyway. If you have a long running task, use an async workflow and have it update your model. Keep your model in normal form but set up observers/computed properties in model views. Finally bind views to your model views.
Then your flow is:
- user performs a UI action like clicking on a button,
- button is bound to a field in the model view, which gets a onClick callback
- onClick dispatches the async workflow
- UI thread continues so the user can do other stuff if needed
- async workflow dispatcher picks up the task and starts executing it
- as it progresses, the w/f may update the model or it could update the model only at the end
- when the model updates, observers are notified and recompute their output
- view model updates the view properties that changed
- view refreshes

Consider your modern car, when you press on the gas pedal (UI) you send a signal (dispatch) to the on board computer (model). The later decides how much gas it should send to the engine (model logic). A bunch of sensors read your speed, rpm, etc. (view model) and they turn these values into something that the dashboard displays (view)

Old cars would directly couple the gas pedal with the carburetor and the dashboard have gauges directly hooked to the wheels and engine. It is a far simpler design but it doesn't allow for much 'smartness'.
WarSame
Profile Blog Joined February 2010
Canada1950 Posts
May 16 2018 01:05 GMT
#19166
Ah, right. I can't implement the Observer pattern for my DB because I'm using GreenDAO which doesn't support it. Your idea sounds great, though.
Can it be I stayed away too long? Did you miss these rhymes while I was gone?
Blisse
Profile Blog Joined July 2010
Canada3710 Posts
Last Edited: 2018-05-16 07:35:34
May 16 2018 07:18 GMT
#19167
Of course you can implement the Observer pattern, just write a class that gates access to the ORM.


Use one Activity. Up to you about whether you want lots of Fragments or not. Don't use AsyncTask or Loaders or Handlers. Use LiveData which is part of the new Architecture Components.

Here's a bunch of modern samples.

https://github.com/googlesamples/android-architecture-components
https://developer.android.com/topic/libraries/architecture/



For fun watch about more modern Android development:

There is no one like you in the universe.
berated-
Profile Blog Joined February 2007
United States1134 Posts
May 16 2018 10:41 GMT
#19168
On May 16 2018 16:18 Blisse wrote:
Of course you can implement the Observer pattern, just write a class that gates access to the ORM.


Use one Activity. Up to you about whether you want lots of Fragments or not. Don't use AsyncTask or Loaders or Handlers. Use LiveData which is part of the new Architecture Components.

Here's a bunch of modern samples.

https://github.com/googlesamples/android-architecture-components
https://developer.android.com/topic/libraries/architecture/



For fun watch about more modern Android development:

https://www.youtube.com/watch?v=IrMw7MEgADk


When did all this stuff come out? I just skimmed it but it looks way nicer than the previous apis. We abandoned the Android part after about a year of iterating to loaders for everything if you don't want your app to a crash and just use a webview wrapper for everything. Does the new architecture help handle network failures more easily too?
Manit0u
Profile Blog Joined August 2004
Poland17743 Posts
May 17 2018 18:28 GMT
#19169
[image loading]
Time is precious. Waste it wisely.
Khalum
Profile Joined September 2010
Austria831 Posts
May 17 2018 19:57 GMT
#19170
On May 18 2018 03:28 Manit0u wrote:
[image loading]


Seems rhobust.
WarSame
Profile Blog Joined February 2010
Canada1950 Posts
May 17 2018 23:30 GMT
#19171
On May 16 2018 16:18 Blisse wrote:
Of course you can implement the Observer pattern, just write a class that gates access to the ORM.


Use one Activity. Up to you about whether you want lots of Fragments or not. Don't use AsyncTask or Loaders or Handlers. Use LiveData which is part of the new Architecture Components.

Here's a bunch of modern samples.

https://github.com/googlesamples/android-architecture-components
https://developer.android.com/topic/libraries/architecture/



For fun watch about more modern Android development:

https://www.youtube.com/watch?v=IrMw7MEgADk

Well, also because I don't think it applies to part of my use case. Generating a wallet file takes ~5s, which may be too long for a user to wait on an activity to get the updated data. However, I will do it because it seems better.
Can it be I stayed away too long? Did you miss these rhymes while I was gone?
Hanh
Profile Joined June 2016
146 Posts
May 18 2018 00:07 GMT
#19172
On May 18 2018 08:30 WarSame wrote:
Show nested quote +
On May 16 2018 16:18 Blisse wrote:
Of course you can implement the Observer pattern, just write a class that gates access to the ORM.


Use one Activity. Up to you about whether you want lots of Fragments or not. Don't use AsyncTask or Loaders or Handlers. Use LiveData which is part of the new Architecture Components.

Here's a bunch of modern samples.

https://github.com/googlesamples/android-architecture-components
https://developer.android.com/topic/libraries/architecture/



For fun watch about more modern Android development:

https://www.youtube.com/watch?v=IrMw7MEgADk

Well, also because I don't think it applies to part of my use case. Generating a wallet file takes ~5s, which may be too long for a user to wait on an activity to get the updated data. However, I will do it because it seems better.


The user doesn't wait for anything. As I said, the workflow is async and the user interface is not blocked. If your app supports multiple wallets, he could even create more than one and still not block.
WarSame
Profile Blog Joined February 2010
Canada1950 Posts
May 18 2018 03:57 GMT
#19173
I get that it doesn't block the main thread, I was just thinking that since I have to work with wallets and Ethereum my wait time for certain actions can be ~40s where a notification may serve the purpose better than waiting for the UI. But I'll put both in.
Can it be I stayed away too long? Did you miss these rhymes while I was gone?
enigmaticcam
Profile Blog Joined October 2010
United States280 Posts
Last Edited: 2018-05-18 17:44:04
May 18 2018 17:43 GMT
#19174
Question on entity framework in C#.Net. I know EF supports transactions. But I want my SaveChanges to be dependent on a database check and I'm not sure how to do that.

I have an entity and any user can potentially create a new row in that table. This table has an IsComplete field. I only want to allow creating new rows if all rows in the table are marked true for IsComplete. The default value when creating a new row is false for IsComplete. So obviously there's potential risk if two different people create a new row at the same time. In that scenario, I would only want one to be successful, and the other should fail because the first one is not complete.

Typically I would just wrap the check and the save in a sql transaction script, but I'm not sure how to do that using EF. Any help? I tried googling, but I keep getting more broad information on just transactions or rolling back SaveChanges.
Manit0u
Profile Blog Joined August 2004
Poland17743 Posts
May 18 2018 20:03 GMT
#19175
You could either try locking the database (SELECT FOR UPDATE), a transaction that checks the count at the beginning and end and rolls back if it's not right, or using distributed locking with something like Redis Mutex.
Time is precious. Waste it wisely.
supereddie
Profile Joined March 2011
Netherlands151 Posts
May 19 2018 09:17 GMT
#19176
On May 19 2018 02:43 enigmaticcam wrote:
Question on entity framework in C#.Net. I know EF supports transactions. But I want my SaveChanges to be dependent on a database check and I'm not sure how to do that.

I have an entity and any user can potentially create a new row in that table. This table has an IsComplete field. I only want to allow creating new rows if all rows in the table are marked true for IsComplete. The default value when creating a new row is false for IsComplete. So obviously there's potential risk if two different people create a new row at the same time. In that scenario, I would only want one to be successful, and the other should fail because the first one is not complete.

Typically I would just wrap the check and the save in a sql transaction script, but I'm not sure how to do that using EF. Any help? I tried googling, but I keep getting more broad information on just transactions or rolling back SaveChanges.

Just add a check constraint in the database. It will generate an exception and then you can rollback your transaction.
"Do not try to make difficult things possible, but make simple things simple." - David Platt on Software Design
sabas123
Profile Blog Joined December 2010
Netherlands3122 Posts
May 19 2018 15:43 GMT
#19177
Just got my necessary math certificate after first hearing I failed it. Now I can finally go on to a University and study actual computer science instead of some flaky applied version. I'M SO HAPPY!!!!
The harder it becomes, the more you should focus on the basics.
bo1b
Profile Blog Joined August 2012
Australia12814 Posts
Last Edited: 2018-05-20 02:15:36
May 20 2018 02:15 GMT
#19178
On May 20 2018 00:43 sabas123 wrote:
Just got my necessary math certificate after first hearing I failed it. Now I can finally go on to a University and study actual computer science instead of some flaky applied version. I'M SO HAPPY!!!!

Good shit man Depending on what you want to study in cs, selecting to do more mathematics rather then less can be a truly excellent idea.
ShoCkeyy
Profile Blog Joined July 2008
7815 Posts
May 20 2018 04:16 GMT
#19179
Congrats Sabas123, as bo1b said, going a more math route would be a smart idea. A lot of companies are looking for more stats engineers due to machine learning, and AI which are the two largest growing sectors for CS imo.
Life?
bo1b
Profile Blog Joined August 2012
Australia12814 Posts
May 20 2018 04:38 GMT
#19180
Most of the really specialised subsets of cs (I want to say all, but I could be wrong) have heavy groundings in various types of math.
Prev 1 957 958 959 960 961 1032 Next
Please log in or register to reply.
Live Events Refresh
Next event in 3h 15m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
Nina 128
ProTech123
StarCraft: Brood War
GuemChi 5580
PianO 542
HiyA 62
soO 53
yabsab 31
Shinee 29
NaDa 14
ZergMaN 12
Icarus 8
Bale 6
Dota 2
NeuroSwarm124
League of Legends
JimRising 729
Counter-Strike
Stewie2K836
Other Games
summit1g11637
C9.Mang0494
WinterStarcraft427
monkeys_forever408
XaKoH 190
ceh9161
Organizations
Counter-Strike
PGL22187
Other Games
gamesdonequick702
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 13 non-featured ]
StarCraft 2
• Berry_CruncH241
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Lourlo1649
• Stunt474
Upcoming Events
CranKy Ducklings
3h 15m
Afreeca Starleague
3h 15m
Light vs Flash
INu's Battles
4h 15m
ByuN vs herO
PiGosaur Cup
17h 15m
Replay Cast
1d 2h
Replay Cast
1d 17h
The PondCast
2 days
OSC
2 days
Replay Cast
2 days
RSL Revival
3 days
[ Show More ]
OSC
3 days
Korean StarCraft League
3 days
RSL Revival
4 days
BSL
4 days
GSL
5 days
Cure vs herO
SHIN vs Maru
BSL
5 days
Replay Cast
6 days
Replay Cast
6 days
Liquipedia Results

Completed

Proleague 2026-05-11
WardiTV TLMC #16
Nations Cup 2026

Ongoing

BSL Season 22
ASL Season 21
IPSL Spring 2026
KCM Race Survival 2026 Season 2
Acropolis #4
KK 2v2 League Season 1
BSL 22 Non-Korean Championship
SCTL 2026 Spring
RSL Revival: Season 5
2026 GSL S1
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026
BLAST Rivals Spring 2026
IEM Rio 2026
PGL Bucharest 2026
Stake Ranked Episode 1
BLAST Open Spring 2026
ESL Pro League S23 Finals
ESL Pro League S23 Stage 1&2

Upcoming

Escore Tournament S2: W7
YSL S3
Escore Tournament S2: W8
CSLAN 4
Kung Fu Cup 2026 Grand Finals
HSC XXIX
uThermal 2v2 2026 Main Event
Maestros of the Game 2
2026 GSL S2
BLAST Bounty Summer 2026: Closed Qualifier
Stake Ranked Episode 3
XSE Pro League 2026
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.