Author Topic: food for thought: code bloat  (Read 35097 times)

0 Members and 10 Guests are viewing this topic.

Online brucehoult

  • Super Contributor
  • ***
  • Posts: 6415
  • Country: nz
Re: food for thought: code bloat
« Reply #100 on: July 27, 2022, 10:08:51 pm »
By the time the latest games got shipped to New Zealand everybody already had a free copy.

There's most of your problem, right there.

In an age of instant communications you have to do simultaneous launch around the world. There are millions of people who are perfectly willing to pay for the product, but what they are NOT willing to do is sit on their hands for weeks or months while their friends are all using and discussing the latest thing.

Computer games are not heavy. It only takes a plane 12 hours to get from LAX or SFO to New Zealand. (and if it is manufactured in Asia then we are *closer*)

It works the other way too.

I remember when Apple launched the iPhone 3G and/or 3GS. They went on sale on the same date everywhere in the world. At least one of the NZ distributors (I recall it being Vodafone) opened their doors at 00:01 on that date. Shops in California opened at their normal 08:00 or 08:30 or whatever it was.

Some enterprising people managed to buy a dozen or a hundred iPhones in Auckland just after midnight, jump on a flight to California, and sell them on the street in Los Angeles or San Francisco at a large profit before they went on sale in shops there. The 19 hour time zone difference helped, obviously.
 
The following users thanked this post: Nominal Animal, tellurium

Online brucehoult

  • Super Contributor
  • ***
  • Posts: 6415
  • Country: nz
Re: food for thought: code bloat
« Reply #101 on: July 27, 2022, 10:24:41 pm »
Convenience and competition ALWAYS beats piracy - don't look further then the PC game market.
Attached is a study about piracy(pretty old and lonely, 2015), for some details.



I couldn't immediately find a clip of another Jobs' explanation that if you want a song and download a few copies off Napster or Limewire and check them to see which are mislabeled, which are poor quality etc instead of paying $1 to buy the song on iTunes then "you're working for less than minimum wage".
 

Offline PlainName

  • Super Contributor
  • ***
  • Posts: 8781
  • Country: 00
Re: food for thought: code bloat
« Reply #102 on: July 27, 2022, 10:47:53 pm »
Quote
I couldn't immediately find a clip of another Jobs' explanation that if you want a song and download a few copies off Napster or Limewire and check them to see which are mislabeled, which are poor quality etc instead of paying $1 to buy the song on iTunes then "you're working for less than minimum wage".

Currently I purchase books for 99p off Amazon and the first thing I do is run them through Calibre to remove the DRM. I don't share them with anybody, but if I couldn't remove the DRM I wouldn't buy them, and these are the equivalent of the $1 tracks Jobs was on about.

A $1 track is just $1, but you don't have just one track. You tend to have loads of them, so you're really talking loads of $. And the 'middle way' that Jobs speaks of is to lock all that up so you can only access them with some specific software on specific kit at the whim of a mega-corp who doesn't see you as an individual. That's just bonkers.
 

Offline YurkshireLad

  • Frequent Contributor
  • **
  • Posts: 366
  • Country: ca
Re: food for thought: code bloat
« Reply #103 on: July 27, 2022, 11:03:06 pm »
Quote
I couldn't immediately find a clip of another Jobs' explanation that if you want a song and download a few copies off Napster or Limewire and check them to see which are mislabeled, which are poor quality etc instead of paying $1 to buy the song on iTunes then "you're working for less than minimum wage".

Currently I purchase books for 99p off Amazon and the first thing I do is run them through Calibre to remove the DRM. I don't share them with anybody, but if I couldn't remove the DRM I wouldn't buy them, and these are the equivalent of the $1 tracks Jobs was on about.

A $1 track is just $1, but you don't have just one track. You tend to have loads of them, so you're really talking loads of $. And the 'middle way' that Jobs speaks of is to lock all that up so you can only access them with some specific software on specific kit at the whim of a mega-corp who doesn't see you as an individual. That's just bonkers.

Can you download kindle books from Amazon to a PC?
 

Offline Zoli

  • Frequent Contributor
  • **
  • Posts: 793
  • Country: ca
  • Grumpy old men
