Jump to content

pjf

Members
  • Posts

    272
  • Joined

  • Last visited

Everything posted by pjf

  1. Oh dear. Is this happening with the command-line as well as for the GUI? We recently discontinued support for Mono 3.2.8, as we were hitting a bunch of bugs in it, but I'm guessing 14.04 still ships with 3.2.8 by default. You can upgrade mono by using the mono project's ppa , which cut'n'pasting is done with: And then upgrading as per normal. Having said that, I'd personally love us to keep supporting Ubuntu 14.04 as it is a long term release, so if I get a chance I'll see if I can find what the 3.2.8 bugs were that we are hitting and if we can work around them.
  2. Aww yis! CKAN v1.18.0 aka Star Tram released! Changes since v1.16.1: Bugfixes [Core] In certain cases a NullReferenceException could be produced inside error handling code when processing the registry. (#1700 by: keyspace, reviewed: dbent) [GUI] Fix typo in export options. (#1718 by: dandrestor, reviewed: plague006) [GUI] Fix unit of measure for download speed. (#1732 by: plague006, reviewed: dbent) [Linux] Better menu integration of the CKAN launcher. (#1704 by: reavertm; reviewed: pjf) Features [Core] install stanzas can have an as property allowing directories and files to be renamed/moved on installation. (#1728 by: dbent; reviewed: techman83) [GUI] Added "filter by description" search box. (#1632 by: politas; reviewed: pjf) [CLI] compare command now checks positive and negative rather than -1/+1 (#1649 by: dbent; reviewed: Daz) [GUI] In windows launch KSP_x64.exe by default rather than KSP.exe. (#1711 by plague006; reviewed: dbent) [Core] Unlicense added to CKAN as an option for mods. (#1737 by plague006; reviewed: techman83) [Core] CKAN will now read BuildID.txt for more accurate KSP versions (#1645 by: dbent; reviewed: techman83) Internal [Multiple] Removed various references and code for processing mods on KerbalStuff. Thank you, Sircmpwn, for providing us with such a great service for so long. (#1615 by: Olympic1; reviewed: pjf) [Spec] Updated Spec with the kind field which was introduced in v1.6. (#1662,#1597 by: plague006; reviewed: Daz) [Spec] ckan.schema now enforces structure of install directives (#1578 by: Zane6888; reviewed: pjf, Daz) [Spec] Documented the x_netkan_github and use_source_archive options in NetKAN files. (#1774 by dbent; reviewed: plague006) [Spec] Clarified the install_to directive. (#1771 by: politas; reviewed: plague006) [Spec] Clarified example of a complete metanetkan file (#1753 by: plague006; reviewed: politas) [Spec] Removed stray comma (#1736 by: plague006; reviewed: politas) [NetKAN] Catch ValueErrors rather than printing the trace (#1648 by: techman83; reviewed: Daz ) [NetKAN] Catch ksp_version from SpaceDocks newly implemented game_version (#1655 by: dbent; reviewed: -) [NetKAN] Allow specifying when an override is executed (#1684 by: dbent; fixes: #1674) [NetKAN] Redirects to the download file are now resolved when using HTTP $krefs (#1696 by: dbent, reviewed: techman83) [NetKAN] Remote AVC files will be used in preference to ones stored in the archive if they have the same version (#1701 by: dbent, reviewed: techman83) [NetKAN] Sensible defaults are used when fetching abstract and homepage from github. (#1726,#1723 by: dbent; reviewed: politas) [NetKAN] Add Download Attribute Transformer (#1710 by: techman83; reviewed: dbent) [NetKAN] Add ksp_version_strict to property sort order (#1722 by: dbent; reviewed: plague006) [Docs] Updated CONTRIBUTING.md and README.md documentation. (#1748 by plague006; reviewed: politas) [Build] Support for mono 3.2.8 deprecated (#1715 by dbent; reviewed: techman83) [Build] Added support for building the CKAN client into a docker container. (#1747 by mathuin; reviewed: pjf) [Build] Continuous integration is less susceptible to third-party network errors. (#1782 by pjf; reviewed: techman83) [Core] Defend against corrupted KSP version numbers in old registries. (#1781 by pjf; reviewed: politas) [Core] Support for upcoming download hash functionality in client. (#1752 by plague006; reviewed: pjf) [GUI] Fixed spurious build warning (#1776 by politas; reviewed: pjf) Notes Windows users must have .NET 4.5 installed. Linux users, please oh please apt-get install libcurl4-openssl-dev (Debian/Ubuntu/Mint) or yum install libcurl-devel (RedHat/Fedora) if you have not already done so. Mac/Linux/Mono users: please mozroots --import --ask-remove if you're a new user, to update mono's certificate store. Congratulations to Daz on the engagement! Release image public domain, courtesy NASA.
  3. This is brainstorming, so take the bits you like, and discard the bits you don't, but my big wish regarding life-support all has to do with long-term voyages. I can best explain this with some storyboards: Brett is performing a 2-day mission in space to study the effects of microwaving popcorn in microgravity. His craft needs water, food, oxygen, CO2 scrubbers, and waste disposal facilities, but isn't fitted with exercise or washing facilities. His mission is short enough they're not needed, he can always shower when he gets back. Jenna is undertaking a six month mission investigating a strange monolith. Her craft is equipped with similar facilities to Brett's above, but also includes water recycling, two dozen boxes of wet-wipes, and some jumbo-sized rubber bands. The first shower back on Kerbal will be amazing, and getting used to full gravity again will be tough, but manageable. Zorblax is the machine intelligence managing an off-world colony. The colonists have access to centripetal gravity, full gym facilities, showers that don't require breathing masks to use, and an enriched environment with entertainment and socialisation facilities. Nobody wants to go home, and some colonists were born here in space. The idea would be that kerbals have (optional) strength, hygiene, mental, and physical health stats. Facilities provide both a set-point that these stats move toward (showers are better than wet-wipes), and also determine the rate at which that decay occurs (being in space for prolonged periods will cause your mental health to suffer, but a well-stocked library and crew members you like will slow the rate at which it happens). Facilities may require resources to run (water, wet-wipes, electricity, etc), may produce waste, and may be limited in how many kerbals they can support. Kerbals being low in one stat may influence others: a lack of hygiene or strength and influence mental and physical health. An advanced mechanic may be that having different types of facilities provides bonuses over a single facility. Having a library *and* a videophone is better than either one on its own. Standard rations may be fine for keeping you alive, but mixing in some freeze-dried ice-cream and tubes of vegemite can add variety and influence mental health appropriately. The end goal for me is that when planning a long voyage, or a station with long-term residency, I have to think more about facilities over the basics of food, water, oxygen, and waste. And even if I do, then kerbonauts will still need to come home eventually for health reasons, unless my station is so amazing it's become a full and enriched habitat (which would be a serious megaproject).
  4. CKAN v1.16.1 aka Plasma Window released! Changes since v1.16.0: Bugfixes [GUI] The "Not Installed" filter now has a more correct label. (#1573 by: plague006; reviewed: Postremus) [GUI] Scrolling of the mod-list no longer requires clicking on the list after start-up. (#1584 by: ChucklesTheBeard; reviewed: Olympic1) [GUI] The GUI now displays repo information as "Source Code" rather than "Github". (#1627 by: politas; reviewed: pjf) Features [GUI] The export menu now selects "favourites" as default, as that's almost always what people want. (#1609 by: plague006; reviewed: pjf) [Core/NetKAN] CKAN will now also work for mods that are hosted on SpaceDock. Use the new $kref "spacedock". (#1593 by: Olympic1, Zane6888; reviewed: pjf) [Core] CKAN has now an improved version sorting. (#1554 by: distantcam; reviewed: Olympic1) Internal [General] General code tidy-up. (#1582, #1602 by: ChucklesTheBeard; reviewed: plague006, Olympic1) [GUI] Avoidance of a future bug involving how we query users regarding choices. (#1538 by: pjf, RichardLake; reviewed: Postremus) [GUI] Fixed mispellings in the word "directory". (#1624 by: tonygambone; reviewed: pjf) [Spec] Updated Spec with newer netkan.exe features. (#1581 by: dbent; reviewed: Dazpoet) [NetKAN] netkan.exe now has support for downloading GitHub sources of a release. (#1587 by: dbent; reviewed: Olympic1) [NetKAN] netkan.exe checks for malformed url's and prevents them from being added to the metadata. (#1580 by: dbent; reviewed: Olympic1) [NetKAN] netkan.exe will now add all authors listed on SpaceDock (#1600,#1620 by: dbent; reviewed: techman83) [Core] Spelling mistake in documentation fixed (#1623 by: Dazpoet; reviewed: pjf) [Reporting] Creation of an issues template to help with bug reporting. (#1596 and #1598 by plague006, Shuudoushi; reviewed: Dazpoet, Olympic1) Notes Windows users must have .NET 4.5 installed. Linux users, please oh please apt-get install libcurl4-openssl-dev (Debian/Ubuntu/Mint) or yum install libcurl-devel (RedHat/Fedora) if you have not already done so. Mac/Linux/Mono users: please mozroots --import --ask-remove if you're a new user, to update mono's certificate store. Release image courtesy Ben-Liang, Shi, Huang Sheng, Zhu Kun, and Lu Yuan-Rong. “Experimental Study of the Plasma Window.” Chinese Physics C 38, no. 1 (2014): 018201.
  5. Oh drat. That's a bug. I've opened an issue for us to track it. But with that aside, you're now able to use CKAN with your preferred install?
  6. Oh no, I've been travelling like a person who's travelling for five months per year. Have we responded to your RP-0 problems yet? (RP-0 thankfully isn't just me; I just hang around the edges these days.)
  7. That's a really good theory. The CKAN executable would work fine both under wine/.NET and mono, but those systems would present different views to the code itself. It would *also* result in registry settings being stored in different locations (~/.mono/registry under Linux, and the emulated Windows registry under wine). Wine would also present a `Z:` drive to provide a shim to your Linux filesystems. If you start the process with `mono ckan.exe` (for the GUI) or `mono ckan.exe <cmd>` (for the cmdline, with <cmd> being your command), then that should make sure it's always running in the same environment, and using the same KSP directory locations.
  8. 1. The CLI and GUI both store settings in the ".NET Registry". 2. On linux the .NET registry is at ~/.mono/registry/CurrentUser/software/ckan/values.xml . You can edit them if you want 2a. You may find it easier to use `ckan.exe ksp list`, `ckan.exe ksp add <name> <path>`, and `ckan.exe ksp default <name>` to adjust the settings. These also won't have problems with any "hidden" directories. 3. That's *weird*. I don't see a 'Z:' drive at all, and I'm using mono/Linux. There's a good chance if you remove the `Z:` things will work; or at least be differently broken. (This should be pretty straightforward editing `values.xml`). 4. You can totally remove the CKAN directory and everything's gone. Of course, that won't remove any mods you've installed using the CKAN. There's also a super-easy option of just copying ckan.exe to the install you'd like it to use, and starting it from there. We *always* look in the same directory as the executable for an install first, which is convenient for all sorts of things like mobile installs that may not have a stable path. Edit: Or at least, I thought we always look in the same location. I'm checking this after lunch! Hope this helps! ~ Paul
  9. Thank you! Method::Signatures is an amazing module which I love very much. It's a shortened SHA-1 of the URL, which means we can easily tell if we've downloaded something already or not. The easiest way to see it is with the `ckan show` command. For example, the output below shows details for a mod I don't have installed, but which CKAN is aware of. The filename is right down the bottom: CKAN only cares about the first eight characters of the file; the rest is politeness to humans. In the future there's a good chance we'll move to more heavyweight digests of the file contents itself, which will make it easier to drop-in files downloaded separately, and for distributed/redundant download locations.
  10. KerbalStuff Recovery Update Hey everyone! Thank you all so much for your patience with me travelling! I'm writing this from a bus between New York and Boston, which conveniently has both free Wi-Fi and power. I'm very glad to say that I've finished my second round of recovery efforts by using my su-perl-powers. : ) I've managed to identity about 2,100 CKAN .meta files which were pointing to KerbalStuff, and which had licenses which permit redistribution. For all of these files, I've updated them to point to a mirror site maintained courtesy of @VITAS . Because of the huge numbers of files involved, I haven't been able to check that they all exist at the destination site; in fact, I expect that some of the older files (for 0.25, 0.90, and the like) are probably absent. You can see the pull request if you're curious of details. This still represents about 80% of the convertable material which exists, which means a lot of mods that were previously broken should now be less broken. For mods which aren't on VITAS' mirror, and for mods which don't come with a license to redistribute, we can still expect problems, and they'll probably have to be examined on a case-by-case basis. These changes should be considered both experimental and temporary. VITAS won't be running the mirror forever, and my code makes assumptions about the way in which KerbalStuff was storing files which may not be correct, even if they worked for all the mods I tested them with. However these changes shouldn't make things any worse. Thank you all again for your patience while I've been on the road, and especially my new and existing Patreon supporters. You are all amazing! ~ Paul
  11. There is now, and it's exactly what you've written! Olympic1 massaged the code to work today, and I merged the changes this afternoon. There'll also be a client release soon that will handle a little bit of extra "Spacedock" metadata, but the existing clients should work fine with the new files we're producing now.
  12. Update from me: I've recovered the mods which: 1. Are marked with free licenses. 2. Were in our indexer's cache where I can easily get to them. 3. Complete list of recovered mods in the spoiler below. There are still free mods from KS that have not been migrated. I'll be doing my best to do those in the next couple of days, but they're likely to be less straightforward. No CKAN client update is necessary, just update your metadata. Be aware some mods may have dependencies which aren't available, so expect there still to be some sharp edges. I'm out for the night, but I expect you'll see a lot more of me over the next few days. May you go to space today, ~ Paul
  13. Update from me: I've recovered the mods which: 1. Are marked with free licenses. 2. Were in our indexer's cache where I can easily get to them. 3. Complete list of recovered mods in the spoiler below. There are still free mods from KS that have not been migrated. I'll be doing my best to do those in the next couple of days, but they're likely to be less straightforward. No CKAN client update is necessary, just update your metadata. Be aware some mods may have dependencies which aren't available, so expect there still to be some sharp edges. I'm out for the night, but I expect you'll see a lot more of me over the next few days. May you go to space today, ~ Paul
  14. We sure do! That's one of the first things that entered the spec. So, my situation is currently: - I have a *maybe working* migration script using the KS mirror. I'd estimate with abut 30 minutes of preening it will be solidly working. It will only migrate mods that allow redistribution. It *may* miss a few with funny names. - However, I'm not exactly sure we'll see any KS mirrors contain to stay up for any length of time, because the archive has mixed licenses. If anyone's got a mirror up already, hops on #ckan, and is happy to slim that down to a list of known freely-licensed files, I'd be delighted to work with you. - Failing that, our indexer box has the last 4-5 months worth of releases from KS as a side-effect of its indexing operations. They're not in quite as useful a format, and it's certainly not the full collection of mods from KS, but I can work with it. - Under no circumstances will we be redistributing mods that don't have explicit licenses that permit redistribution. The end result is that you'll be able to install *most* of the mods that were hosted on KS via the CKAN client once the changes are in place. Mods that don't have a free license are obviously the exception. None of this is a statement on any KS:TNG hosting project. It's me making sure that you can continue to install free existing mods where the license permits. I don't need any additional resources right now, but I'll probably need some extra sleep tomorrow. Stay frosty, ~ Paul
  15. Just a quick status update from me: Jattenalle is amazing, and has re-hosted all the files. I'm wring code that remaps the old KS URLs to the new repo. You won't need to update your client for this, we can do it all server-side. I am literally wearing my Su-perl-man t-shirt right now. It wasn't planned that way, but it's really satisfying. Next update soon after I've got code in place to do the migration. ~ pjf
  16. Just a quick status update from me: Jattenalle is amazing, and has re-hosted all the files from KS. I'm wring code that remaps the old KS URLs to the new repo. You won't need to update your client for this, we can do it all server-side. I am literally wearing my Su-perl-man t-shirt right now. It wasn't planned that way, but it's really satisfying. Next update soon after I've got code in place to do the migration. ~ pjf
  17. Likewise! @politas, you totally rock! The amount of effort you've put into the project has been phenomenal. @stibbons: You sure will see me at Linux.conf.au! A KSP Birds-of-a-Feather would be pretty darn awesome; I'd love that!
  18. The good news is that after a bunch of testing, editing, and merging from @politas and myself today, we're down from 80-ish pull requests to 54. Most importantly: With only two exceptions, all human-submitted PRs have been merged. All the bot-submissions which are passing our automated tests and don't have additional requirements have been merged. In the case of the un-merged human PRs, one's waiting on confirmation from the mod-author if we should (the mod is still very much in development), and the other requires us to make some changes to how Real Solar System's textures are handled (which is a low-risk change, but I'm checking in with @NathanKell just to make sure). So with a day's worth of work, and two people, we've managed to knock over the most visible changes. It may still take a couple of hours for our indexing bot to update the client metadata, but you can check that on our status page. The outstading bot PRs are all new mods, which we definitely want to handle, but in the meantime all your existing mods should start upgrading nicely. Thank you all again so much for both your patience and encouragement! ~ Paul
  19. Just a quick note that thanks to @politas we've updated the CKAN metadata. It will take our bots a couple of hours to reindex; but after that we should have CKAN clients installing everything to the right place.
  20. Thank you all so much. I really appreciate all the kind words. I'm going through outstanding PRs now in an attempt to try and unclog things. If you want to help out, there are a few ways you can do so: If you use IRC, then hopping on the #ckan channel on irc.esper.net is where a lot of the action happens. You don't need to be there, but it's the easiest way to ask and answer questions. If you need my attention, make sure you mention 'pjf' in your message, otherwise it might be a while before I see it. If you've personally tested any of the outstanding PRs (by running `netkan.exe` over them, and installing the result), and they look good or bad, then just commenting that in the PR helps a lot. A lot of the PRs that are automatically generated by KerbalStuff aren't suitable for merging directly, as they only work if the mods are packaged in a very simple way. If it looks like an auto-generated PR is broken, then feel free to open a new PR that installs the mod properly, and just write "supersedes #1337" (or whatever the original PR is) in the description. If you've already written a number of netkan PRs and what what you're doing, then definitely ping me on #ckan, we can divide and conquer the queue, and I can give you extra permissions to make that easier. Thank you all so much again, you all rock!
  21. This is a really good question, so I'm going to cover it in some depth. Pull requests are one of the cornerstones of good software engineering, as they allow code to be reviewed and tested before merging. They allow newer developers to make changes and get assistance from more experienced developers. They allow more experienced developers to make changes and make sure that's done in such a way that the fresh eyes of newer developers can understand them. Much of the CKAN's stability is due to the fact all our changes get reviewed by both humans and machines before being merged into the main project. However while we've had hundreds of people contribute pull requests, there's only a few dozen that have the permission to merge them, and not all of those are active. What we've seen is that very often the bulk of merges are done by a relatively small number of people, usually those who are the most experienced. This isn't surprising, as merging code carries more responsibility than writing code. It's what actually makes the changes visible to our tens of thousands of users, and so it's easy to hesitate before hitting the "merge" button, or leave it for someone with more knowledge to handle. For many people, writing new code is more fun than reviewing someone else's, and this further dilutes the number of contributors who are merging pull-requests. This has been an ongoing problem not just for the CKAN, but for many software projects. If any of the merge-active contributors reduce their activity, we end up with backlogs. Sometimes those backlogs can be intimidating, and can make the matter worse. We've taken a number of steps to try and protect against this. The CKAN has a very flat organisational structure; any contributor can make any change they feel themselves qualified to make, up to and including the release of new clients. That helps reduce the number of roadblocks that exist, although there's still a hump to get over in the induction of new developers. The other has my Patreon campaign, where has let me take time off from both my consulting and speaking duties to work on the CKAN. For the second half of 2015, most code pull-requests that got merged were thanks to Patreon-funded sprints, and most new CKAN client releases were due to the same sprints. At the end of 2015, three things happened: the software grant from the Open Source Developers' Conference funding my work on the CKAN ended, a number of deadlines for The Kerbal Book (of which I'm co-authoring) came at once, and finally my mental health was not at its best. The result was the November and January sprints did not happen (and no patrons were charged), and due to reduced funding December only saw one sprint rather than two. So in the last three months, the amount of hours I've put into the CKAN has been a sixth or less of what we normally see. I can't say that my reduced hours is the only reason we're seeing longer with merging PRs, but those 6+ hrs/week that I normally spend on them has definitely helped in the past. Having said all that, this is very much something I want to turn around. Next week is Linux.conf.au, which is the most appropriate place for me to negotiate a second software grant for CKAN development. After the book deadlines KSP was feeling more like work than fun, but now those are (mostly) in the past I want to spend more time playing, and spend more time with other KSP modders, developers, and players, in person as well as on-line. Mental health can be more of a challenge, but I'm working with my health professionals on that, and given that it's something I'm not shy talking about in public, I'll be sure to let you all know how it goes. So thank you all so much for your patience while I've spent less time on the CKAN than I would like, and I hope very much to be more active in the future. ~ Paul
  22. Just a quick note to say that I've updated the CKAN indexer to pick up the new Kethane versions from KerbalStuff. Give it a couple of hours for the bots to do their thing, and you should all have CKAN-installable Kethane under 1.0.5. Thanks @taniwha for maintaining this, and @Probus for nudging me and helping with the indexing.
  23. @politas: Thank you so much for all your help! You are *amazing*! @NecroBones: Gosh dang it CKAN... I don't suppose you'd be able to post a copy of your Kerbal Space Program/CKAN/registry.json file somewhere? That should let us reproduce and trace the error. We really really shouldn't be throwing errors when you're trying to install unrelated files. Thank you so much for reporting this!
  24. I'm very glad to announce: CKAN v1.16.0 aka Ringshine released! Changes since v1.14.3: Bugfixes [GUI] CKAN handlers added to mimeapps.list in a more cross-platform friendly fashion. (danielrschmidt, #1536) Features [Core] Better detection of KSP installs in non-standard Steam locations (LarsOL #1444, pjf #1481) [Core] find and find_regexp install directives will match files as well as directories if the find_matches_files field is set to true. (dbent #1241) [Core/GUI] Missing directories in Ships will be recreated as needed. (Wetmelon, #1525) [Core] Framework added to allow fuzzy version checking, including "you're on your own" comparisons where KSP version checks are disabled. Updated spec to include ksp_version_strict, which enforces strict versioning. (pjf #1499) [Core] Thumbs subdirectories in Ships can now be directly targeted by install stanzas. (Postremus, #1448) Internal [NetKAN] netkan.exe will now sort conflicts relationships next to other relationships. (dbent) [NetKAN] netkan.exe now has much better support for Jenkins CI servers, allowing full automation. (dbent) Notes Windows users must have .NET 4.5 installed. Linux users, please oh please apt-get install libcurl4-openssl-dev (Debian/Ubuntu/Mint) or yum install libcurl-devel (RedHat/Fedora) if you have not already done so. Mac/Linux/Mono users: please mozroots --import --ask-remove if you're a new user, to update mono's certificate store. Release image from Wanderers by Erik Wernquist. Also a huge thank you to Postremus, plague006, Olympic1, and politas who have been absolutely amazing! You all rock! <3 Edit: While this release contains the internal framework to allow for strict and disabled version checking (an oft-requested feature), we haven't built the user interface to switch between them yet. Look out for that in the next release!
  25. CKAN v1.14.3 aka Haumea released! Changes since v1.14.2: Bugfixes [Core] CKAN is more likely to find your KSP install. (McJones, #1480) [Core] Uninstalled mods will no longer be reported as upgradeable when another mod provides their fuctionality. (Postremus, #1449) [GUI] Installing a .ckan virtual mod will crash the client with an NRE less often (Postremus, #1478) [GUI] The "Installing mods" tab is now called the "Status log" tab, as it's used for upgrading and removing mods too. (plague006, #1460) [GUI] Links to ckan:// resources under Linux are more likely to be handled correctly. (Postremus, #1434) [GUI] Mods upgrades with additional dependencies are better handled and displayed to the user. (Postremus, #1447) Features [GUI] The CKAN Identifer for each mod is now shown in their metadata panel. (plague006, #1476) [GUI] Double-clicking on a filename in the 'Contents' panel now opens the directory containing that file. (Postremus, #1443) [GUI] The progress bar now shows the progress of downloading to the cache. (Postremus, #1445) [GUI] Mods can now be searched by their CKAN identifier in the name textbox (Postremus, #1475) Internal [internal] Module and CkanModule are finally merged into the same class! (Postremus, #1440) Notes Windows users must have .NET 4.5 installed. Linux users, please oh please apt-get install libcurl4-openssl-dev (Debian/Ubuntu/Mint) or yum install libcurl-devel (RedHat/Fedora) if you have not already done so. Mac/Linux/Mono users: please mozroots --import --ask-remove if you're a new user, to update mono's certificate store. Release image CC-BY-SA Lexicon.
×
×
  • Create New...