|
TheresaJayne posted:Computing is All of that so you should be as happy wiring networks as coding the next uber game. Why would I be happy wiring networks?
|
# ? Jun 14, 2014 16:53 |
|
|
# ? Jun 8, 2024 01:55 |
|
Suspicious Dish posted:I can tell you exactly when I added it, and what version it started to work in. Are you saying that these were different versions?
|
# ? Jun 14, 2014 19:33 |
|
|
# ? Jun 14, 2014 20:00 |
|
Monitor config does sound like the sort of thing that would require an absurdly good test lab to get fully working without a version or two of people reporting issues with their bespoke hand-crafted projector that blatantly lies about every little detail when reporting its capabilities.
|
# ? Jun 14, 2014 21:55 |
|
Yeah I think "happy" is the wrong word there. I could do it, but it not going to be happy about it.
|
# ? Jun 15, 2014 19:03 |
|
And here we have a simple index/landing page:php:<? $pagetitle='Derp!!'; $meta_keywords = ''; $meta_desc = 'Website description blah blah derp!'; $css_stage = 'homepage'; require($_SERVER['INCLUDES_LOCAL'].'/header.php'); $pfx_slider=RASTER_PREFIX_SLIDER."/homepage"; ?> <? //=========================================================== //-- BEGIN: Class: SliderData ------------------------------ //=========================================================== class SliderData{ // BEGIN: Data Memembers public $id; public $css; public $img; public $headline; public $content; public $cta; // END: Data Memembers /*------------------------------------------------------- BEGIN: CONSTRUCTOR -------------------------------------------------------*/ // SliderData: // Constructor function __construct(){ //trace("SliderData: CONSTR"); // Page Content $this->cta=new CTAButtonData(); } /*------------------------------------------------------- END: CONSTRUCTOR -------------------------------------------------------*/ /*------------------------------------------------------- BEGIN: DECONSTRUCTOR -------------------------------------------------------*/ // __destructor: // Deconstructs object. public function __destructor(){ //trace("SliderData: DECONSTRUCTOR"); $this->id=NULL; $this->css=NULL; $this->img=NULL; $this->headline=NULL; $this->content=NULL; $this->cta=NULL; //parent::__destructor(); } /*------------------------------------------------------- END: DECONSTRUCTOR -------------------------------------------------------*/ } //=========================================================== //-- END: Class: SliderData -------------------------------- //=========================================================== //=========================================================== //-- BEGIN: Class: IMGData --------------------------------- //=========================================================== class IMGData{ // BEGIN: Data Memembers public $id=''; public $css=''; public $src; public $alt; public $title; // END: Data Memembers /*------------------------------------------------------- BEGIN: CONSTRUCTOR -------------------------------------------------------*/ // IMGData: // Constructor function __construct($src='img.jpg', $alt='', $title=''){ //trace("IMGData: CONSTR"); $this->src=$src; $this->alt=$alt; $this->title=$title; } /*------------------------------------------------------- END: CONSTRUCTOR -------------------------------------------------------*/ /*------------------------------------------------------- BEGIN: DECONSTRUCTOR -------------------------------------------------------*/ // __destructor: // Deconstructs object. public function __destructor(){ //trace("IMGData: DECONSTRUCTOR"); $this->src=NULL; $this->alt=NULL; $this->title=NULL; $this->id=NULL; $this->css=NULL; //parent::__destructor(); } /*------------------------------------------------------- END: DECONSTRUCTOR -------------------------------------------------------*/ } //=========================================================== //-- END: Class: IMGData ----------------------------------- //=========================================================== //=========================================================== //-- BEGIN: Class: CTAButtonData --------------------------- //=========================================================== class CTAButtonData{ // BEGIN: Data Memembers public $id=''; public $css=''; public $label; public $href; public $target; public $title=''; // END: Data Memembers /*------------------------------------------------------- BEGIN: CONSTRUCTOR -------------------------------------------------------*/ // CTAButtonData: // Constructor function __construct($label='CTA BUTTON', $href='#', $target='_self'){ //trace("CTAButtonData: CONSTR"); $this->label=$label; $this->href=$href; $this->target=$target; } /*------------------------------------------------------- END: CONSTRUCTOR -------------------------------------------------------*/ /*------------------------------------------------------- BEGIN: DECONSTRUCTOR -------------------------------------------------------*/ // __destructor: // Deconstructs object. public function __destructor(){ //trace("CTAButtonData: DECONSTRUCTOR"); $this->label=NULL; $this->url=NULL; $this->target=NULL; $this->title=NULL; $this->id=NULL; $this->css=NULL; //parent::__destructor(); } /*------------------------------------------------------- END: DECONSTRUCTOR -------------------------------------------------------*/ } //=========================================================== //-- END: Class: CTAButtonData ----------------------------- //=========================================================== $data_slider=array(); //// item: inspire $data_slider[]=$ds=new SliderData(); $ds->id='derp1'; $ds->css=''; $ds->headline='Derp Headline'; $ds->content=<<<EOT <p>It’s what goes into the making of derp derp DERP DERPS</p> EOT; // img $ds->img=$img=new IMGData(); $img->src=$pfx_slider.'/'.$ds->id.'.jpg'.RASTER_DATA_FULLWIDTH; $img->alt='Derp Headline'; // cta button $ds->cta=$cta=new CTAButtonData(); $cta->label='View Movie'; $cta->href=URL_EXPERIENCE.'derp1/'; //// item: longhouse $data_slider[]=$ds=new SliderData(); $ds->id='derp2'; $ds->css=''; $ds->headline='The DerpDerp Derp'; $ds->content=<<<EOT <p><strong>Derps</strong> the derp of derps</p> EOT; // img $ds->img=$img=new IMGData(); $img->src=$pfx_slider.'/'.$ds->id.'.jpg'.RASTER_DATA_FULLWIDTH; $img->alt='DerpDerp'; // cta button $ds->cta=$cta=new CTAButtonData(); $cta->label='Learn More'; $cta->href=URL_DERRRRPP.'derp2/'; //// item: perspective-ne $data_slider[]=$ds=new SliderData(); $ds->id='derp-ne'; $ds->css=''; $ds->headline='A Derp Story'; $ds->content=<<<EOT <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laudantium, repellendus, minus, dolorum, eos cumque beatae quo magni nam soluta natus eius dolore doloribus esse accusantium distinctio provident pariatur ipsam deleniti?</p> EOT; // img $ds->img=$img=new IMGData(); $img->src=$pfx_slider.'/'.$ds->id.'.jpg'.RASTER_DATA_FULLWIDTH; $img->alt='Derp: New England'; // cta button $ds->cta=$cta=new CTAButtonData(); $cta->label='See Derp New England'; $cta->href=URL_DERP; $cta->target='_blank'; //// item: perspective-atl $data_slider[]=$ds=new SliderData(); $ds->id='derp-atl'; $ds->css=''; $ds->headline='A Derp Challenge'; $ds->content=<<<EOT <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Deleniti, veniam, similique, aspernatur, repudiandae.</p> EOT; // img $ds->img=$img=new IMGData(); $img->src=$pfx_slider.'/'.$ds->id.'.jpg'.RASTER_DATA_FULLWIDTH; $img->alt='Derp: Atlanta'; // cta button $ds->cta=$cta=new CTAButtonData(); $cta->label='See Derp Atlanta'; $cta->href=URL_DERP; $cta->target='_blank'; ?> <!--// BEGIN: ui-slider //--> <div id="homepage" class="slider" data-slider> <!--// BEGIN: ui-slider-track //--> <ul class='slider_track'> <? $length=sizeof($data_slider); $html=''; for($i=0; $i<$length; $i++){ $ds=$data_slider[$i]; $img=$ds->img; $cta=$ds->cta; // BEGIN: Slide $html.='<li class="slide">'; $html.='<li class="slide_liner">'; $html.='<div class="slide_content_container"><section>'; $html.='<a class="pg_anchor" id="'.$ds->id.'" name="'.$ds->id.'"></a>'; // IMG $html.='<img id="'.$img->id.'" class="'.$img->css.'" src="'.$img->src.'" alt="'.$img->alt.'" title="'.$img->title.'"/>'; // Headeline & Content $html.='<div>'; $html.='<h1>'.$ds->headline.'</h1>'; $html.=$ds->content; $html.='</div>'; // CTA $html.='<a id="'.$cta->id.'" class="'.$cta->css.'" href="'.$href->src.'" target="'.$href->target.'" title="'.$img->title.'">'; $html.=$cta->label; $html.='</a>'; $html.='</section></div>'; $html.='</li>'; // END: Slide } // Print out slides echo $html; ?> </ul> <!--// END: ui-slider-track //--> </div> <!--// END: ui-slider //--> <? //if(PLATFORM == PLATFORM_DESKTOP) include(INCLUDES_GLOBAL.'/narrativenav.php'); ?> <? require(INCLUDES.'/footer.php'); ?>
|
# ? Jun 16, 2014 16:28 |
|
Maluco Marinero posted:One of the best remote wireframing sessions a designer I work with had was when he set up a good webcam pointing at his desk and just ran a Skype session. Unfortunately there's just way too much friction to getting whatever the flavour of the month white boarding software set up with the client, when you can just point them at Skype which they usually already have, and just go lo fi from there. I had similar issues with trying to demo a prototype or live design with a client. After sorting through all kinds of lovely software I started using join.me and it's been a breeze since.
|
# ? Jun 16, 2014 18:46 |
I know posting about code written by astrophysicists is like shooting fish in a barrel (this is coming from an astrophysicist), but I just ran into a tool written by NASA which prints all of its output to stderr, regardless of whether or not that output contains any actual errors. There's no legitimate reason for that, right?
|
|
# ? Jun 16, 2014 23:22 |
|
VikingofRock posted:I know posting about code written by astrophysicists is like shooting fish in a barrel (this is coming from an astrophysicist), but I just ran into a tool written by NASA which prints all of its output to stderr, regardless of whether or not that output contains any actual errors. There's no legitimate reason for that, right? By default stderr is unbuffered while stdout is buffered. Maybe someone didn't know how to turn off buffering?
|
# ? Jun 16, 2014 23:42 |
|
I've heard cases where stdout is used for data output (e.g., to redirect to a file) and stderr is used for all status information, maybe it's following that convention blindly?
|
# ? Jun 17, 2014 00:23 |
|
pokeyman posted:By default stderr is unbuffered while stdout is buffered. Maybe someone didn't know how to turn off buffering? That was the case for some physicist code I worked with (under the oppressive weight of). Maybe it's a FORTRAN hangover?
|
# ? Jun 17, 2014 00:29 |
|
code:
|
# ? Jun 17, 2014 03:47 |
|
Mennonites Revenge posted:I've heard cases where stdout is used for data output (e.g., to redirect to a file) and stderr is used for all status information, maybe it's following that convention blindly? Knowing astrophysicists, this piece of software was probably first written in the 70s and slowly modified over time, so you've probably got the right answer
|
# ? Jun 17, 2014 07:39 |
|
eithedog posted:I, on the other hand, felt uneasy using macs. "So, you don't close your applications? Like, at all?". A few years ago, when Android was relatively new, not having a quit button in your application could lead to a constant stream of 1 star reviews. We eventually relented because it's a silly thing to make a principled stand on and lose users over. We drove a car with an automatic transmission (in Europe), an automated start-stop, automated air conditioning and an automatic handbrake for the holidays. My wife turned everything but the transmission off because she found it "confusing". I still don't understand her problem with the air conditioning or handbrake, but she wanted the start-stop off because she thought the airco would go off when it stops the car (it doesn't unless the temperature is really close already - the system is basically smart and handles all the corner cases). Human-Machine interface design is very hard. Even if you get it right, you still have to deal with the users who learned it wrong already.
|
# ? Jun 17, 2014 09:32 |
|
FoiledAgain posted:To get back to coding horrors, how about some nested for-else loops in Python. Aside from this probably being clearer when written in functional style, what do you find so offensive here? Python has no goto or labeled break (and will never have, see PEP 3136). The closest thing (not using functional style) would've been putting the dimension check into a function and using the return as goto. The two else constructs are totally superfluous (though I think I can make an argument that the last one is at least as readable as directly returning), but it's still clear what the code does and its not hard to understand. If you consider this worthy of calling a programming horror, you're inexperienced or you work in a very very awesome place.
|
# ? Jun 17, 2014 09:55 |
|
Not a python expert, but I think that fragment of code should have been rewritten asPython code:
|
# ? Jun 17, 2014 13:38 |
|
Sure, but is the original really that offensive? I can read it, understand what it does, and if needed, modify it and be sure it won't end up launching the nukes. It certainly wouldn't make me laugh or cry.
|
# ? Jun 17, 2014 14:29 |
|
Skuto posted:Human-Machine interface design is very hard. Even if you get it right, you still have to deal with the users who learned it wrong already. I usually find dealing with the users who learned it wrong the only hard bit. It's actually pretty easy to define a user interface if you stop to think for a moment and don't listen to the users, user's managers, your manager who's spoken to the user's manager and the sales team who think that piling more buttons to do the thing they just thought of on the screen* is a great idea. Not that I'm saying it's easy to design the perfect UI, but it's pretty easy to not design terrible ones. * listed in increasing order of terrible
|
# ? Jun 17, 2014 15:34 |
|
Skuto posted:Sure, but is the original really that offensive? I can read it, understand what it does, and if needed, modify it and be sure it won't end up launching the nukes. It certainly wouldn't make me laugh or cry. The original is really really horrible IMO, there's 3 or 4 completely redundant/pointlessly over-complicated things about it. It's not the end of the world but no way I'd let it through code review. InternetJanitor's rewrite takes less than half the time to understand what it does
|
# ? Jun 17, 2014 17:16 |
|
So I was reading UPNP specs, I don't know why.quote:Header fields
|
# ? Jun 17, 2014 22:55 |
|
Skuto posted:A few years ago, when Android was relatively new, not having a quit button in your application could lead to a constant stream of 1 star reviews. We eventually relented because it's a silly thing to make a principled stand on and lose users over.
|
# ? Jun 17, 2014 23:11 |
|
SupSuper posted:I still do. For heavy-duty apps like games or misbehaving apps, I'd rather quit them immediately than let them sit in the background hogging until the memory manager decides the time is right. I've never owned an Android smartphone before. Is memory usage actually something you have to personally be concerned about? That's horrible.
|
# ? Jun 17, 2014 23:45 |
|
Ithaqua posted:I've never owned an Android smartphone before. Is memory usage actually something you have to personally be concerned about? That's horrible. No, unless you are possibly still running a really old version. I haven't had any issues with memory management in a long time.
|
# ? Jun 17, 2014 23:54 |
|
Ithaqua posted:I've never owned an Android smartphone before. Is memory usage actually something you have to personally be concerned about? That's horrible. Imagine thousands of Java programmers have access to your phone.
|
# ? Jun 18, 2014 02:35 |
|
necrotic posted:No, unless you are possibly still running a really old version. I haven't had any issues with memory management in a long time. It actually depends a lot more on what kind of apps you download than on what version of Android you use. Some apps are full of coding horrors and will sit there draining your battery doing useless poo poo while they're still open, so battery-conscious users like to close apps whenever they're done with them
|
# ? Jun 18, 2014 03:39 |
|
Ithaqua posted:I've never owned an Android smartphone before. Is memory usage actually something you have to personally be concerned about? That's horrible. Not really. If you're having some problem it's possible that there's a misbehaving app, but that's likely going to be from wakelocks, not CPU or memory usage. Even then most people aren't going to have any issue.
|
# ? Jun 18, 2014 03:48 |
|
SupSuper posted:I still do. For heavy-duty apps like games or misbehaving apps, I'd rather quit them immediately than let them sit in the background hogging until the memory manager decides the time is right. Swiping away the app in the recently used list kills the process if I recall. A quit button wasn't necessary in the first place (usually indicated poor programming), but now is straight up redundant.
|
# ? Jun 18, 2014 04:17 |
|
There is zero reason in the year 2014 to care about quitting Android apps. A "quit button" under the hood is just going to call Activity.finish() which is really pretty much the same as what's going to happen if you hit the back button from an app and wind up on your home screen.
|
# ? Jun 18, 2014 05:22 |
|
Apps aren't killed immediately when you switch away from them or hit back. Some terribly programmed games (Ridiculous Fish) will peg the CPU regardless of if they're in the foreground (or if the screen is even on).
|
# ? Jun 18, 2014 07:56 |
|
QuarkJets posted:It actually depends a lot more on what kind of apps you download than on what version of Android you use. Some apps are full of coding horrors and will sit there draining your battery doing useless poo poo while they're still open, so battery-conscious users like to close apps whenever they're done with them My favorite is how apps can just universally have access to every permission, and the only way to stop this is to not install the app in the first place. Unless this has recently changed I can still find apps that require access to my text messages that have nothing to do with them.
|
# ? Jun 18, 2014 07:59 |
|
Scaevolus posted:Apps aren't killed immediately when you switch away from them or hit back. Facebook can be bad about doing this (and burning bandwidth). ATM Machine posted:My favorite is how apps can just universally have access to every permission, and the only way to stop this is to not install the app in the first place. Have fun and go nuts: http://www.androidpolice.com/2013/07/25/app-ops-android-4-3s-hidden-app-permission-manager-control-permissions-for-individual-apps/ To be fair, sometimes those permissions are legit but the permission is too coarse.
|
# ? Jun 18, 2014 08:25 |
|
I have a really old bad (but cheap!) Android (2.2) that gets as hot as the sun if I try to run any kind of game, like cut the rope (and angry birds is too "intensive" to even run, so). I have to constantly use a task killer app to kill every task that suddenly opens itself in order to maintain decent response speeds on even the music player. I check back on the task killer every ten minutes or so and suddenly Facebook Chat is open, along with Maps, Weather, Voice Search, App Store, Browser, etc; all while I've only been listening to music with the screen turned off AND no internet access. Android (at least, old android) just loves to open up poo poo at random and there's definitely noticeable speedup from force quitting some of it.
|
# ? Jun 18, 2014 08:50 |
|
Scaevolus posted:Apps aren't killed immediately when you switch away from them or hit back. They're paused. If you start running low on memory, the apps get a notification to lower their memory usage. If still more memory is required, they're destroyed. It's possible for coding horrors to keep using resources even when paused. The fix consists, unsurprisingly, *not* of adding a quit button to those apps. quote:Some terribly programmed games (Ridiculous Fish) will peg the CPU regardless of if they're in the foreground (or if the screen is even on). Uninstall the broken app or keep using your 2010's phone like a 1990's PC. Your choice. quote:My favorite is how apps can just universally have access to every permission, and the only way to stop this is to not install the app in the first place. That's (in many cases) not really the apps fault. Android permissions are thoroughly hosed. There are two problems: a) Apps can't request permissions at point of use, only at install time. If some obscure feature of my app needs a permission, I have to request that permission for every single user. Because most apps accumulate features, they end up requesting permission for everything under the sun. b) Sometimes permissions don't exactly map as you would expect to features, causing apps to have to request scary permissions for innocent features. This gets worse if the application supports old Android releases that had more limited APIs. Even Google understands that the situation is hosed, but they're not fixing it in the way you'd hope for: as of a week ago, apps can now update themselves and add new permissions without having to ask you (subject to some limitations, but still). That said, things like UAC and SELinux are good reminders that this is a Hard Problem To Get Right. quote:suddenly Facebook Chat is open, along with Maps, Weather, Voice Search, App Store, Browser...there's definitely noticeable speedup from force quitting some of it. Those are services, so quitting them just means they'll relaunch automatically a bit later (using even more CPU in the process). No quit button is going to help you there, you're better turning off the background updates. (Though on Android 2.2 you might be SOL there in terms of fine-grained enough control)
|
# ? Jun 18, 2014 10:41 |
|
Worst thing on my phone was Google calendar sync eating all my monthly bandwidth in a few days.
|
# ? Jun 18, 2014 12:34 |
|
Skuto posted:That's (in many cases) not really the apps fault. Android permissions are thoroughly hosed. I figured it was something like overlapping features requiring permissions, though sometimes its a bit of a stretch to believe an app needs SMS and call phone permissions when it has no relation to either at a design level. I'm not an android developer though, so I can only imagine what nightmares relate to the permission settings. I noticed that part about apps being able to request new permissions. That just seems slightly concerning.
|
# ? Jun 18, 2014 12:40 |
|
kitten smoothie posted:There is zero reason in the year 2014 to care about quitting Android apps. A "quit button" under the hood is just going to call Activity.finish() which is really pretty much the same as what's going to happen if you hit the back button from an app and wind up on your home screen. Say I'm playing Pandora and I hit the back button to get to the home screen. The music keeps playing! I've seen android phones have like 50 or 60 background processes running just with all the crap people download. A lot of app developers like to run background apps. Download enough stuff that does that, they all keep running, and it eats battery life and memory. Apple tried the other way with banning background apps and people didn't like that, so they eventually relented. I don't really have a solution but it's totally still a problem if you download a bunch of apps even in the year of our lord 2014.
|
# ? Jun 18, 2014 13:34 |
|
But apple fixed that (at least with the ipad) where you swipe down with four fingers to bring up the "Apps That Are Open" list, which you can toss them upwards to close them for good, or tap to swap to it. IMO that's a much better solution because
|
# ? Jun 18, 2014 13:38 |
|
Bruegels Fuckbooks posted:Say I'm playing Pandora and I hit the back button to get to the home screen. The music keeps playing! I've seen android phones have like 50 or 60 background processes running just with all the crap people download. Why would a music playing app like Pandora allow you to switch to the home screen and conduct other activities while it plays? This is inexplicable!
|
# ? Jun 18, 2014 13:47 |
|
Beamed posted:Why would a music playing app like Pandora allow you to switch to the home screen and conduct other activities while it plays? This is inexplicable! As a user, my expected behavior here is that if I hit the home button the music keeps playing whereas if I hit the back button the music stops and the app ceases to get cpu time.
|
# ? Jun 18, 2014 13:57 |
|
|
# ? Jun 8, 2024 01:55 |
|
Jewel posted:But apple fixed that (at least with the ipad) where you swipe down with four fingers to bring up the "Apps That Are Open" list, which you can toss them upwards to close them for good, or tap to swap to it. On the iPhone, you just double click the home button. It works no matter what you're doing. I don't have an iPad, but does that also work? I would assume the four finger swipe only works on the home screen.
|
# ? Jun 18, 2014 14:12 |