Re: food for thought: code bloat
« Reply #104 on: July 27, 2022, 11:42:04 pm »
Convenience and competition ALWAYS beats piracy - don't look further then the PC game market.
Attached is a study about piracy(pretty old and lonely, 2015), for some details.



I couldn't immediately find a clip of another Jobs' explanation that if you want a song and download a few copies off Napster or Limewire and check them to see which are mislabeled, which are poor quality etc instead of paying $1 to buy the song on iTunes then "you're working for less than minimum wage".
Did you understood what I've written:
Convenience and competition ALWAYS beats piracy
I'm not interested what is Steve Jobs opinion on piracy, since it had his own business to peddle.
The document I've linked is a properly done research, not a personal and biased opinion.
 

Offline PlainName

  • Super Contributor
  • ***
  • Posts: 8781
  • Country: 00
Re: food for thought: code bloat
« Reply #105 on: July 27, 2022, 11:49:49 pm »
Quote
Can you download kindle books from Amazon to a PC?

Sure. You install the Windows Kindle app and that downloads your books. You can also use it to read them, but I never do :)
 

Online brucehoult

  • Super Contributor
  • ***
  • Posts: 6415
  • Country: nz
Re: food for thought: code bloat
« Reply #106 on: July 28, 2022, 12:01:52 am »
Convenience and competition ALWAYS beats piracy - don't look further then the PC game market.
Attached is a study about piracy(pretty old and lonely, 2015), for some details.



I couldn't immediately find a clip of another Jobs' explanation that if you want a song and download a few copies off Napster or Limewire and check them to see which are mislabeled, which are poor quality etc instead of paying $1 to buy the song on iTunes then "you're working for less than minimum wage".
Did you understood what I've written:
Convenience and competition ALWAYS beats piracy
I'm not interested what is Steve Jobs opinion on piracy, since it had his own business to peddle.
The document I've linked is a properly done research, not a personal and biased opinion.

Why are you attacking me when I'm agreeing with you?

Also, I'd take the real-world vast success of the iTunes store (and others) as far stronger evidence than a hundred academic studies.
 
The following users thanked this post: tellurium

Offline Zoli

  • Frequent Contributor
  • **
  • Posts: 793
  • Country: ca
  • Grumpy old men
Re: food for thought: code bloat
« Reply #107 on: July 28, 2022, 01:24:08 am »
...
Why are you attacking me when I'm agreeing with you?

Also, I'd take the real-world vast success of the iTunes store (and others) as far stronger evidence than a hundred academic studies.
Sorry for the misunderstanding, but I don't consider Apple competition friendly; convenience, yes - competition, no. Compare Itunes and Steam policies as example.
 

Offline Nominal Animal

  • Super Contributor
  • ***
  • Posts: 8349
  • Country: fi
    • My home page and email address
Re: food for thought: code bloat
« Reply #108 on: July 28, 2022, 07:38:02 am »
In a very real sense, convenience is a root cause for code bloat, too.
 

Online Berni

  • Super Contributor
  • ***
  • Posts: 5373
  • Country: si
Re: food for thought: code bloat
« Reply #109 on: July 28, 2022, 08:23:56 am »
Yep i might not be a fan of Apple but they have truly revolutionized the music industry.

It has taken a lot of legal work in the background to even allow Apple to implement its iTunes music selling business model. The record labels really really didn't want anything other than selling CDs in physical stores. But eventually Apple made it happen so that they could make music as conveniently accessible as possible at a good price. This has dealt one of the biggest blows to music piracy ever. For a lot of people it became more convenient to buy a song rather than pirate it from P2P networks. So they instead started buying music. All this was all part of the plan for there iPod ecosystem.

In a very real sense, convenience is a root cause for code bloat, too.
Indeed. Throwing in a library or doing it the dirty inefficient way is usually easier so that's what people do.
 
The following users thanked this post: Nominal Animal

Online madiresTopic starter

  • Super Contributor
  • ***
  • Posts: 9177
  • Country: de
  • A qualified hobbyist ;)
