That was an interesting exercise. Of all the projects on http://www.squeaksource.com 495 have downloads greater than 1000. Of those 495, some observations can be made.
Some are old and bypassed by other projects. Some are for compsi courses at schools. Some are part of the Pharo development process. Others are Pharo only. Many others are idiosyncratic personal projects. I'd say there are 50 projects people go back to again and again. What is it they say? 20% of all salespeople get 80% of all the sales. Something like that is happening on SqS. There is a canon of projects and a lot of outliers.
I had thought of scraping SqS to get the goods and move it over to Squeak Map. In truth, if I made everything at MetacelloRepository available and then then moved 50 key projects by hand then I'd have covered 80% of all possible needs. The idea that SqueakSource is useful because it has breadth and depth is a canard. People are going back over and over again for the same projects.
Chris
SqueakSource Projects of >1000 downloads:
jQuery 391 SqueakCells ADayAtTheBeach SDGoodsStore SCouchDB adl ajp AST Aconcagua Scribo Aida AioPlugin Albatross Alien AlienOpenGL AnalogClock AXAnnouncements Applescript ArbitraryPrecisionFl
20
Arduino Arki AspectMaps AsyncWrapper Athena autoMethodCat IOSPersistent Autotest BTree Babel BackupMaker Balloon3D AT Beach SystemBenchmarks bifrost BitmapCharacterSet BkbagMagmaTesting Bob BobsUI
40
BotIncPica BreakOut BrowseUnit BrowserBooster ByteSurgeon CAnalyzer Compiler CS598rej IOOBCarcassone CardsGame Chalten ChangeBoxes Chronos Chuck Citezen Classloader ClassboxBrowser Classbox Cloudfork
60
CollectionExtensions Comix CommandShell OmniCompass Connectors Conrad Coral CouchDB Coverage CroquetGL Cryptography DBXTalk DaliotsPlayground DateCollection DelaunayTmpStuffs DeltaStreams DependencyWalker DeveloperWorkspace DevEnvironment38 DiffMerge
80
DGV ObjectsAreNouns digitalsimulator DirtyExperiments Dispatch DPON DrGeoll DynaMoose DynamicAspects DynamicProtocols Ecco ElectricityGame EnhancedOB EpigentRiakInterface XTream ExternalWebBrowser Exupery EyeSee FreetypePlugin
100
FTPServer Fame Faure fs FlyingObjects FracTalk FMA FreeTypePlus Fuel fpm FRP GOODS GSoCSqueakland GStreamer Gainer GdsFeel Genie GenomeTools Geppetto GestionImmo GitFS
120
glamoroust Glamour Glorp Goya Graph Green HID htmlccsparser MediaServer HandySimulator ht HealthReportProducer HelpSystem Hermes Hermion hessian Hexconverter HtmlTableMorph HttpView2 INIFile
140
IRC IRCLogViewer IRCBot Illiad IlliadDev Illias ImageForDevelopers SealinesGame Installer IGLecture JBARepo JKExperiments JNIPort JQueryWidgetBox JSON Jags JamTomorrow Java Kabungu KernelImage
160
Keymapping KidsFirst KinectGroup Klotz Knigge KomHttpServer Kumpel LCSTalk Ladrillos LazyCollections LiveWiki LoFPlayer1 LoFPlayer2 Loader Logging Lumiere MCUpdateTest MSE MSQ MaClientServer
180
MaBase Magma Magma Inbox MagritteGlorp MandelMorph2 Marea MarianoPhD Mars ComplexExtensions NumberExtensions Quaternion MathMorphsRevival Maze MediaView MemoryMonitor KidsFirstMerge Merlin Null MetaSource Metacello
200
MetacelloRepository MetacelloBrowser Metaspin Metanool Mewa cs2340M2 MinimalConnectors minotauros Miro Mocketry Mondrian MongoTalk Monticello Monticello2 mc Moose MooseAlgos MooseDeprecated MooseJEE Momo
220
Momo10 PunchedCards PharoMorphicExtras MrHolmes MultiColumnListMorph Murmansk mpd Musinum MutationTesting MySQL NBOpenGL NanoTraits NativeBoost Net NewCompiler NewCompilerPragma NewInspector Nile Nutcracker O2
240
OBAddOns OBUniverse OCompletion ODBC ODE OMeta OSC OSProcess OSProcessPlugin ObjectBrowser ObjectFinder ObjectMetaTools ObjectiveCBridge2 ObjectiveCBridge ObjectsAsMethodWrap Ocean Officious Refactory PharoOB OmniBase
260
OmniBrowserFixes OmniTesting TraitsOmniBrowser OpalCompiler OpenDocument openqwaq OrderPreservingDict Phantom POOExerciseResults PSUCS520 universes PackageInfo PackageInfoExtras PackagesForSqueak Packages Pacman SoftwareEngineering Pastell Patagonia Persephone
280
Perseus PetitSQLParser PetitGitLogParser PetitJSParser PetitJava PetitPHPParser Phantasia Pharo PharoSound PharoByExample Pharo14 PharoGoodies PharoInbox PharoNonCorePackages PharoRB PharoTaskForces PharoTreatedInbox phexample PierPersistentStorage P4
300
p Platypus CurlPlugin PlusTools PointerExplorer UIEnhancements PostgresV2 PreferenceBrowser ProfStef OBO2Merge Promoter PropertyList QC Quinto Quotes RWS RFB ROE rsrss Raphael
320
RayTracing Realtalk Reef rb ttfReaderRefactored RefactoringEngine ReflectiveTest Regex RenderMouse Ring Rio Roassal Roborally RobotSoccer RoelTyper Rome RubyShards RussianSupport SIXX smtpserver
340
SQueakLite SQueaken SSpec ST2JS SUnit SVI SW2Calendar SW2Captcha SWT Safara Sake Sandcastle SandstoneDb SawfishCompat Scamper nscratch Schildroetenrennen Scrabble SreenShotMorph ScriptManager
360
SeaChart Seafox Seaside Seaside29Addons Seaside29old Seaside30 Seaside30Addons Seaside30LGPL Seaside31 SeasideAndSails SeasideExamples SeasidePresentation Jetsam SeasideTesting SeasideXUL SecureSqueak setup ShapeST80 ShoreComponents ShoreWays shout
380
Slideshow Slot SmaccDevelopment SmallReddit SmallAutoDoc sblog SmallDude SmallFaces SmallHarbour SmallPOS SmallWiki SW2NKDS SmallWiki2Importer Smallapack SnakeGame SoapOpera Soup sourcetalk SpaceWar Speech SPort
400
Spy SpyCam SqueakExamples DomView SqueakManhattan SqueakNOS SqueakPeople SqueakSet SqueakByExample Services 311 SqueakAddOns SqueakBaseClasses SqueakBot SqueakDBX SqueakDefense squeakelib SqueakEnh Gtk SqueakSSL
420
ss ss2 squeaksource3 STOMP stamp StuartsStuff Soduku iCalSummerTalk SunnysidePlanning2 SwaLint Swazoo SystemEditor TallySupport Tamagotchi Teachable Terminus TestBrowser TestSmells Testing textling
440
Fish andrewco MorphingDictionary VersionBrowser2 Reflectivity Prevayler BFAV2 TilingWindowManager TimeZoneDatabase FelTimetable ToolBuilder Toothpick TraceLibrary Traits Trike Tsunami TweakCore TweakExtras TypePlug URI
460
UbiquiTalk Units uss SPDProjectUpdates UsedObjects VMMaker Versionner WFM WebClient Stave WebScrabble WebTester WikiPhone WikiTracker WorldOfGames WriteBarrier XDCP XMLSupport XMLWriter XMLPullParser
480
XMLRPC Xtreams YaBreakOut ZincHTTPComponents ar backup 2D dsm eCompletion ical moquam rST RPSSgroup10 smallUML workbench
495
I think it's nice if the default list that opens in SqueakMap is the list of "supported" software; the list that has been tested and verified to work.
So if you do a scrape into SM, we should keep that in mind.
I would loathe to base decisions on # of downloads. If a project has multiple dependent packages (like Magma), I'm pretty sure it inflates the number to 1 per package, even though that should be just "1" download. Besides that, wouldn't that basis favor older packages since they existed longer to be potentially downloaded? To me it just doesn't seem like a good basis..
On Tue, Mar 6, 2012 at 5:30 PM, Chris Cunnington smalltalktelevision@gmail.com wrote:
That was an interesting exercise. Of all the projects on http://www.squeaksource.com 495 have downloads greater than 1000. Of those 495, some observations can be made.
Some are old and bypassed by other projects. Some are for compsi courses at schools. Some are part of the Pharo development process. Others are Pharo only. Many others are idiosyncratic personal projects. I'd say there are 50 projects people go back to again and again. What is it they say? 20% of all salespeople get 80% of all the sales. Something like that is happening on SqS. There is a canon of projects and a lot of outliers.
I had thought of scraping SqS to get the goods and move it over to Squeak Map. In truth, if I made everything at MetacelloRepository available and then then moved 50 key projects by hand then I'd have covered 80% of all possible needs. The idea that SqueakSource is useful because it has breadth and depth is a canard. People are going back over and over again for the same projects.
Chris
SqueakSource Projects of >1000 downloads:
jQuery 391 SqueakCells ADayAtTheBeach SDGoodsStore SCouchDB adl ajp AST Aconcagua Scribo Aida AioPlugin Albatross Alien AlienOpenGL AnalogClock AXAnnouncements Applescript ArbitraryPrecisionFl
20
Arduino Arki AspectMaps AsyncWrapper Athena autoMethodCat IOSPersistent Autotest BTree Babel BackupMaker Balloon3D AT Beach SystemBenchmarks bifrost BitmapCharacterSet BkbagMagmaTesting Bob BobsUI
40
BotIncPica BreakOut BrowseUnit BrowserBooster ByteSurgeon CAnalyzer Compiler CS598rej IOOBCarcassone CardsGame Chalten ChangeBoxes Chronos Chuck Citezen Classloader ClassboxBrowser Classbox Cloudfork
60
CollectionExtensions Comix CommandShell OmniCompass Connectors Conrad Coral CouchDB Coverage CroquetGL Cryptography DBXTalk DaliotsPlayground DateCollection DelaunayTmpStuffs DeltaStreams DependencyWalker DeveloperWorkspace DevEnvironment38 DiffMerge
80
DGV ObjectsAreNouns digitalsimulator DirtyExperiments Dispatch DPON DrGeoll DynaMoose DynamicAspects DynamicProtocols Ecco ElectricityGame EnhancedOB EpigentRiakInterface XTream ExternalWebBrowser Exupery EyeSee FreetypePlugin
100
FTPServer Fame Faure fs FlyingObjects FracTalk FMA FreeTypePlus Fuel fpm FRP GOODS GSoCSqueakland GStreamer Gainer GdsFeel Genie GenomeTools Geppetto GestionImmo GitFS
120
glamoroust Glamour Glorp Goya Graph Green HID htmlccsparser MediaServer HandySimulator ht HealthReportProducer HelpSystem Hermes Hermion hessian Hexconverter HtmlTableMorph HttpView2 INIFile
140
IRC IRCLogViewer IRCBot Illiad IlliadDev Illias ImageForDevelopers SealinesGame Installer IGLecture JBARepo JKExperiments JNIPort JQueryWidgetBox JSON Jags JamTomorrow Java Kabungu KernelImage
160
Keymapping KidsFirst KinectGroup Klotz Knigge KomHttpServer Kumpel LCSTalk Ladrillos LazyCollections LiveWiki LoFPlayer1 LoFPlayer2 Loader Logging Lumiere MCUpdateTest MSE MSQ MaClientServer
180
MaBase Magma Magma Inbox MagritteGlorp MandelMorph2 Marea MarianoPhD Mars ComplexExtensions NumberExtensions Quaternion MathMorphsRevival Maze MediaView MemoryMonitor KidsFirstMerge Merlin Null MetaSource Metacello
200
MetacelloRepository MetacelloBrowser Metaspin Metanool Mewa cs2340M2 MinimalConnectors minotauros Miro Mocketry Mondrian MongoTalk Monticello Monticello2 mc Moose MooseAlgos MooseDeprecated MooseJEE Momo
220
Momo10 PunchedCards PharoMorphicExtras MrHolmes MultiColumnListMorph Murmansk mpd Musinum MutationTesting MySQL NBOpenGL NanoTraits NativeBoost Net NewCompiler NewCompilerPragma NewInspector Nile Nutcracker O2
240
OBAddOns OBUniverse OCompletion ODBC ODE OMeta OSC OSProcess OSProcessPlugin ObjectBrowser ObjectFinder ObjectMetaTools ObjectiveCBridge2 ObjectiveCBridge ObjectsAsMethodWrap Ocean Officious Refactory PharoOB OmniBase
260
OmniBrowserFixes OmniTesting TraitsOmniBrowser OpalCompiler OpenDocument openqwaq OrderPreservingDict Phantom POOExerciseResults PSUCS520 universes PackageInfo PackageInfoExtras PackagesForSqueak Packages Pacman SoftwareEngineering Pastell Patagonia Persephone
280
Perseus PetitSQLParser PetitGitLogParser PetitJSParser PetitJava PetitPHPParser Phantasia Pharo PharoSound PharoByExample Pharo14 PharoGoodies PharoInbox PharoNonCorePackages PharoRB PharoTaskForces PharoTreatedInbox phexample PierPersistentStorage P4
300
p Platypus CurlPlugin PlusTools PointerExplorer UIEnhancements PostgresV2 PreferenceBrowser ProfStef OBO2Merge Promoter PropertyList QC Quinto Quotes RWS RFB ROE rsrss Raphael
320
RayTracing Realtalk Reef rb ttfReaderRefactored RefactoringEngine ReflectiveTest Regex RenderMouse Ring Rio Roassal Roborally RobotSoccer RoelTyper Rome RubyShards RussianSupport SIXX smtpserver
340
SQueakLite SQueaken SSpec ST2JS SUnit SVI SW2Calendar SW2Captcha SWT Safara Sake Sandcastle SandstoneDb SawfishCompat Scamper nscratch Schildroetenrennen Scrabble SreenShotMorph ScriptManager
360
SeaChart Seafox Seaside Seaside29Addons Seaside29old Seaside30 Seaside30Addons Seaside30LGPL Seaside31 SeasideAndSails SeasideExamples SeasidePresentation Jetsam SeasideTesting SeasideXUL SecureSqueak setup ShapeST80 ShoreComponents ShoreWays shout
380
Slideshow Slot SmaccDevelopment SmallReddit SmallAutoDoc sblog SmallDude SmallFaces SmallHarbour SmallPOS SmallWiki SW2NKDS SmallWiki2Importer Smallapack SnakeGame SoapOpera Soup sourcetalk SpaceWar Speech SPort
400
Spy SpyCam SqueakExamples DomView SqueakManhattan SqueakNOS SqueakPeople SqueakSet SqueakByExample Services 311 SqueakAddOns SqueakBaseClasses SqueakBot SqueakDBX SqueakDefense squeakelib SqueakEnh Gtk SqueakSSL
420
ss ss2 squeaksource3 STOMP stamp StuartsStuff Soduku iCalSummerTalk SunnysidePlanning2 SwaLint Swazoo SystemEditor TallySupport Tamagotchi Teachable Terminus TestBrowser TestSmells Testing textling
440
Fish andrewco MorphingDictionary VersionBrowser2 Reflectivity Prevayler BFAV2 TilingWindowManager TimeZoneDatabase FelTimetable ToolBuilder Toothpick TraceLibrary Traits Trike Tsunami TweakCore TweakExtras TypePlug URI
460
UbiquiTalk Units uss SPDProjectUpdates UsedObjects VMMaker Versionner WFM WebClient Stave WebScrabble WebTester WikiPhone WikiTracker WorldOfGames WriteBarrier XDCP XMLSupport XMLWriter XMLPullParser
480
XMLRPC Xtreams YaBreakOut ZincHTTPComponents ar backup 2D dsm eCompletion ical moquam rST RPSSgroup10 smallUML workbench
495
squeak-dev@lists.squeakfoundation.org