Re: food for thought: code bloat
« Reply #110 on: July 28, 2022, 09:58:20 am »
Using third party libs comes now with an additional risk:
 Protestware on the rise: Why developers are sabotaging their own code (https://techcrunch.com/2022/07/27/protestware-code-sabotage/)
 

Offline PlainName

  • Super Contributor
  • ***
  • Posts: 8781
  • Country: 00
Re: food for thought: code bloat
« Reply #111 on: July 28, 2022, 01:07:38 pm »
Quote
Using third party libs comes now with an additional risk:

It shouldn't do. Surely developers download the lib and it's then there forever (or until they forget to do the backup and the disk dies). Only a moroinexperienced wannabe developer would link to the cloud, or auto-download every compile or auto-update without checking out the update first.
 

Offline Zoli

  • Frequent Contributor
  • **
  • Posts: 793
  • Country: ca
  • Grumpy old men
Re: food for thought: code bloat
« Reply #112 on: July 28, 2022, 03:26:52 pm »
Yep i might not be a fan of Apple but they have truly revolutionized the music industry.

It has taken a lot of legal work in the background to even allow Apple to implement its iTunes music selling business model. The record labels really really didn't want anything other than selling CDs in physical stores. But eventually Apple made it happen so that they could make music as conveniently accessible as possible at a good price. This has dealt one of the biggest blows to music piracy ever. For a lot of people it became more convenient to buy a song rather than pirate it from P2P networks. So they instead started buying music. All this was all part of the plan for there iPod ecosystem.
...
My point of view is a little different: when itunes come out, the music industry business model already was under pressure from the digital formats(and not only P2P); without Apple opportunistic grab, the music situation now would be similar of what is now on the video streaming market. And to remind you about how customer friendly is Apple: DRM had been removed when Amazon started to sell MP3's, lossless option had been added when Bandcamp(IIRC) started doing. Presenting Apple as customer focused company is hypocrisy.
 

Offline SiliconWizard

  • Super Contributor
  • ***
  • Posts: 17781
  • Country: fr
Re: food for thought: code bloat
« Reply #113 on: July 28, 2022, 07:31:22 pm »
In a very real sense, convenience is a root cause for code bloat, too.

Yeah. Well, "convenience" is unfortunately a rather loose concept when it comes to managing a project, let alone running a business.

It's much too often a polite way of expressing what is really "instant gratification", which always has hidden costs.

Beyond the "instant gratification" effect, it basically all comes down to what your objective is: is it to minimize time-to-market or is it to minimize long-term operational costs? Both are often pretty much contradictory.

 
The following users thanked this post: tellurium

Online brucehoult

  • Super Contributor
  • ***
  • Posts: 6415
  • Country: nz
Re: food for thought: code bloat
« Reply #114 on: July 28, 2022, 08:50:46 pm »
My point of view is a little different: when itunes come out, the music industry business model already was under pressure from the digital formats(and not only P2P); without Apple opportunistic grab, the music situation now would be similar of what is now on the video streaming market. And to remind you about how customer friendly is Apple: DRM had been removed when Amazon started to sell MP3's, lossless option had been added when Bandcamp(IIRC) started doing. Presenting Apple as customer focused company is hypocrisy.

Amazon started selling DRM-free MP3s from EMI and Universal on 25/9/2007.

Apple started selling DRM-free AAC songs from EMI on 10/9/2007.

Apple was first, and it was the labels that were the hold-up, not Apple. Apple had been doing the hard work trying to persuafe them to go DRM-free for years.
 

Offline Zoli

  • Frequent Contributor
  • **
  • Posts: 793
  • Country: ca
  • Grumpy old men
Re: food for thought: code bloat
« Reply #115 on: July 29, 2022, 05:05:48 am »
My point of view is a little different: when itunes come out, the music industry business model already was under pressure from the digital formats(and not only P2P); without Apple opportunistic grab, the music situation now would be similar of what is now on the video streaming market. And to remind you about how customer friendly is Apple: DRM had been removed when Amazon started to sell MP3's, lossless option had been added when Bandcamp(IIRC) started doing. Presenting Apple as customer focused company is hypocrisy.

Amazon started selling DRM-free MP3s from EMI and Universal on 25/9/2007.

Apple started selling DRM-free AAC songs from EMI on 10/9/2007.

Apple was first, and it was the labels that were the hold-up, not Apple. Apple had been doing the hard work trying to persuafe them to go DRM-free for years.
Apple had the distribution in place for years; when the Amazon deal came thru, Amazon still had to build up the distribution. Apple had to flip a switch, once the Amazon deal was sealed, that's how he managed to beat Amazon with two weeks. But the most important part of the deal(from the labels POV) wasn't the DRM-free distribution, but the multiple storefronts.
As conclusion to our discussion, care to comment of the original DRM terms, especially the one which locks you in the Apple ecosystem(unlimited copies on Apple devices)?
 

Online Berni

  • Super Contributor
  • ***
  • Posts: 5373
  • Country: si
Re: food for thought: code bloat
« Reply #116 on: July 29, 2022, 05:50:51 am »
Apple did the most important part of the work in all this. Getting the legal nitty gritty sorted so that the record labels would allow them to sell music using there 'weird new' song by song model. Said record labels are the same people who wanted to instantiate a tax on recordable media (with the excuse to recoop piracy losses), pushed for embedding copy protection data into all digital audio interconnect standards, or placing rootkit viruses on CDs to keep the music on it locked down if inserted in a PC (but also bluescreen computers sometimes)

To make this deal happen the record labels likely pushed HEAVILY for all sorts of DRM to be implemented, the big bosses there must have been absolutely terrified of Apple just handing out MP3s of there music. So Apple would of course offer to implement forms of DRM that fit well into there vision of what the iTunes Store should be. Given that Apple is about building this ecosystem where all apple devices work seamlessly together means that this is a form of DRM they are on board with.

Then after the iTunes store has taken off like a rocket the big bosses at the record labels saw this "stupid way of selling music" as actually beating there own "tried and tested physical CD sales model" so actually started supporting it. The record labels are a very stubborn bunch, so this was a massive effort on Apples side to force them into taking the first step towards a new way of music distribution.

Of course Apple didn't do this because they wanted music to be more accessible to people. The reason they did this is to differentiate there iPod product from the rest of the MP3 players. You no longer had to be a pirate to obtain MP3 files of music you legit own for use on your MP3 player. If you bought a iPod then all you needed to do is open iTunes and buy any song you want for 1$ then wait a few minutes for the songs to be magically transferred to your iPod device. This makes it very easy (even for non technical users) and convenient to fill up your MP3 player with perfectly legal music. So yes Apple did it for there own profit, but in doing so set the stage for internet music distribution.

In a similar way Steam provides a DRM mechanism for its PC games where these games will only run using the Steam client. But it is so convenient and  unobtrusive that most people actually prefer to buy games on Steam rather than say GOG.com, where you get the game DRM free (as simply a giant zip file that you have to then store on your harddrive for the lifetime of owning it). The Steam DRM is also really easy to defeat by simply replacing one steam DLL with one that simply claims you own all games. It is that simple on purpose because they don't want DRM accidentally locking people out of a product they bought. However Steam still allows game publishers to add in any extra DRM they like, but it is there own fault if there own strict DRM turns away buyers.
 

Online Siwastaja

  • Super Contributor
  • ***
  • Posts: 11175
  • Country: fi
Re: food for thought: code bloat
« Reply #117 on: July 29, 2022, 06:08:18 am »
In a very real sense, convenience is a root cause for code bloat, too.
Indeed. Throwing in a library or doing it the dirty inefficient way is usually easier so that's what people do.

Yet, instead of convenience, I would say, impression of convenience.

Because too many times you see this pattern that doing X from scratch would be 1-day job or whatever, but you can't be allowed to do that, because it is "not convenient", it is "too tedious", and you need to use "time-saving" strategies like managing library dependencies, learn the library, write wrappers, and whatnot, so that 1-day job becomes 1-month job or even worse, when it is about bloated frameworks instead of small libraries, 1-year job.

Then management people assume that hey, by using this trend framework of the year, which is the best thing since sliced bread (this is universal law of physics, like the speed of light, and it can't be questioned), it took a full man-year to get X done, so "imagine how difficult it would have been without the framework, you would have had to write all this 57 000 000 LoC from scratch, isn't it convenient this is all available to us!"

In other words, I don't prefer, but I can accept the priorization of short-term over long-term, i.e., to ship something quickly. But this is not the trend I'm seeing. In reality, we see fairly simple projects get overly bloated, way over budget, way over schedule, supposedly developed using strategies that make things "quick", but result being the opposite: only the quality matches the "fast&ugly" expectation, but cost is cathedral-level.

Hence, I believe the first step towards rectification of this bullshit situation would be to truly measure the time and money poured into software projects, and start doing that buggy unmaintainable crap quickly and cheaply, because now we have buggy unmaintainable crap done slowly and expensively. I.e., don't try to fix quality first, fix the cost side first.

After we trim all the fat off and get into minimum viable prototypes, we can start building sustainable long-term practices, i.e., improve the quality of the product making short-term sacrifices regarding time and money.

But right now, it's impossible to ask for more time and money, because software projects already are way too expensive.
« Last Edit: July 29, 2022, 06:18:13 am by Siwastaja »
 

Online brucehoult

  • Super Contributor
  • ***
  • Posts: 6415
  • Country: nz
Re: food for thought: code bloat
« Reply #118 on: July 29, 2022, 08:20:34 am »
As conclusion to our discussion, care to comment of the original DRM terms, especially the one which locks you in the Apple ecosystem(unlimited copies on Apple devices)?

The record labels were convinced by Apple's security mechanisms, but not by others?

Once they dropped DRM that wasn't important of course.

It was Apple pushing the dropping of DRM.
 

Offline nigelwright7557

  • Frequent Contributor
  • **
  • Posts: 725
  • Country: gb
    • PCBCAD software
Re: food for thought: code bloat
« Reply #119 on: October 17, 2022, 09:56:38 pm »
Bloat exists because it's currently cheaper to leave piles of shit everywhere than clean it up.

When performance or user experience suffers in any way then it will change.

There's a massive performance and energy usage wall coming up on the hardware side of things that will put the focus back on software efficiency.
With 5GHz processors and many gigs of DRAM it doesnt matter as much these days.
In the distant past I remember scraping the last byte out of assembly language programs to use less memory and gain more speed.
 

Online Berni

  • Super Contributor
  • ***
  • Posts: 5373
  • Country: si
Re: food for thought: code bloat
« Reply #120 on: October 18, 2022, 05:07:32 am »
With 5GHz processors and many gigs of DRAM it doesnt matter as much these days.
In the distant past I remember scraping the last byte out of assembly language programs to use less memory and gain more speed.

It does if you have to wait >30 seconds for a TV to boot up. Or when i open up excel and add a graph of a table with 50k points and the whole program locks up for 10 seconds before the graph suddenly pops in.

Sure we might not have to think about saving every last byte these days, we got plenty to throw around. But at least optimize your software to the point that it feels like it is running on a 5GHz machine rather than on a Pentium II
 
The following users thanked this post: madires, SiliconWizard

Offline nigelwright7557

  • Frequent Contributor
  • **
  • Posts: 725
  • Country: gb
    • PCBCAD software
Re: food for thought: code bloat
« Reply #121 on: October 27, 2022, 12:38:12 am »
This is a problem in all forms of writing.  There is a famous quote attributed variously to Blaise Pascal, Mark Twain and Jane Austen among others.

"I don't have time to write you a short letter, so I am writing a long one."

It takes time, energy and thought to reduce code size.  All of these are of limited availability in development.

A lot of people still pile in and start writing code instead of planning it.
If you fail to plan, you plan to fail.
 

Offline Nominal Animal

  • Super Contributor
  • ***
  • Posts: 8349
  • Country: fi
    • My home page and email address
Re: food for thought: code bloat
« Reply #122 on: October 27, 2022, 08:32:49 am »
A lot of people still pile in and start writing code instead of planning it.
If you fail to plan, you plan to fail.
True.

Although, I do tend to write code before I finalize a plan: I create separate test cases to check the key parts and algorithms of the core logic, to make sure the plan I'm planning on is on a solid ground.  I usually learn a lot about it in the progress, and end up rewriting the part anyway in the actual project, so one could consider it wasted effort, but I don't mind: understanding the key parts of the algorithm is worth the time and effort spent to me.

Example:

In certain types of molecular dynamic simulations, temperature control is implemented by simply scaling particle velocities.  This works well for bulk, but for small independent clusters, the initial random velocities do not cancel out perfectly, and the temperature control just makes them rotate faster.  In some cases this is okay, in others it is unwanted.  So, one solution is to determine the particles that form such clusters, and dampen their rotation.

How exactly do you determine which atoms are part of a cluster, when you have some kind of gas permeating the simulation volume?  You might use rules of thumb, but they'll likely fail.  If the simulation is about growing clusters in a very low density hot gas (a very common real life case), atoms are constantly aggregating into the cluster.  In fact, you don't even know how many clusters you have in the simulation.  Asking the human to select the atoms in the cluster is not viable, since simulations tend to be run on HPC clusters in queues, not interactively.

It turns out there is a trivial solution that costs very little.  It is based on the disjoint-set data structure.  Basically, before each time step, you initialize the disjoint set (with an unique integer for each atom, basically numbering them).  Then, when you calculate pairwise interactions –– these simulations almost always use classical potential models, not quantum mechanical ones –– you merge any sets that are within a cut-off distance, approximating covalent and ionic bonds.  (You can do a more precise rule, based on potential energies and the force between the pair of atoms, but it turns out to not be necessary for this.)
At the end of the time step, you flatten the disjoint set paths, and you end up with a cluster identifier for each individual atom.

To implement this, you wouldn't just start modifying your favourite simulator like Gromacs or LAMMPS –– both are open source, so you're definitely allowed to.  Or, well, you'd start by experimenting and testing, before formulating a plan.

Without a plan, just making changes that seem to produce the results you want, you're risking the results of all simulations done by the modified version!

After doing the initial tests so you roughly know where to add or modify the stuff needed, you write a plan.  Then, you check the plan against the logic of the existing simulator, perhaps talk to the developers on the mailing list for confirmation, and only *then* do you start implementing the actual changes.

Now, this may sound like a lot of work.  Thing is, it actually saves total effort.  (At least if we count in the efforts spent to debug willy-nilly made changes and the ensuing erroneous results and other users' efforts in finding why.)

I do not treat scientific simulations any differently than I do normal applications.  I do not want my applications to silently garble or lose data; at minimum, I want them to tell me whenever they detected something unexpected.  Having them do retries and workarounds is a plus.  None of this is really hard; it just takes developers that care.
 

Offline SiliconWizard

  • Super Contributor
  • ***
  • Posts: 17781
  • Country: fr
Re: food for thought: code bloat
« Reply #123 on: October 27, 2022, 09:02:04 pm »
This is a problem in all forms of writing.  There is a famous quote attributed variously to Blaise Pascal, Mark Twain and Jane Austen among others.

"I don't have time to write you a short letter, so I am writing a long one."

It takes time, energy and thought to reduce code size.  All of these are of limited availability in development.

A lot of people still pile in and start writing code instead of planning it.
If you fail to plan, you plan to fail.

Yep. But the "trick" here is to clearly define what "planning" means in a given context.

If, as is very common these days, "planning" is almost only about timing - focusing on when things must be done - this is going to please top management (until they realize that was all bullshit anyway and that tech plannings rarely hold), but it's not going to help much otherwise.

Now if by planning you mean "architecturing", then sure. Sadly, this tends to be a forgotten notion in software these days, and if you talk about software architecture, you're likely to be considered a dinosaur stuck in the waterfall days. Yeah. And, yeah, people tend to focus on short-term rewards. Just like in other areas anyway. This isn't just with software development.

But anyway. The current state of software development makes me pretty sad overall. Unless you have full control over what you do and how you do it, I would recommend not walking, but running away from software development. Just do something else. Really. And leave it to the ones who are happily churning along.

 

Online Kjelt

  • Super Contributor
  • ***
  • Posts: 6736
  • Country: nl
Re: food for thought: code bloat
« Reply #124 on: October 28, 2022, 08:25:18 am »
Now if by planning you mean "architecturing", then sure. Sadly, this tends to be a forgotten notion in software these days, and if you talk about software architecture, you're likely to be considered a dinosaur stuck in the waterfall days.
The problem is that the term SW and System architect are watered down to mineral water these days.
I now see architects with less than 5 yrs of work experience f*cking it up because they have no clue what they do except look good and talk the talk to pl and mgt in the ten meetings a day they are sitting in.
I said it before in the 90s the career track was
jr sw eng, mr sw eng, sr sw eng, jr sw arch, sr sw arch, jr system arch, sr system arch.
And between each step there would at least be 3 to 5 yrs experience.

But indeed it is all watered down, having sw engs from a different background like biology or history , they do not know design patterns, the solid principles. If or unfortunately when they become architect in a few years just because they hold an academic grade (in biology) you never know what is going to happen  |O
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf